我们的系统架构会随着技术和开发实践的发展而变化,但我们实践架构的方式并没有跟上这种变化。按照Andrew Harmel-Law的说法,架构需要去中心化,就像我们去中心化我们的系统那样。在哥本哈根举行的 Goto 大会上,他提出了架构建议流程。
Harmel-Law 说,架构设计的最大挑战是在恰当的时间做出恰当的选择。架构决策无处不在,无时无刻不在发生。如果只有少数被指定的人负责并承担所有决策的责任,那么他们就必须基于完整准确的信息与背景为所有人做出最优决策。他们还需要对所有这些决策负责:
他们不仅要确保每个人都了解他们对架构的理解;他们还必须不断从实施和运行这些架构所产生的反馈和错误中学习。
坦白说,这是不可能的,如果你不想成为一个阻碍流程运转的人。
Harmel-Law 说,传统的架构实践方法(“象牙塔”和“动手型架构师”这两种思维定式)不具有可扩展性,会阻碍流程的正常运转,并且没有充分考虑来自运行(测试)代码的反馈循环。“架构师”这个传统角色需要变成对话的发起者和指导者,推动恰到好处的共识形成,并创造学习与快速反馈的空间。
相对于由一位架构师做出并传达决策,有一个替代方案是“让任何人都能做决策”。Harmel-Law 解释说,架构建议流程为此创造了空间:
声明“任何人都可以做出任何决策,只要他们从所有受影响方和那些有专业知识的人那里寻求建议(这与许可不同)”,这可以将决策的职责和责任转移给需要它们的人。虽然没有人有义务做出决策,但它允许那些自己觉得有必要的人这样做。
接下来发生的事情是,架构对话开始在需要的地点和时间发生。Harmel-Law 提到了两个案例研究,参见 InfoQ 的文章:“赋予团队权力:去中心化架构决策”以及“Xapo银行的去中心化架构实践”。
Harmel-Law 说,在这种情况下,“架构师”角色分散到整个组织中,那些传统上扮演这个角色的人退回到建议者、背景提供者、决策教练和对话策展人的角色。架构实践扩展到需要实践架构设计的人,并由具有相关经验的人提供支持:
对于一个曾经扮演过传统“架构师”角色的人,这种体验的变化令人兴奋。
使用架构建议流程,任何人都可以做出任何架构决策,只要他们从以下人员那里寻求建议:
那些受影响的人
那些有专业知识的人
采用架构建议流程是一场革命;这是回归到软件系统设计的第一性原理,将重点放在架构实践上,即在恰当的时间让恰当的人进行恰当的对话,Harmel-Law 解释说:
这种实践将以一种独特的方式呈现出来,其独特性体现在你自身、你的同事、现有的系统、你的客户、技术的总体演变以及市场等诸多方面。
Harmel-Law 提到了一些需要重点注意的失效模式:
“糟糕的决策”——特别是高层人士介入阻止决策发生。
“Old guard == new guard”——仍然是同样的人(高级架构师)在做所有的决策。
“雷达外决策”——私下或在不遵循流程的情况下做出决策(如不寻求适当的建议,或不将所有内容记录在架构决策报告[ADR]中)。
不信任——人们彼此都不信任对方会遵循流程并对决策结果负责。
Harmel-Law 说,起初,参与者可能会遇到一些困难,因为他们难以摒弃自己原有的思维模式。架构决策不再需要共识,建议提供者也不是在为决策提供“许可”——决策权始终掌握在发起当前决策流程的人手中。如果所提供的建议未纳入最终决策,那也是完全可以接受的。
Harmel-Law 举了一个例子,有一个团队想要为他们正在编写的服务选择一个新平台。选项包括:一组 lambda 函数、一个在 Kubernetes pod 上运行的微服务,或者一系列定制的计算节点:
系统架构师就 lambda 选项提供建议,并在相关 ADR 上发表评论。他们指出,根据他们的经验,lambda 启动速度慢,并且会增加状态管理的难度。尽管理解这些担忧,但团队仍然可以选择基于 lambda 的选项。他们会对决策负责。虽然他们可能已经理解了系统架构师的担忧,但却不一定要遵循架构师的建议。
这不仅改变了架构实践,也改变了那些从事架构设计的人的心理模型。Harmel-Law 说,架构实践从一种等级化、封闭式的半秘密知识体系和权力博弈,转变为知识共享和经验共创的实践。它弱化个人知识储备(“我知道一些有价值的东西,其他人都不知道,因此我有权力”),推崇集体知识流动(“当正确的信息在恰当的时机传递给合适的人群时,我们都能从中受益”)。
声明:本文为 InfoQ 翻译,未经许可禁止转载。
原文链接:https://www.infoq.com/news/2026/03/architecture-advice-process/





