架构治理与交付效能:治理不是更多人工审批
每周 20 次发布、新增审批平均等 2 天,只为了一个低概率风险——紧急修复也排队,治理反而增加用户损失。本页定义治理的自动护栏优先、交付指标的正确读法、技术债务的清偿排序与复查触发。
治理应减少反复决策的成本
治理可以由依赖约束、自动兼容检查、安全策略、契约测试、架构评审和运行时策略构成。优先使用快速、可重复、反馈接近代码的自动护栏;高风险不可逆决策保留人工审查。把重复且低争议的规则编码到自动检查:依赖方向、schema兼容、权限默认值、恢复入口与发布条件。高风险例外由有上下文的评审处理,不能让每次小变更经过同样漫长委员会。规则需有解释、所有者、失效条件和豁免期限。
教学团队每周20次发布,新增审批平均等2天,若只降低一个很低概率风险却让紧急修复也排队,治理可能增加用户损失。比较自动契约检查加抽样评审与全面人工审批,记录等待、失败与恢复,而不是只统计开会次数。
交付指标与因果限制
DORA 类交付指标包括部署频率、变更交付周期、变更失败率和失败部署恢复时间等。它们描述交付表现,需结合系统类型、工作定义和测量边界,不应作为个人绩效排名。DORA官方指标说明描述指标随研究演进,当前不能机械只背旧版"四个指标"。落地时明确自己使用的指标定义和窗口,分别观察交付速度与稳定性,不把团队间排行榜当因果证据。一个服务高频小发布和另一个低频高风险迁移不能只按次数横比。
变更失败后恢复时间要从用户受损到有效恢复,用一致事件定义;已回滚但账务错误未修复不能算完全恢复。指标改善也可能来自工作量变化,应结合改动类型、流量和依赖共同解释。
技术债务和复查触发
技术债务是为当前收益接受未来修改成本,隐性复杂度则可能是未经有意选择的障碍。清偿要考虑影响范围、复发速度和窗口机会,不以代码年龄或重构规模决定优先级。架构决策应写下重审触发条件,例如流量达到阈值、团队数量增加、恢复目标变化或单位成本偏离。没有触发条件的原则性"以后再拆"难以验证。
团队规模扩大可能提高并行开发,也增加协调边。持续增加审批可能减少某类错误,却延长交付并诱发绕行;应测量全链路等待时间和风险变化。
实验和治理退出
挑一条依赖规则,准备正常变更、应拒绝变更、合理例外与规则过时四例。CI应准确拒绝违例并给修复入口;例外到期复查,不能永久绕过。用四周基线和四周试点比较等待、返工和事故,样本少时承认不确定,不编统计显著性。
架构师进阶是解释哪些约束该固化、哪些判断应留给团队,以及治理本身的成本。平台、ADR与适应度检查连接到运行证据——适应度检查的工程实现见从愿景转成架构适应度检查,避免文档与实际系统长期分叉。
治理规则的生命周期:目标、所有者、失效与退出
本页前面讲了自动护栏优先与四例测试,还缺一层:规则本身也会过期。治理规则的生命周期有五个字段:目标(它防什么风险)、所有者(谁维护与解释)、失效条件(什么变化让规则不再成立)、例外期限(豁免最长多久)、退出测试(四例测试中的"规则过时"如何验证)。
反例:一条"所有服务必须单体部署"的规则,写于单体时代,所有者离职后无人维护。三年后团队要拆一个独立扩容的模块,规则被当作硬约束阻止变更——它保护的风险早已不存在,却仍在消耗协调成本。生命周期要求过期规则必须显式退出,而不是默认永久有效。
四例测试是退出的验证工具:正常变更应通过、应拒绝变更必须被拒、合理例外有记录与期限、规则过时用例应被识别并触发修订。四周试点比较等待时间、返工与事故,样本少时承认不确定性,不编统计显著性。
例外治理要有边界:例外必须写影响、最长窗口、替代信号与恢复责任人;到期自动失效,延期要重新评审。没有所有者的规则、没有期限的例外、没有退出测试的护栏,都应被列为治理债务,与代码技术债同等级跟踪。
执行 python3 labs/evolution_models.py governance_rule_lifecycle:预期 active 两条(依赖方向、schema 兼容,均有所有者与到期日),orphaned 一条(legacy-monolith-only,无所有者无到期日),four_case_test 四个用例齐全。脚本只做规则字段检查,不评价真实治理效果。
两个合理选择:A 规则永久有效、靠委员会定期人工清理,简单但清理无人负责;B 每条规则带到期日与退出测试,到期自动提醒复核。本例选 B,代价是维护元数据;收益是"规则过时"变成可检测事件,而不是靠有人记得。
架构师变化条件
把全面人工审批改为"自动约束+高危人工":等待从 2 天降到小时级,需验证被拒绝的高危变更确实被拦截(四例测试)。交付指标突然变好,先查工作量与变更类型构成再归因于新架构。若规则的前提(如单体部署)已经变化,规则要么修订要么退出——每次变化给出复查触发与四例测试结果。
闭卷验收
本页 8 道闭卷题收进了下方自测面板:先回忆,再展开参考答案与评分点,最后给三档自评。