微服务现状综述

  • Jan Stenberg
  • 张龙

2015 年 1 月 13 日

话题:SOADevOps语言 & 开发架构

近日, Adrian Cockcroft在荷兰阿姆斯特丹举办的Docker 大会谈到,随着组织向持续交付的不断迈进,变更会不断增加,但同时变更所带来的代价、规模与风险却在不断降低,DevOps与敏捷转换,以及容器化对于现如今的业务来说是非常有吸引力的。

对于通过持续交付来加速产品开发过程的方式来说,Adrian 提到了OODA 环(观察——调整——决策——行动),对这个环的适应速度越快,了解客户与市场的速度就会越快,你也会变得更加敏捷和富有竞争力。Adrian 发现经常这么做的企业更容易寻找到产品质量以及学习能力的改进之处。在他看来,达成这个目标的一个障碍在于很多公司都是围绕着产品经理、开发者以及 QA 等角色组织的,每个角色都有自己的团队,做一件事需要开很多会,这是一种瀑布流方式,需要花很多时间。常见的解决办法就是创建统一的交付小组,打通组织中的各个角色;不过 Adrian 认为这么做是很低效的,因为每个小组都会重新开发自己的平台。相反,他认为团队应该围绕着微服务来组织,有专门的平台团队负责公开出 API,其他团队直接用就好了。Adrian 强调说这正是 DevOps 所关注的,即重组团队。

2014 年发生的一件大事就是作为标准化、可移植容器的Docker来了,现在几乎每个开发者都在学习 Docker 相关的知识。Adrian 认为造成 Docker 如此流行的一个重要原因就是其可移植性,以及容器交付速度的提升,从原来的几分钟、几小时到现在的几秒钟。他认为:

速度催生了新的微服务架构。

回顾当今的网络规模 微服务架构,Adrian 提出了几个共同点:

  • 很少会部署全新的微服务架构。
  • 新版本会自动且频繁地部署。
  • 通用编排不再需要,因为整个系统并不是与所有组成部分同时部署的。
  • 架构会用到成百上千的微服务。
  • 每个部署都是高度定制化的。

Adrian 认为接下来应该是根据微服务对标准可移植应用的编排,对于这些微服务来说,新版本可以自动部署,可伸缩性与可用性会得到很好地处理。他还预测未来将出现一场从统一架构到微服务架构的革命。

查看英文原文:State of the Art in Microservices

SOADevOps语言 & 开发架构