专一服务,而非容器

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

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

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

这就是为何若是你想充分利用容器,那你应该考虑的不该该仅仅只是容器。你必须关注服务,由于它们是容器启用的关键。网络

服务和容器

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

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

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

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

  • 单个服务能够部署在多个区域。
  • 每一个区域均可以有多个版本——例如,A / B测试或Canary版本。
  • 每一个服务可能具备不一样的生命周期。特定于后端的服务可能比前端服务部署的要少。

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

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

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

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

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

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

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

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

  • 规范开发环境。您能够经过找到一个强大的容器镜像仓库、审查图像和标准化开发人员在其框中的工具来执行此操做。因为服务是独立开发的,其中一个挑战是在整个应用程序的服务中看到新的功能。所以,开发人员每次提交均可以部署的按需集成环境就显得尤其重要。
  • 保持不可变,不要只是挂在嘴边。要想要以服务中心,你必须将“基础设施不可变”付诸实践,而不只仅是嘴上说说。这意味着在部署容器后将不得再进行更改,只能选择运行或删除。严格禁止Snowflake镜像或配置,除了服务自己所需功能以外,不容许访问单个容器。
  • 建立可见性。基于服务的应用程序确实有多个单片应用程序的移动部件。这意味着建立可见性并为全部涉众提供访问权限相当重要。可见性还应支持基础设施和应用程序可见性。团队应该可以查看整个应用程序及其中的全部服务,并能检查单个容器。所以对开发团队来讲,应用程序的可见性是最重要的。

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

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

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

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

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

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

相关文章
相关标签/搜索