微服务架构学习与思考(07):企业团队组织架构如何变革?

微服务架构学习系列文章:

单体到微服务架构的团队变化

传统的单体架构时期,多数企业是按照功能来划分团队人员。大家都在一个单体架构上进行功能开发。
到了微服务架构时期,利用分治的思想把业务划分为了一个一个小的服务,每个开发团队独立负责几个微服务的业务,这时候团队组成人员也要进行相应的调整,以适应微服务架构的开发。

因为康威老爷子说过:

系统架构设计等同于组织形式,即团队组织要适应业务系统的架构。

我们要把以前那种中心化的组织架构,改成去中心化的组织,每个团队可以独立完成一个微服务业务的开发上线,即设计,开发,测试,部署,上线服务。
每个团队可以独立修改,独立部署服务而不影响其他服务运行。
每一个服务由一个独立的、自治的小团队开发和维护。

康威定律

康威定律 (康威法则 , Conway's Law) 是马尔文·康威1967年提出的:
设计系统的架构受制于产生这些设计的组织的沟通结构。

康威定律告诉我们,如果我们实施了微服务,那么组织架构的变动也要跟着实施微服务架构而做出相应的调整。这样才有可能适应微服务的发展。

单体架构和微服务架构

先看看传统单体架构和微服务架构,如下图:

图片来自:https://martinfowler.com/articles/microservices.html

左半部分的单体架构图:
单体应用将所有功能放到一个进程中
扩展:通过将整个应用复制到多态服务器实现扩展

右半部分的微服务架构图:
微服务架构将功能分离,放到多个不同的进程中
扩展:通过将不同的服务分布于不同的服务器上,并按需要复制方式进行扩展

组织架构

  • 单体应用的组织架构

图片来自:https://martinfowler.com/articles/microservices.html

它是一个整体式的应用团队,每个团队按照职能来进行划分(图片左半部分),比如:UI团队,中间件团队,DBA团队。

不同职能的人属于不同的团队。做项目的时候就从不同职能部门选出一些人来负责项目。这样的组织架构有一个问题就是:跨职能部门沟通协调问题。这种团队组织形式不能适应微服务架构的特点。

  • 微服务应用组织架构

图片来自:https://martinfowler.com/articles/microservices.html

微服务架构特点:每个微服务是独立的,团队可以独立开发,独立测试,独立部署,服务是自治的。相应的团队组成人员也有产品,技术,测试,团队成员在自己内部就可以完整的进行微服务各种功能开发。

这就要打破原先传统的那种按职能划分的组织团队形式,而要把不同职能的人组织在一个团队内,组成一个跨职能的产品组织架构。这样才能把一个微服务功能架构、设计、开发、测试、部署、上线运行,在一个组织内部完成,从而形成完整的业务、开发、交付闭环。

团队组织的变化

一图胜千言:

图片来自:https://insights.thoughtworks.cn/management-of-microservices-team/

原先那种职能型的团队,变成了跨职能的小团队,这种团队和微服务架构对齐,实现团队的独立和自治,实现一体化开发上线操作。

一个团队成员多少合适

每个团队组织成员多少合适呢?

亚马逊的“两个披萨团队”,6-10人的规模。这个只是一种参考,毕竟每个公司规模、业务、行业、成员等不一样,找到适合自己的团队构成,就是最好的团队组织。

组织架构变化的困难

一个组织架构的变化,会涉及到团队人员的减少或增加,职务上的变化,业务开发上的变化等,这就涉及到各种利益关系。

为了减少推动组织变化所带来的阻力,公司领导和开发人员,还有业务相关人员要达成广泛的共识,技术高管需要在公司内进行积极的宣讲、开会讨论等,以求达成广泛的共识。

为了顺利推进组织架构的变化,以适应微服务架构的发展,至少要做到以下2点:

  • 1、各级管理层必须达成共识,由高层领导直接推动组织架构变化。
  • 2、由CTO(或技术高管)牵头成立架构委员会,执行微服务架构的设计和改造。
posted @ 2021-01-27 17:04  九卷  阅读(965)  评论(0编辑  收藏  举报