错误预算驱动发布决策
错误预算是把可靠性目标反过来表述成可消耗的额度:若服务等级目标承诺百分之九十九点九的可用性,那么余下的百分之零点一就是这个周期内允许的失败量。预算充足时正常发布甚至加快节奏,预算耗尽时冻结功能变更并转向可靠性投入。它的价值在于把「要稳定还是要速度」的争论,转换成基于可观测数据的决策。
计算与策略
| 计算 | 预算等于(1 减去服务等级目标)乘以时间窗口 |
|---|---|
| 预算充足 | 正常发布,允许有风险的变更 |
| 预算耗尽 | 冻结功能变更,优先可靠性改进 |
| 回溯 | 从预算消耗构成中提炼可靠性工作项 |
典型使用场景
- 月度运营例会:公布预算消耗比例与主要消耗事件,据此决定发布节奏
- 事故复盘:把事故导致的预算消耗量化,作为改进优先级依据
- 灰度发布决策:预算紧张时收紧灰度比例与变更频率
- 可靠性投入申请:用预算消耗结构说明该补哪一类防护
- 目标校准:长期预算消耗远低于预期时,评估目标是否过于保守
例会示例
例会示例
# 本月预算消耗 85%(两次事故各约 30 分钟不可用)
决议:
- 暂停两个非紧急功能发布
- 优先修复超时重试缺陷
- 复盘结论:缺少依赖降级策略,列入下期改进
# 下月复核:消耗比例是否回落,降级策略是否已上线消耗与动作对照
| 状态 | 判断依据 | 动作 |
|---|---|---|
| 充足 | 消耗远低于预期且无重大事故 | 按计划发布,可适度提高变更频率 |
| 紧张 | 消耗过半且窗口未过半 | 收紧变更,加强灰度与回滚准备 |
| 耗尽 | 消耗达到上限 | 冻结功能变更,集中投入可靠性 |
| 长期不满 | 连续多个周期消耗极低 | 评估目标是否过松,或变更频率是否偏低 |
| 频繁耗尽 | 连续周期超支 | 先补防护能力,再谈发布节奏 |
预算机制的前提是服务等级目标可观测且口径稳定:指标定义、统计窗口与数据来源需要先确定,否则每次讨论都会回到「到底算不算失败」的争论上。
预算耗尽后仍照常发布,机制会在两三个周期内失去公信力;反之,预算长期充裕却始终保守,也会让团队觉得机制形同虚设。两种偏差都要在复盘中明确讨论。
落地检查清单
- 服务等级目标与统计口径有明文定义
- 预算消耗按事件归集,能追溯到具体事故
- 耗尽后的冻结动作有明确执行方式与解除条件
- 每次例会公布消耗比例与下期改进项