首页/开发/代码质量与评审速查/错误预算(Error Budget)驱动发布
技术债与度量63 条

错误预算(Error Budget)驱动发布

错误预算 = 100% − SLO:允许的失败额度;预算充足则加快发布,耗尽则收紧变更并要求可靠性投入;它把「稳定 vs 速度」的争论变成可观测数据的决策。

错误预算驱动发布决策

错误预算是把可靠性目标反过来表述成可消耗的额度:若服务等级目标承诺百分之九十九点九的可用性,那么余下的百分之零点一就是这个周期内允许的失败量。预算充足时正常发布甚至加快节奏,预算耗尽时冻结功能变更并转向可靠性投入。它的价值在于把「要稳定还是要速度」的争论,转换成基于可观测数据的决策。

计算与策略

计算预算等于(1 减去服务等级目标)乘以时间窗口
预算充足正常发布,允许有风险的变更
预算耗尽冻结功能变更,优先可靠性改进
回溯从预算消耗构成中提炼可靠性工作项

典型使用场景

  • 月度运营例会:公布预算消耗比例与主要消耗事件,据此决定发布节奏
  • 事故复盘:把事故导致的预算消耗量化,作为改进优先级依据
  • 灰度发布决策:预算紧张时收紧灰度比例与变更频率
  • 可靠性投入申请:用预算消耗结构说明该补哪一类防护
  • 目标校准:长期预算消耗远低于预期时,评估目标是否过于保守

例会示例

例会示例
# 本月预算消耗 85%(两次事故各约 30 分钟不可用)
决议:
- 暂停两个非紧急功能发布
- 优先修复超时重试缺陷
- 复盘结论:缺少依赖降级策略,列入下期改进

# 下月复核:消耗比例是否回落,降级策略是否已上线

消耗与动作对照

状态判断依据动作
充足消耗远低于预期且无重大事故按计划发布,可适度提高变更频率
紧张消耗过半且窗口未过半收紧变更,加强灰度与回滚准备
耗尽消耗达到上限冻结功能变更,集中投入可靠性
长期不满连续多个周期消耗极低评估目标是否过松,或变更频率是否偏低
频繁耗尽连续周期超支先补防护能力,再谈发布节奏
预算机制的前提是服务等级目标可观测且口径稳定:指标定义、统计窗口与数据来源需要先确定,否则每次讨论都会回到「到底算不算失败」的争论上。
预算耗尽后仍照常发布,机制会在两三个周期内失去公信力;反之,预算长期充裕却始终保守,也会让团队觉得机制形同虚设。两种偏差都要在复盘中明确讨论。

落地检查清单

  • 服务等级目标与统计口径有明文定义
  • 预算消耗按事件归集,能追溯到具体事故
  • 耗尽后的冻结动作有明确执行方式与解除条件
  • 每次例会公布消耗比例与下期改进项

易错点

  • 预算耗尽仍照常发布:机制失去公信力,后续没人再按预算调整节奏
  • 预算长期不满仍过度保守:错失发布节奏,机制被当作形式
  • 统计口径不统一:每次争论失败如何计算,预算数字无法作为决策依据
  • 只冻结发布不投入改进:消耗原因没有解决,下个周期继续超支

数据来源与参考

  • Google SRE 工作手册(错误预算驱动的发布策略)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌