三个概念
描述服务质量通常用三个词:SLI 是可测量的指标,SLO 是它的目标值,SLA 是对外承诺并附带违约后果。错误预算等于目标的反面,例如 99.9% 的 SLO 对应 0.1% 的允许失败额度。它把稳定性从口号变成了可消耗的余额,用来平衡发布速度与可用性。
怎么用
预算充足时可以加快发布节奏,承担可控的风险;预算耗尽时冻结高风险变更,把精力放在消除不稳定来源上。这套机制有效的前提是 SLI 按用户可感知口径定义,否则会出现指标全部达标而用户仍在投诉的割裂现象。
基本信息
| SLI 示例 | 可用性等于成功请求除以总请求;延迟用快请求占比 |
|---|---|
| SLO 示例 | 30 天滚动窗口可用性不低于 99.9% |
| 错误预算 | 0.1% 约合 30 天 43 分钟不可用额度 |
| 使用策略 | 预算充足时加速迭代,耗尽时收紧变更并复盘 |
落地步骤
- 定义 SLI:按用户可感知口径选成功率与延迟占比
- 设定 SLO:按业务等级分层,滚动窗口统计
- 换算预算:1 减去 SLO 得到窗口内允许的不可用量
- 联动变更:预算充足放行迭代,耗尽冻结高风险发布
- 回补改进:定位消耗来源,修复后恢复发布节奏
- 明确排除:计划内维护与已豁免的依赖故障不计入预算
窗口换算参考
| SLO | 30 天允许不可用 |
|---|---|
| 99.0% | 约 7.2 小时 |
| 99.9% | 约 43 分钟 |
| 99.95% | 约 21.6 分钟 |
| 99.99% | 约 4.3 分钟 |
和执行流程怎么结合
错误预算只有嵌入发布流程才有效:把预算剩余量作为发布审批的输入,预算紧张时自动提高审批层级或要求补充验证。同时要建立消耗归因机制,把预算消耗按故障、变更与依赖分类统计,否则团队只知道余额变少,不知道该修哪一块。这套机制需要有人定期复核,否则几个月后就会变成无人查看的看板。
错误预算必须明确排除项:计划内维护窗口、已豁免的第三方故障以及内部测试流量都不应计入,否则预算会被与服务质量无关的事件消耗,指标迅速失去公信力。