1. 课程导论:Error Budget 概念起源、SLO 与 SLI 基础、为什么需要容量规划

1.1 从“四个九”到 Error Budget:可靠性度量的一次范式转换

在传统运维时代,团队往往追求“尽可能高的可用性”,例如“99.99% 可用”(俗称四个九)。这种目标看似明确,却带来了两个致命问题:

  • 目标模糊:99.99% 是年度目标还是月度目标?允许的停机时间是多少?
  • 创新停滞:为了守住“四个九”,团队不敢发布新功能,因为任何变更都可能引入故障。

Google 在 SRE 实践中提出了 Error Budget(错误预算) 的概念,彻底改变了这一局面。其核心思想是:没有 100% 可靠的系统。既然故障不可避免,不如将“允许的不可用时间”量化成一个预算,让可靠性成为可管理、可消耗的资源。

核心公式:
Error Budget = 1 − SLO
例如:SLO = 99.9% → Error Budget = 0.1% 的时间(月度约 43 分钟)

Error Budget 的引入,使得可靠性不再是“越高越好”,而是“够用就好”。团队可以在预算范围内,大胆地进行发布、实验和迭代,只要不把预算耗尽。

Error Budget 概念起源与核心关系 Error Budget 概念起源与核心关系 传统目标:100% 可用 “四个九” 模糊且僵化 SRE 理念:100% 不可行 故障是常态,需量化管理 Error Budget 1 − SLO 的可用预算 📊 量化可靠性 目标可测量、可追踪 ⚖️ 平衡风险与创新 预算内允许发布 🔔 触发告警与行动 预算耗尽时停止发布 💡 关键洞察 Error Budget 让“可靠性”从运维约束变为可消耗的工程资源

1.2 SLI 与 SLO:构建 Error Budget 的基石

要计算 Error Budget,首先需要定义两个基础概念:SLI(Service Level Indicator,服务等级指标) 和 SLO(Service Level Objective,服务等级目标)。

概念 定义 示例 作用
SLI 服务质量的实际测量值,通常是一个比率 请求成功率 99.95%
P99 延迟 200ms
反映当前真实状态
SLO 服务质量的目标值,是 SLI 的阈值 请求成功率 ≥ 99.9%
P99 延迟 ≤ 500ms
定义“好”与“坏”的边界
Error Budget SLO 允许的不可用额度 1 − 99.9% = 0.1% 管理风险与创新的预算
选择 SLI 的原则: 优先关注用户直接感知的指标。常见的四大黄金信号包括:延迟(Latency)、流量(Traffic)、错误(Errors)、饱和度(Saturation)。

1.3 为什么需要容量规划?—— Error Budget 消耗的视角

容量规划的传统目标是“保证系统不崩溃”。但在 Error Budget 框架下,容量规划有了新的意义:容量不足会直接消耗 Error Budget。

当系统容量不足时,通常表现为:

  • 延迟升高:请求排队,P99 延迟突破 SLO 阈值。
  • 错误率上升:超时、拒绝服务、连接池耗尽。
  • 饱和度告警:CPU、内存、磁盘、网络带宽接近极限。

这些现象都会导致 SLI 下降,进而消耗 Error Budget。如果容量规划不到位,Error Budget 会快速耗尽,导致团队被迫停止发布,陷入“保稳定 vs 促创新”的两难境地。

⚠️ 常见误区: 很多团队将容量规划等同于“采购硬件”或“扩容机器”。实际上,容量规划的核心是 预测 Error Budget 的消耗速率,并在预算耗尽前完成扩容或优化。
容量不足如何消耗 Error Budget 容量不足 → Error Budget 消耗链路 容量不足 资源达到瓶颈 性能劣化 延迟升高 / 超时 SLI 下降 成功率 / 延迟超标 Error Budget 消耗 预算快速减少 容量规划的目标:在 Error Budget 耗尽前,通过扩容或优化恢复 SLI

1.4 课程核心:Error Budget 消耗模型与 SLO 台账

本课程将围绕一个核心方法展开:Error Budget 消耗模型驱动的容量规划。我们将不再依赖“拍脑袋”的扩容决策,而是通过建立 SLO 台账,实现以下目标:

  1. 量化容量状态:将容量不足转化为 Error Budget 消耗速率。
  2. 预测消耗趋势:基于历史数据预测未来预算消耗。
  3. 制定扩容策略:在预算耗尽前,自动或手动触发扩容动作。
  4. 优化成本:避免过度扩容,实现容量与成本的平衡。
课程产出: 一套可落地的 SLO 台账模板 和 Error Budget 消耗模型,可直接用于生产环境的容量规划。

在接下来的章节中,我们将从 SLI 的采集与 SLO 的定义开始,逐步深入到 Error Budget 的计算、消耗模型的建立,以及最终的容量规划决策。让我们开始这段从“被动救火”到“主动规划”的旅程。