error budget触发自愈剧本门禁 - 第1节

1.1 从 SLA 到 SLO:可靠性承诺的演进

在云原生与微服务架构中,服务可靠性不再是“尽力而为”的模糊承诺,而是需要被精确度量、持续追踪并主动管理的工程指标。传统 SLA(Service Level Agreement,服务等级协议)是面向客户的法律合同条款,而 SLO(Service Level Objective,服务等级目标)则是面向工程团队的内部可靠性靶心。

概念 定义 受众 典型粒度
SLA 服务提供商与客户之间的正式合同,包含违约赔偿条款 法务、商务、客户 月/季度
SLO 服务内部设定的可靠性目标,比 SLA 更严格 研发、SRE、运维 滚动窗口(28天/30天)
SLI 服务可靠性的具体量化指标,是 SLO 的度量基础 技术团队 分钟级/请求级
工程铁律: 内部 SLO 必须比对外 SLA 更严格。例如 SLA 承诺 99.9%,内部 SLO 应设为 99.95%,预留缓冲空间,避免 SLA 违约风险。

1.2 SLI:可靠性的量化基石

SLI(Service Level Indicator,服务等级指标)是对服务质量的某个维度进行原始测量的数值。常见的 SLI 类型包括:

  • 可用性 SLI:成功请求数 / 总请求数 × 100%
  • 延迟 SLI:满足阈值(如 p99 ≤ 200ms)的请求占比
  • 吞吐量 SLI:每秒成功处理的请求数(RPS)
  • 错误率 SLI:返回 HTTP 5xx 或业务错误码的请求占比
  • 饱和度 SLI:资源使用率(CPU/内存/连接池)
SLI 定义黄金法则: 每个 SLI 必须明确三个要素——测量窗口(如 1 分钟)、良好条件(如 p99 延迟 < 200ms)、聚合方式(如滑动窗口平均)。缺少任一要素的 SLI 都无法用于 SLO 计算。

1.3 SLO:可靠性的工程靶心

SLO 是对 SLI 设定目标阈值,例如“过去 28 天内,99.9% 的请求延迟低于 200ms”。SLO 的设定需要平衡用户体验与工程成本:

SLO 等级 可用性目标 年度最大不可用时间 典型适用场景
基础 99.9%(三个九) 8.76 小时 内部工具、开发环境
标准 99.95%(三个九半) 4.38 小时 核心业务 API、支付系统
高可用 99.99%(四个九) 52.56 分钟 实时交易、在线游戏
极致 99.999%(五个九) 5.26 分钟 电信核心网、金融清算
常见误区: 不要为所有服务设置统一的 SLO。不同服务对可靠性的敏感度不同,统一 SLO 会导致成本浪费或保护不足。建议按服务关键度分级设置差异化 SLO。

1.4 Error Budget:可靠性与创新速度的调节阀

Error Budget(错误预算)是 SLO 的衍生概念,定义为 1 − SLO。例如 SLO 为 99.9%,则 Error Budget 为 0.1%。它代表服务在 SLO 窗口内允许发生故障的最大时间或请求比例。

Error Budget 的核心价值在于:

  • 量化容错空间:将抽象的“允许故障”转化为可追踪的数值
  • 决策依据:Error Budget 充足时,团队可以大胆发布新功能;不足时,应冻结发布并优先修复稳定性
  • 消除对立:避免开发团队与 SRE 团队在“能否发布”上无休止争论,用数据说话
# Error Budget 计算示例(基于请求数)
SLO = 99.9%
总请求数(28天滚动窗口) = 10,000,000
允许失败请求数 = 10,000,000 × (1 - 0.999) = 10,000
当前失败请求数 = 6,500
剩余 Error Budget = 10,000 - 6,500 = 3,500(占比 35%)
状态:✅ 充足,可正常发布
实战经验: Error Budget 建议使用滚动窗口(如 28 天或 30 天)而非固定日历月。滚动窗口能平滑处理突发流量和节假日效应,避免月初重置导致的风险盲区。

1.5 三者的核心关系:SLI → SLO → Error Budget

SLI、SLO、Error Budget 构成了可靠性工程的闭环度量体系:

SLI → SLO → Error Budget 核心关系图 SLI 服务等级指标 延迟 / 错误率 / 吞吐量 设定目标 SLO 服务等级目标 99.9% 请求延迟 < 200ms 推导 Error Budget 错误预算 1 − SLO = 0.1% 消耗 → 触发自愈 / 冻结发布 Error Budget 驱动决策闭环 • Error Budget 充足(> 50%):允许正常发布、实验性功能上线 • Error Budget 告警(20% ~ 50%):限制高风险发布,启动预案准备 • Error Budget 耗尽(< 20%):冻结所有非必要变更,触发自愈剧本

1.6 Error Budget 在可靠性工程中的核心地位

Error Budget 不仅是度量工具,更是 SRE 实践中的决策中枢。它将可靠性从“被动救火”转变为“主动管理”:

场景 无 Error Budget 时 有 Error Budget 时
新功能发布决策 靠“感觉”或“领导拍板” Error Budget 剩余量决定是否允许发布
故障响应优先级 所有故障都紧急,资源分散 仅消耗 Error Budget 的故障需要立即响应
团队协作 开发 vs SRE 对立,互相指责 共同关注 Error Budget,目标一致
容量规划 凭经验估算,容易过度或不足 Error Budget 消耗趋势指导扩容决策
自愈触发 人工判断是否执行自愈流程 Error Budget 阈值自动触发自愈剧本
本课程核心: 当 Error Budget 消耗超过预设阈值时,自动触发自愈剧本(Self-Healing Playbook),实现故障的自动发现 → 自动诊断 → 自动恢复 → 自动验证闭环,将 MTTR(平均修复时间)从小时级压缩到分钟级。

1.7 本章小结:可靠性工程的三驾马车

  • SLI 是度量——回答“我们测量什么?”
  • SLO 是目标——回答“我们想要多可靠?”
  • Error Budget 是决策——回答“我们还有多少容错空间?”