O’Reilly和Neal Ford在2018年7月发起了“微服务成熟度状态”调查,并于2018年12月份发布报告。报告显示,微服务正在从一种时兴发展成为一种趋势。这个结论与InfoQ最近发布的架构和设计趋势报告是一致的。接受调查的从业人员对微服务总体持积极态度。报告中最重要的发现之一是DevOps和微服务相辅相成,其中一个的成功对另一个的成功起着重要的作用。

微服务是成功的

此次调查涉及866个受访者,侧重于从业者如何实现微服务。这是一项“为采用微服务的公司而设计的调查”,第一个关键发现是那些已经采用了微服务的公司将如何以某种热情持续下去。超过50%的受访者表示,他们的组织中有超过50%的新项目采用了微服务。这在很大程度上说明了微服务在这些公司已经取得了成功。86%的受访者认为他们的微服务项目至少已经取得部分成功。

DevOps实践与微服务

调查报告强调了在微服务从业者当中继续推动DevOps实践。大多数受访者表示他们采用了DevOps实践,例如持续部署和部署管道(包括自动化测试)。根据Neal Ford的观点,这些是推广微服务所必需的。“成熟的微服务架构要求具有一定成熟度的DevOps实践……架构和DevOps之间的协同作用是微服务架构风格的主要推动力之一,因为它能够更智能地委托职责”。

最后这句话与Nicole Forsgren等人在去年出版的“Accelerate”一书中所描述的观点非常吻合。这本书报告了DevOps实践在高绩效团队中的状态。其中有一章描述了高绩效团队(那些使用DevOps实践的团队)更有可能使用微服务架构来构建定制软件。有趣的是,他们还发现,在微服务模型中,松散耦合的架构实际上是持续交付的最大贡献者。

Kubernetes仍然是个“局外人“

在过去的几年里,Kubernetes在博客和技术大会上几乎无处不在。谷歌、微软和Pivotal等公司继续对其进行大量投入。然而,这份报告发现,Kubernetes的应用仍然很有限,超过60%的受访者表示他们没有使用过Kubernetes,尽管绝大多数人在开发过程中使用了容器。Neal Ford表示,这项调查是在“Kubernetes还处于起步阶段”时进行的,大型企业需要一段时间才能“转向被大肆宣传的技术”。不过他也表示,这项调查无法预测Kubernetes(或其竞争对手)的未来市场,但他承认,“人们对Kubernetes的兴趣依然存在”,而且这份报告无法反映半年之后“当前现实高度动态的本质”。

建立适当解耦的有界上下文仍然是一项正在进行中的工作

Sam Newman在其备受推崇的著作“Building Microservices”中专门讨论了如何使用边界上下文(一种领域驱动的设计概念)来确定适当的微服务边界。然而,O’Reilly的报告发现,使用DDD识别服务的成功率并不高。近50%的用户认为这是一项正在进行中的工作,另有三分之一的用户认为它还算成功。这份报告并不是关于DDD的采用水平,而是“关于追踪两者(微服务显然是受到DDD的启发)之间的关联”。Neal Ford说,“组织努力寻找恰当的领域/服务粒度,而这份调查结果似乎证明了这一点”。

O’Reilly的调查历时数月,于2018年8月份结束。这是第一份受过去类似报告启发(例如Velocity大会的DevOps报告)而发布的报告。