知识卡片
康威定律是微服务化的第一前提:架构是社交政治问题
内容
开始微服务化之前,作者认为最先要解决的不是技术问题而是人的问题—— 第一前提是决策者和执行者都能意识到康威定律(1968年,Melvin Conway)在 软件设计中的关键作用:”系统的架构趋同于系统设计团队的沟通结构”。核心 逻辑是”沟通决定设计”:如果技术上紧密关联的特性,在组织层面被强行分开, 结果是跨组织沟通成本上升;如果技术上本没什么关联的特性,在组织层面被 强行捏在一起,结果是成员越多越难达成一致决策、管理成本上升。这些社会 学规律决定了长期存活的产品和组织最终都会自发调整成互相匹配的状态—— 哪些特性靠团队内部沟通、哪些需要跨团队协作,最终都会映射成产品里应用 内部和外部的调用依赖关系。但要为了微服务化去配合调整组织架构,从来 不是件容易事:西方谚语”所有技术上的决策实际都是政治上的决策”(All Technical Decisions Are Political Decisions)在这里格外贴切——架构 不只是技术问题,更是一种社交活动,甚至涉及利益重新分配。产品在技术上 拆装重构相对容易,但要把某个组织的一部分权力、职能、人员真正拆分出去, 该组织领导是否愿意;把两个团队合并成一个,原负责人如何安置——这些问题 不仅需要执行者有良好的社交能力,更需要上层决策者真正理解”架构演变要 同步调整组织结构”这件事的必要性,愿意为微服务化打破局部利益藩篱。
参考来源
- 位置:《凤凰架构:构建可靠的大型分布式系统》第16章"向微服务迈进"16.2节
"前提:微服务需要的条件"(源文件:_epub-src对应OEBPS/Text/
chapter180.xhtml)
- 结论依据:原文引用康威定律"系统的架构趋同于系统设计团队的沟通结构"
及"沟通决定设计"的核心观点,说明架构调整涉及组织权力和人员安置这类
利益重新分配,需要决策者理解架构与组织需同步调整的必要性,直接支撑
本卡片结论。
- 原始内容:微服务化的第一个前提条件是决策者与执行者都能意识到康威
定律在软件设计中的关键作用……架构不仅仅是个技术问题,更是一种社交
活动,甚至还可能会涉及利益的重新分配。