资讯专栏INFORMATION COLUMN

专注服务,而非容器

mengbo / 2926人阅读

摘要:严格禁止镜像或配置,除了服务本身所需功能之外,不允许访问单个容器。团队应该能够查看整个应用程序及其中的所有服务,并能检查单个容器。专注于服务的目标是避免分心,只专注于服务功能。月日,北京海航万豪酒店,容器技术大会即将举行。

现阶段而言,容器听起来可能很酷,但这种现状或许不会持续太久。可以预见的是,容器将来也仅仅是一种基础设施。经验丰富的开发人员对部署应用程序的方法和其它几种类型的基础设施可能已经很熟悉了。容器对他们来说没什么大不了的。

然而,通过容器架构应用程序,能为基础设施带来新机遇,并且市场前景巨大,这就是为什么微服务应用程序中的服务比其运行的容器化基础设施要重要得多。

模块化一直是应用程序架构的目标,如今,微服务的设想已成为可能,如何构建这些服务最终决定了它们将在哪里运行以及它们将以何种方式部署。应用程序的功能通过服务满足用户需求,其价值也通过服务来实现。

这就是为什么如果你想充分利用容器,那你应该考虑的不应该仅仅只是容器。你必须关注服务,因为它们是容器启用的关键。

服务和容器

为了便于对话,服务和容器是可以互换使用的,因为容器化应用程序的理想用例是解构到服务中,每个服务都被部署为一个或多个容器。

但是,策略不尽相同。服务是一种隐含的基础设施,更重要的是应用程序体系结构。当您谈到作为应用程序一部分的服务时,该服务是持久性的。例如,在没有登录页面或购物车的情况下,你无法临时拥有一个应有程序,还指望其进展顺意。

另一方面,容器的生命周期在设计之初就被限定在极短的范围内。理想情况下, 在每次部署或还原时, 一旦新的部署生效并且流量被路由到该容器就被终止。因此容器并不持久。如果交货链正常运行,那根本就不重要。只要新部署已存在并且通信流路由到该容器, 就会立即将其杀死。所以容器不是持久的。如果交付链正常运行, 即使容器终止也无关紧要。

微服务,既是一个应用程序,也是一个基础设施术语,它有一些与之相关联的独特元素,从而使它进一步分化。

单个服务可以部署在多个区域。

每个区域都可以有多个版本——例如,A / B测试或Canary版本。

每个服务可能具有不同的生命周期。特定于后端的服务可能比前端服务部署的要少。

它甚至不一定意味着一个服务等于一个容器或一个主机。该服务是来自应用程序中功能的逻辑抽象,并不直接与任何基础设施相关。

以服务为中心意味着什么?

专注于您的服务意味着开发人员不会花时间优化或修改容器编排或配置。如果最终版本的镜像已经准备好,开发者只要关心提交他们的代码就可以了。如果开发人员还需要把容器也纳入考虑范围,那就会打破某种平衡。

开发人员只有在开发环境中才需要考虑容器相关的事宜。开发环境和生产环境之间的平衡非常重要。要确保开发人员正在对正确的Docker镜像进行测试,并能够访问其他服务,而左移QA是缓解“它在我的机器上明明能正常工作”这一问题的唯一途径。这是通过强大的容器镜像仓库实现的。

然而,即使是开发环境也应该被放在最末来考虑。

如何实现以服务为中心的工作流

我希望我可以说,专注于服务是一项独立的开发任务,但其实不是。开发人员已着眼于正在构建的功能,如果他们因容器和业务流程而分心,那也是因为他们是技术狂人,他们想要修补问题,而不是因为他们觉得这是他们的主要职责。

以服务为中心,是团队中的每个人的责任。包括如何架构交付链——不仅要快,而且要避免更广泛的团队需要与之进行交互。因此,“以服务为中心”需要从管理开始,下放到传递链(或DevOps),再到工具,最终,开发人员要么保留基础设施包,要么可以自由工作。以下是服务重点的三个关键原则:

规范开发环境。您可以通过找到一个强大的容器镜像仓库、审查图像和标准化开发人员在其框中的工具来执行此操作。由于服务是独立开发的,其中一个挑战是在整个应用程序的服务中看到新的功能。因此,开发人员每次提交都可以部署的按需集成环境就显得尤为重要。

保持不可变,不要只是挂在嘴边。要想要以服务中心,你必须将“基础设施不可变”付诸实践,而不仅仅是嘴上说说。这意味着在部署容器后将不得再进行更改,只能选择运行或删除。严格禁止Snowflake镜像或配置,除了服务本身所需功能之外,不允许访问单个容器。

创建可见性。基于服务的应用程序确实有多个单片应用程序的移动部件。这意味着创建可见性并为所有涉众提供访问权限至关重要。可见性还应支持基础设施和应用程序可见性。团队应该能够查看整个应用程序及其中的所有服务,并能检查单个容器。因此对开发团队来说,应用程序的可见性是最重要的。

为避免发生重大故障,DevOps团队还需要尽可能地减少网络和安全性的影响,其目标是尽可能多地卸载编排工具。

专注于服务的目标是避免分心,只专注于服务功能。如果开发人员专注于构建一个伟大的产品,而DevOps则专注于构建最佳的交付链,那么工具链和流程将会随之就绪以提供支持——如今,这种伟大的产品诞生了,那就是容器和强大的编排工具。

用户总是倾向于使用更优质的应有程序,这就促使公司更加精益求精、日臻完善,至于达到这一目标的机制,并非问题的关键所在。因此,下次您再谈论到容器时,不妨考虑把重点放在如何构建更好的服务上。


9月27日,北京海航万豪酒店,容器技术大会Container Day 2017即将举行。

CloudStack之父、海航科技技术总监、华为PaaS部门部长、恒丰银行科技部总经理、阿里云PaaS工程总监、民生保险CIO······均已加入豪华讲师套餐!

11家已容器落地企业,15位真·云计算大咖,13场纯·技术演讲,结合实战场景,聚焦落地经验。免费参会+超高规格,详细议程及注册链接请戳

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/26976.html

相关文章

  • 轻松搞定|将PHP和Couchbase应用部署为Docker

    摘要:此时,可以构建映像,并将其部署为容器。从执行以下操作以上命令将使用文件中定义的端口,构建对应镜像和部署成为容器。 showImg(https://segmentfault.com/img/remote/1460000010122752); 数人云之前分享了《如何用Docker实现PHP命令行程序的CI/CD》,详细地介绍了整体过程中的思路以及以及注意事项,今天带来的文章将阐述怎样部署一...

    X1nFLY 评论0 收藏0
  • 跳过容器技术,直接采用无服务器架构计算

    摘要:然而,在使用无服务器架构计算方面,这一情况可能会有所不同。事实上,当你把无服务器架构带入企业内部时,你就开始丧失你最初的优势,亚马逊公司推广人员说道。鉴于容器技术的重要性,这种说法令人吃惊。像Docker这样的容器技术功能非常强大,但是这需要你拥有很稀缺的人才。无服务器架构计算可提供相同的优势,借助技术人才您就可以真正获得其优势。通常情况下,主流企业接受前沿技术的速度很慢,而初创公司和其他早...

    leeon 评论0 收藏0
  • 容器安全苦恼?这份清单整理了27种容器安全工具

    摘要:安全基准测试工具互联网安全中心为容器安全提供了指导方针,这一方针已被和类似的安全基准工具所采用。该容器安全工具可以利用机器学习提供自适应威胁保护这是一个可以扫描容器镜像的托管安全解决方案,它甚至可以允许企业在它们的环境内执行安全策略。 在Docker容器技术兴起的初期,对于许多企业而言,容器安全问题一直是他们在生产环境中采用Docker的一大障碍。然而,在过去的一年中,许多开源项目、初...

    cyixlq 评论0 收藏0
  • 又让马儿跑又不让吃草,微服务化如何完成低成本改造?

    摘要:小编一哥们和我吐槽自家的烦恼原本一个有钱有闲的证券行业经理一年前被老板派去支持创新业务探索因为新型业务在不断加速铺开当前的单体式应用复杂度越来越高业务上线过程繁琐流程冗长资源分配耗时较多更新频率越来越低人员也越来越显得捉襟见肘这哥们于是开始 小编一哥们和我吐槽自家的烦恼原本一个有钱有闲的证券行业IT经理一年前被老板派去支持创新业务探索因为新型业务在不断加速铺开当前的单体式应用复杂度越来...

    QiShare 评论0 收藏0
  • 慕课网_《Spring入门篇》学习总结

    摘要:入门篇学习总结时间年月日星期三说明本文部分内容均来自慕课网。主要的功能是日志记录,性能统计,安全控制,事务处理,异常处理等等。 《Spring入门篇》学习总结 时间:2017年1月18日星期三说明:本文部分内容均来自慕课网。@慕课网:http://www.imooc.com教学示例源码:https://github.com/zccodere/s...个人学习源码:https://git...

    Ververica 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<