SLO驱动变更失败率:服务目录的故障排查设计 - 第2节

2.1 服务等级目标(SLO)定义

服务等级目标(Service Level Objective, SLO)是 SRE 实践中最核心的量化承诺。它不是一个简单的“可用性百分比”,而是一个以用户旅程为基准、以错误预算为杠杆的可靠性管理锚点。

2.1.1 SLO 的构成要素

一个完整的 SLO 定义必须包含以下四个要素:

要素 说明 示例
指标(SLI) 衡量服务质量的量化指标 请求延迟 P99
目标阈值 指标必须达到的具体数值 ≤ 200ms
时间窗口 评估周期(滚动窗口) 过去 28 天
合规比例 窗口内满足阈值的时间占比 99.9%
关键原则:SLO 必须基于用户视角定义,而非基础设施视角。例如“API 网关可用性 99.99%”不如“用户登录请求成功率 99.9%”更有意义。

2.1.2 SLO 的常见类型

  • 可用性 SLO:服务正常响应请求的时间比例。通常以“成功请求数 / 总请求数”计算。
  • 延迟 SLO:请求在指定时间内完成的比例。常用 P50、P95、P99 分位值。
  • 吞吐量 SLO:单位时间内成功处理的请求量。
  • 持久性 SLO:数据不丢失的概率,常用于存储系统。
  • 新鲜度 SLO:数据从产生到可查询的最大延迟,常用于数据管道。

2.2 SLI 与 SLO 的关系

SLI(Service Level Indicator)是 SLO 的原材料。没有精确、可采集的 SLI,SLO 就是空中楼阁。二者关系可以概括为:SLI 是测量尺,SLO 是及格线。

2.2.1 SLI 的四大黄金信号

Google SRE 经典理论将 SLI 归纳为四个维度,称为“四大黄金信号”:

黄金信号 典型 SLI 定义 采集方式
延迟 请求响应时间 P99 ≤ 500ms 服务端埋点 / 代理层
流量 每秒请求数(RPS) 负载均衡器 / 网关
错误 HTTP 5xx 占比 ≤ 1% 应用日志 / 监控探针
饱和度 CPU 使用率 ≤ 80% 系统指标采集

2.2.2 从 SLI 到 SLO 的映射流程

  1. 定义用户旅程:识别用户最关心的关键操作(如“搜索商品”、“提交订单”)。
  2. 选择 SLI:为每个关键操作选择可测量的指标(如“搜索请求延迟 P95”)。
  3. 设定目标:基于历史数据和业务容忍度,确定 SLO 阈值(如“P95 ≤ 300ms”)。
  4. 确定窗口:选择滚动时间窗口(通常为 28 天或 30 天)。
  5. 计算合规率:统计窗口内满足 SLI 阈值的时间占比。
实践建议:不要试图为所有指标都设定 SLO。只对直接影响用户体验的 3~5 个核心 SLI 设定 SLO,其余指标作为辅助观测。

2.3 错误预算概念

错误预算(Error Budget)是 SLO 的衍生品,也是 SRE 团队与产品团队之间风险对话的货币。它回答了“我们允许系统出多少错?”这个关键问题。

2.3.1 错误预算的计算公式

错误预算 = 1 - SLO 目标值
例如:SLO = 99.9%,则错误预算 = 0.1%
时间窗口 = 28 天 = 40320 分钟
允许不可用时间 = 40320 × 0.1% = 40.32 分钟

这意味着,在 28 天的滚动窗口内,服务最多只能有 40.32 分钟处于不可用状态。一旦消耗完,团队必须停止所有非关键变更,全力投入可靠性修复。

2.3.2 错误预算的消耗与恢复

  • 消耗:每次 SLI 未达标的事件都会消耗错误预算。消耗量 = 未达标时长 × 未达标程度。
  • 恢复:错误预算随时间窗口滚动自然恢复。旧的未达标事件移出窗口后,预算自动增加。
  • 燃尽率:单位时间内错误预算的消耗速度。燃尽率过高意味着系统稳定性正在恶化。
常见误区:错误预算不是“可浪费的额度”。它应该被视为风险预算——允许团队在可控范围内进行变更、发布新功能,同时为可靠性留出缓冲。

2.3.3 错误预算的决策机制

错误预算状态 团队行动 变更策略
充足(> 50%) 正常发布新功能 标准变更流程
中等(20% ~ 50%) 限制高风险变更 需审批 + 灰度发布
紧张(< 20%) 停止非关键变更 仅允许紧急修复
耗尽(0%) 全团队投入稳定性修复 冻结所有变更

2.4 SLO、SLI、错误预算关系图

下图展示了三者之间的核心关系与数据流向:

SLO、SLI、错误预算关系图 SLO、SLI、错误预算关系图 SLI 采集 延迟 / 错误 / 流量 / 饱和度 SLO 定义 目标阈值 + 时间窗口 错误预算 1 - SLO = 允许故障量 提供数据 计算得出 决策反馈:变更节奏控制 预算充足 → 正常发布 | 预算紧张 → 冻结变更 优化 核心闭环 SLI 测量 → SLO 定义 → 错误预算计算 → 变更决策 → 影响 SLI 形成持续改进的可靠性管理飞轮

2.5 本章小结

  • SLO 是服务可靠性的量化承诺,必须包含指标、阈值、窗口、合规比例四个要素。
  • SLI 是 SLO 的测量基础,四大黄金信号(延迟、流量、错误、饱和度)是最常用的 SLI 维度。
  • 错误预算 是 SLO 的衍生管理工具,用于平衡创新速度与系统稳定性。
  • 三者形成闭环:SLI 采集 → SLO 定义 → 错误预算计算 → 变更决策 → 影响 SLI。