微服务架构之三(康辉法则和微服务给架构师怎样的启示)
康威法则
Conway’s law 最初来自于Conway在1967年发表的论文《How Do Committees Invent?》,之后在《人月神话》这本书中引用了论文的结论,并命名为康威定律(Conway’s law)得以推广。
Conway’s law: Organizations which design systems are constrained to produce designs which are copies of the communication structures of these organizations. - Melvin Conway(1967) 设计系统的组织其产生的设计等价于组织间的沟通结构。
反向理解起来也是成立的。
Conway’s law reversed:You won’t be able to successfully establish an efficient organizational structure that is not supported by your system architecture design. 如果系统架构不支持,你无法建立一个高效的组织。
我们认为康威法则是微服务的一个理论基础,接下来看下康威法则和微服务之间的关系。
单块架构不匹配组织架构
如图所示,在项目成立之初,业务量不会很大,需要快速迭代,这时候团队规模也不大,一般由几个人一起开发,单块架构不会出现问题。但是随着业务量的增长,团队规模也在壮大,最后可能需要几十个团队协作。这时如果系统还是单块架构,这时候项目架构于团队架构就会出现不一致的情况,这就违反了康威法则,项目架构和组织架构不一致,即单块架构没有反应组织架构。这样就会出现协调效率低、沟通效率低的问题。
微服务匹配组织架构
把单块服务拆分,拆成多个微服务,比如组织架构中有三个团队,我们可以把项目拆分成三个服务s1、s2和s3,让每个团队维护一个服务,相互之间不干扰,减少了互相沟通成本,有利于服务的交付和迭代。这时候我们发现微服务和团队架构之间是对应的,这符合了康威法则,有助于整体研发效率。
上一篇: 微服务架构之四(引入微服务架构的时机)
下一篇: 微服务架构之二(微服务架构的利与弊)