康威定理

康威定律

康威定律是半个多世纪前就奠定微服务架构的理论基础。

我们来看看康威定律的核心观点:

“organizations which design systems are constrained to produce designs which are copies of the communication structures of these organizations.”

翻译过来就是:系统设计的结构必定复制设计该系统的组织的沟通结构。

想要搭建怎样的系统,就选择怎样的组织架构。
如果你想要的是一个微服务,那么就把大功能拆分开,把多个人组队成一个最小的执行单位。
从而达到小团队的子系统内聚,对外系统边界明确。
这样能够有效降低沟通成本,团队设计的系统也会合理高效。

而大型系统的持续优化,必须是容错和弹性的。
什么是容错和弹性,就是正式发生问题的可能性,并且能够容忍发生的问题。
不要指望一个大而全的系统。都要以合理的方式持续迭代。

如果把一个系统的设计、开发、集成、优化看做一个生态系统的话,生态系统追求的是平衡。
这也是为什么当我们把系统的开发、优化过程中精炼到了一定程度,所多出来的复杂度会慢慢偏向于运维和集成的部分。

从实践经验的角度来看,为了让设计高效,首要保证系统设计者之间的沟通高效。

沟通

人月神话中,对于沟通成本有一个公式:

沟通成本 = n(n-1)/2

即沟通成本随着人员的增加而指数级增长。所以我们可以说,对于一个团队项目的算法复杂度是 O(n^2)。

  • 5个人的项目组,需要沟通的渠道是 5*(5–1)/2 = 10
  • 15个人的项目组,需要沟通的渠道是15*(15–1)/2 = 105
  • 50个人的项目组,需要沟通的渠道是50*(50–1)/2 = 1,225
  • 150个人的项目组,需要沟通的渠道是150*(150–1)/2 = 11,175

从生物学的角度讲,我们的大脑只能维持我们一定数据量范围内的人际关系交流。
超出范围,会带来一系列的沟通问题。
人是复杂的社会动物(是因为我们自己看自己,所以觉得复杂,要是有高阶的生命可能还是会觉得我们是蝼蚁),
一般来说,一个大公司的组织管理问题,会被拆分为多个组织加以解决。

微服务

在了解了康威定律后,我们来看看他和微服务的异曲同工之处。

  • 分布式服务组成一个系统
  • 按照业务划分服务,而不是技术
  • 自动化运维
  • 容错
  • 弹性优化

参考

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值