您现在的位置是: 网站首页 > 程序设计  > 分布式系统 

微服务架构之三(康辉法则和微服务给架构师怎样的启示)

2020年6月26日 18:35 1353人围观

简介半个世纪前康威在论文中提出了四个定律——康威定律,这些定律直接影响着现在的微服务架构,所以说半个世纪前就已经提出了微服务的概念

康威法则

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,让每个团队维护一个服务,相互之间不干扰,减少了互相沟通成本,有利于服务的交付和迭代。这时候我们发现微服务和团队架构之间是对应的,这符合了康威法则,有助于整体研发效率。