1. SLO 基础概念:服务等级目标、SLI 与错误预算

在开始多集群作业模板迁移验证之前,必须建立统一的 SLO 语言体系。SLO(Service Level Objective,服务等级目标)是站点可靠性工程(SRE)的核心量化工具,它把“服务是否健康”从主观判断转化为可度量、可审计的工程指标。

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

SLO 是服务提供方承诺的、在一段评估窗口内必须达到的可靠性阈值。它通常以百分比形式表达,例如“99.9% 的请求在 200ms 内完成”。SLO 不是 SLA(Service Level Agreement,服务等级协议),SLA 是带有惩罚条款的合同承诺,而 SLO 是内部工程团队自我约束的目标。

维度 SLO SLA
受众 内部工程团队 客户 / 业务方
约束力 自我承诺,无惩罚 合同约束,有赔偿条款
粒度 可细化到单个 API、作业类型 通常为整体服务
调整频率 按迭代周期调整 按合同周期调整
关键认知:SLO 是“我们想要达到的目标”,SLA 是“我们必须达到的底线”。在多集群作业迁移场景中,SLO 用于指导迁移节奏和回滚决策,SLA 则用于对外承诺迁移期间的服务可用性。

1.2 SLI 与 SLO 的关系

SLI(Service Level Indicator,服务等级指标)是 SLO 的量化基础。没有 SLI,SLO 就是空头支票。SLI 是原始测量值,SLO 是对 SLI 施加的阈值约束。

  • SLI 示例:请求延迟 P99、错误率、吞吐量、作业完成率。
  • SLO 示例:“P99 延迟 ≤ 200ms”(对 SLI 的约束)。

SLI 与 SLO 的映射关系可以用以下公式表达:

SLO = 对 SLI 施加的阈值 + 评估窗口 + 达标比例

例如:
SLI = 请求延迟 P99
SLO = P99 ≤ 200ms,在 30 天滚动窗口内达标率 ≥ 99.9%
工程实践:一个 SLI 可以对应多个 SLO(例如:P99 延迟 SLO 和 P50 延迟 SLO),但一个 SLO 只能绑定一个 SLI。在多集群作业模板迁移中,我们至少需要定义“作业提交成功率 SLI”和“作业完成延迟 SLI”两个核心指标。
SLI → SLO 映射关系 SLI 原始指标 请求延迟 P99 施加阈值 阈值约束 ≤ 200ms + 窗口 + 比例 SLO 目标 P99 ≤ 200ms @ 99.9% SLI → SLO 转换示例 • SLI:作业提交成功率 = 成功提交数 / 总提交数 • SLO:作业提交成功率 ≥ 99.5%,在 7 天滚动窗口内 • 错误预算 = (1 - 0.995) × 7 × 24 × 3600 = 3024 秒不可用时间

1.3 错误预算概念

错误预算(Error Budget)是 SLO 的衍生概念,它量化了服务在评估窗口内允许的“不可靠”总量。错误预算 = (1 - SLO) × 总时间窗口。例如,99.9% SLO 的 30 天错误预算为 43.2 分钟。

错误预算的核心价值在于:它把“可靠性”和“创新速度”放在同一个天平上衡量。当错误预算充足时,团队可以放心地进行多集群迁移、模板升级、功能发布;当错误预算耗尽时,必须停止所有风险操作,全力恢复稳定性。

SLO 目标 每日错误预算 每月错误预算(30天) 典型场景
99.9% 86.4 秒 43.2 分钟 生产核心作业
99.5% 7.2 分钟 3.6 小时 批处理作业
99.0% 14.4 分钟 7.2 小时 开发 / 测试集群
95.0% 1.2 小时 36 小时 非关键实验作业
迁移陷阱:在多集群作业模板迁移期间,错误预算消耗速度会显著加快。建议在迁移窗口开始前预留至少 50% 的错误预算作为安全缓冲。如果迁移过程中错误预算消耗超过 30%,应立即触发回滚流程。
错误预算驱动的迁移决策流程 错误预算池 总预算 = 43.2 分钟 已消耗:12 分钟 预算检查 剩余 ≥ 50%? 是 继续迁移 正常节奏 否 暂停 / 回滚 立即止损 错误预算驱动的迁移节奏控制 1. 迁移前:确认错误预算剩余 ≥ 50%,否则推迟迁移窗口 2. 迁移中:每 15 分钟检查一次错误预算消耗速率 3. 迁移后:消耗速率回归基线后,释放剩余预算用于下一批次

1.4 三者的协同关系

SLI、SLO、错误预算构成一个闭环反馈系统:

  1. 测量(SLI):持续采集作业提交成功率、延迟、吞吐量等原始指标。
  2. 评估(SLO):将 SLI 与预设阈值对比,判断是否达标。
  3. 决策(错误预算):根据剩余预算决定是否允许执行风险操作(如模板迁移)。
  4. 行动:执行迁移或回滚,并观察 SLI 变化,形成闭环。
多集群迁移中的实践要点:
  • 每个集群独立定义 SLI,但 SLO 应统一对齐业务目标。
  • 错误预算应在集群间共享还是隔离?建议按作业优先级划分预算池,核心作业共享高优先级预算池。
  • 迁移过程中,SLI 的采集频率应从 5 分钟提升到 1 分钟,以便快速发现异常。