微服务的灾难 -- 康威定律和 KPI 冲突

Posted iTesting

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了微服务的灾难 -- 康威定律和 KPI 冲突相关的知识,希望对你有一定的参考价值。

iTesting,爱测试,爱分享


|注:本系列文章摘自Xargin的博客,已获得作者授权转载。

架构师们常讲的设计定律之中最为重要的是康威定律,康威定律的定义:
Conway's law is an adage named after computer programmer Melvin Conway, who introduced the idea in 1967. It states that. organizations which design systems ... are constrained to produce designs which are copies of the communication structures of these organizations.
这里的 'are constrained to' 即是该定律的精髓所在。 如果一个公司的组织架构已经基本成型了,那么基本上设计出的系统架构和其人员组织架构必然是一致的。
在微服务场景下,团队会按照其所负责的模块被依次切开成为一个 5-10 人小团队,然后再由更为顶层的架构少来按照组织架构设计相应的系统。 但是这里面有一个先后关系,是先设计系统,再根据系统来形成对应的团队。 但很多时候也并不一定是如此,因为某些公司招聘速度过快(笑),可能团队先形成了,然后才有系统设计,这时候,系统设计可能甚至会被团队架构所反作用(大概)。 还是比较荒唐的。
即使是正常的设计流程,业务需求总是难以预测的。 架构师们一般在设计完最初版本的系统架构之后,便会抽身到新的系统中继续挖坑。 新的需求却在后续的实现过程中渐渐发现无法与最初的架构设计相匹配,具体体现在很难在当前架构上实现,或实现成本过于高昂,单模块几人天的事情,在当前架构上需要以月计的工时,这显然是不可接受的。