知识卡片

芯片制造类比:架构平衡的两层含义

结构图卡

内容

架构设计大部分工作是在子系统和模块层面进行的,但系统最终要靠所有子系统和模块的有序结合才能运行起来,这要求架构具备”平衡性”。平衡的第一层含义是零部件之间的匹配程度——用芯片制造类比:芯片制造之所以困难,不是因为某一个环节(比如光刻)需要达到纳米级别,而是整条链路上晶圆生产、光刻、离子注入、蒸发沉积、清洗、检测等所有环节配套的设备都必须同时达到纳米级别,”整体”要求达到纳米级别才是真正的难点所在。软件架构同理:如果一个系统对高并发要求很高,意味着整条主链路上所有环节都必须符合高并发要求,不允许存在任何短板——哪怕只有一个环节掉队,整体目标依然无法实现;反过来,如果系统只面向少数用户,那么根本不需要在任何一个环节上考虑高并发方案。平衡的第二层含义是系统适应动态变化的能力,又分两种类型:显性的平衡性——业务需求变化、技术革新、监管政策等带来的显式需求改变,架构设计要在满足这些新需求的同时保持整体平衡;隐性的平衡性——子系统或模块本身的需求可能相对固定,但随着用户数量增加、系统内部数据持续积累,系统架构同样需要跟着调整,即便没有一条”新需求”被明确提出来。这两种平衡性都要求架构设计不能只盯着某个具体需求相关的局部去优化,而必须从系统整体角度权衡——就像人类的成长总是全方位的(个子长高的同时心脏、大脑等器官也在同步成长),系统的成长同样应该是整体性的成长,而非只在局部堆砌能力。可迁移启发:审查一份架构设计是否”平衡”,先检查它宣称的非功能性能力目标(比如高并发)是否真的贯穿了从入口到数据库的整条链路而非只优化了某一层;再检查它有没有为”用户数量增长”“数据持续积累”这类没有被显式提出、却必然发生的隐性变化预留调整空间。

结构图

flowchart TB
  B["架构平衡的两层含义"]
  B --> L1["第一层:零部件匹配程度<br/>(芯片制造:全链路都要达到纳米级别,而非单一环节)"]
  L1 --> L1E["高并发要求→整条主链路每个环节都不能有短板"]
  B --> L2["第二层:适应动态变化的能力"]
  L2 --> L2A["显性平衡:业务/技术/监管等显式需求变化"]
  L2 --> L2B["隐性平衡:用户增长/数据积累带来的隐式变化"]

参考来源

- 位置:《架构师启示录:知识模型、落地方法与思维模式》第7章《架构设计》之"7.5.3 平衡的重要性"(源文件:_epub-src/EPUB/xhtml/chapter11.xhtml) - 结论依据:原文说明"芯片制造的难度在于并非只有光刻这一个环节需要达到纳米级别,而是整个链路中所有环节所配套的设备都必须达到纳米级别才行……如果一个软件系统对高并发要求很高,那么其实是要求整个主链路中所有环节都必须符合高并发要求,不允许有短板存在……平衡的第二层含义是系统具备适应动态变化的能力……一种是显性的平衡性……另一种则是隐性的平衡性", 直接支撑本卡关于架构平衡两层含义的结构图。 - 原始内容:一个小孩子的成长总是全方位发展的,在个子长高的同时,心脏、大脑等器官总是在同步成长。