1. SLO 基础概念
服务等级目标(Service Level Objective, SLO)是平台工程团队量化服务健康度的核心契约。它不是一个简单的“可用性百分比”,而是围绕用户真实体验定义的可测量、可问责的可靠性边界。理解 SLO 之前,必须先厘清 SLI、SLO 与错误预算三者的关系。
1.1 SLO 定义
SLO 是服务等级指标(SLI)的目标值或目标范围。它回答了这样一个问题:“在给定的时间窗口内,服务的关键行为必须好到什么程度?” 平台工程团队通常为每个关键用户旅程或基础设施能力定义 SLO。
- 目标值形式:例如“99.9% 的请求延迟 ≤ 200ms”。
- 时间窗口:通常为 28 天或 30 天滚动窗口,避免短期波动触发过度反应。
- 测量粒度:基于 SLI 的聚合结果,而非单次请求。
平台工程实践提示:SLO 不是“承诺”,而是“目标”。低于 SLO 不意味着立即处罚,而是触发错误预算消耗告警,指导团队优先投入可靠性工作。
1.2 SLI 与 SLO 的关系
SLI(Service Level Indicator)是原始测量指标,SLO 是这些指标的目标阈值。两者是“测量”与“标准”的关系。
| 维度 | SLI(服务等级指标) | SLO(服务等级目标) |
|---|---|---|
| 定义 | 对服务某个方面的量化测量 | SLI 应达到的目标值或范围 |
| 示例 | 请求延迟 P99 = 180ms | P99 延迟 ≤ 200ms(30 天滚动窗口内 99.9% 时间满足) |
| 粒度 | 原始时间序列数据点 | 聚合后的合规率 |
| 变更频率 | 随系统行为实时变化 | 相对稳定,按季度或版本评审 |
| 平台工程角色 | 由平台埋点、导出、标准化 | 由平台团队与业务方共同协商制定 |
关键公式:SLO 合规率 = (SLI 符合目标的时间 / 总测量时间) × 100%。例如:30 天内每分钟测量一次,共 43200 个数据点,其中 43157 个点满足延迟 ≤ 200ms,则合规率为 99.9%。
1.3 错误预算概念
错误预算(Error Budget)是 SLO 的衍生管理工具,定义为 1 - SLO。它量化了服务在给定时间窗口内“允许失败”的总量。错误预算将可靠性从“目标”转化为“可消耗资源”,从而协调开发速度与稳定性。
- 计算公式:错误预算 = 总时间 × (1 - SLO)。例如 SLO = 99.9%,30 天总分钟数 43200,则错误预算 = 43200 × 0.001 = 43.2 分钟。
- 消耗机制:每次 SLI 未达标事件消耗错误预算。消耗速率反映服务稳定性趋势。
- 燃尽告警:当错误预算剩余低于 20% 或消耗速率异常时,触发告警,要求团队暂停新功能发布,优先修复可靠性。
常见误区:错误预算不是“故障配额”。它不鼓励故意消耗预算,而是提供客观依据,在“发布新功能”与“保持稳定”之间做数据驱动的权衡。平台工程团队应避免将错误预算用于问责或惩罚。
1.4 SLO 在平台工程中的价值
在平台工程场景中,SLO 超越了传统运维监控的范畴,成为平台团队与内部开发者之间的“服务等级契约”。其核心价值体现在以下四个维度:
| 价值维度 | 具体体现 | 平台工程示例 |
|---|---|---|
| 1. 对齐期望 | 平台团队与业务团队就“什么是足够好”达成一致 | CI/CD 流水线 SLO:95% 的构建在 5 分钟内完成 |
| 2. 数据驱动决策 | 用错误预算指导发布节奏和可靠性投入 | 错误预算剩余 10% 时自动阻塞非关键变更 |
| 3. 消除“英雄主义”运维 | 避免基于直觉的“救火”模式,转向可预测的运营 | 基于 SLI 趋势自动扩缩容,而非人工盯屏 |
| 4. 持续改进闭环 | SLO 未达标驱动根本原因分析与平台能力增强 | 存储 SLO 未达标 → 引入缓存层 → 重新评估 SLO |
1.5 平台工程 SLO 的典型指标维度
平台工程团队通常从以下四个黄金信号(Google SRE 方法论)出发定义 SLI,进而制定 SLO:
- 延迟(Latency):请求从发出到收到响应的时间。平台 API 网关、构建流水线、部署时间均适用。
- 流量(Traffic):系统承载的请求量。例如每秒 API 调用数、每分钟流水线触发次数。
- 错误(Errors):显式错误(HTTP 5xx)与隐式错误(返回成功但内容错误)。
- 饱和度(Saturation):资源使用程度。例如 CPU 使用率、队列深度、连接池占用。
平台工程 SLO 示例:
• 开发者控制台 API:P99 延迟 ≤ 500ms,SLO 99.95%
• CI 构建服务:90% 的构建在 5 分钟内完成,SLO 99.5%
• 制品仓库下载:可用性 ≥ 99.99%,错误率 ≤ 0.01%
• 基础设施预配:95% 的预配请求在 2 分钟内完成
• 开发者控制台 API:P99 延迟 ≤ 500ms,SLO 99.95%
• CI 构建服务:90% 的构建在 5 分钟内完成,SLO 99.5%
• 制品仓库下载:可用性 ≥ 99.99%,错误率 ≤ 0.01%
• 基础设施预配:95% 的预配请求在 2 分钟内完成