2. SLI 基础概念:什么是 SLI、SLO、SLI 与 SLO 的关系、为什么需要统一的 SLI 口径

2.1 核心定义:SLI 与 SLO

在开始构建跨团队流水线质量体系之前,必须统一对 SLI 和 SLO 这两个基础概念的理解。它们是整个可观测性与可靠性工程的基石。

术语 全称 核心定义 通俗理解
SLI Service Level Indicator
(服务等级指标)
对服务某个特定维度的量化测量值,通常是随时间变化的数值或比率。 “我们测量了什么?”—— 例如:流水线成功率、构建时长 P95、部署频率。
SLO Service Level Objective
(服务等级目标)
为 SLI 设定的目标阈值或范围,代表服务可接受的表现水平。 “我们希望达到什么水平?”—— 例如:流水线成功率 ≥ 99.5%。
关键区分: SLI 是“事实”(实际测量值),SLO 是“期望”(目标值)。没有 SLI 的 SLO 是空谈,没有 SLO 的 SLI 是无效数据。

2.2 SLI 与 SLO 的关系:从测量到目标

SLI 与 SLO 构成一个闭环的可靠性管理模型。SLO 基于 SLI 的历史数据与业务需求设定,而 SLI 的持续观测又用于评估 SLO 的达成情况。

SLI 与 SLO 关系闭环 SLI 服务等级指标 (量化测量值) SLO 服务等级目标 (目标阈值) 设定目标 (基于历史数据) 持续观测与评估 闭环:测量 → 设定目标 → 持续观测 → 调整目标

2.3 为什么需要统一的 SLI 口径

在跨团队协作中,如果没有统一的 SLI 口径,每个团队对“成功率”、“延迟”、“可用性”的定义可能完全不同,导致数据无法横向对比,告警混乱,甚至引发团队间的信任危机。

典型混乱场景: A 团队将“流水线成功率”定义为“代码编译通过率”,B 团队定义为“包含集成测试通过率”,C 团队定义为“部署到生产环境且无回滚的比率”。三个团队汇报的“成功率”都是 99%,但实际质量水平完全不同。

统一口径的三大核心价值

  1. 可对比性: 所有团队使用相同的测量方法与计算逻辑,确保跨团队数据可以横向比较,识别出真正的瓶颈团队。
  2. 可归因性: 当 SLO 未达成时,统一的 SLI 口径能快速定位是哪个环节、哪个团队的数据出现了问题,避免互相推诿。
  3. 可自动化: 统一的 SLI 定义可以直接编码为可复用的监控与告警规则,减少人工解释与配置成本。
统一 SLI 口径 vs 非统一口径 ❌ 非统一口径 团队 A:编译通过率 = 99% 团队 B:集成测试通过率 = 95% 团队 C:部署成功率 = 98% 数据无法对比,告警阈值混乱 团队间互相指责,信任缺失 ✅ 统一口径 团队 A:流水线成功率 = 97% 团队 B:流水线成功率 = 94% 团队 C:流水线成功率 = 96% 数据可横向对比,瓶颈一目了然 统一告警规则,快速定位问题 统一口径 = 统一测量方法 + 统一计算逻辑 + 统一数据源

2.4 统一口径的落地要素

要实现统一的 SLI 口径,需要在组织层面和技术层面达成一致。以下是必须明确的四个要素:

要素 说明 示例(流水线成功率)
测量对象 明确 SLI 作用于哪个实体或过程 每条 CI/CD 流水线的单次执行
测量方法 如何采集原始数据,使用什么工具 从 Jenkins/GitLab CI API 获取构建状态
计算逻辑 具体的数学公式或聚合方式 成功执行次数 / 总执行次数 × 100%
时间窗口 数据聚合的时间范围 滚动 7 天 / 滚动 30 天
实践建议: 在跨团队启动 SLI 口径统一工作时,建议先由 SRE 团队输出一份《SLI 口径定义模板》,包含上述四个要素的填写规范。各团队基于模板填写自己的 SLI 定义,再由 SRE 团队进行评审与对齐。这个过程通常需要 2-3 轮迭代才能达成一致。