SLIs、SLOs、SLAs:SRE 的秘密配方指南
Source: Dev.to
如果你想成为一名 SRE——真正的站点可靠性巫师,就必须掌握这门行业的语言。它不是“安装 Prometheus”或“部署 Kubernetes”。而是 SLI、SLO、SLA 和错误预算——保持服务存活、让老板不再盯着你的三位一体。
Service Level Indicator (SLI)
SLI 就是你服务的“街头八卦”:它告诉你从用户视角看服务到底是怎么表现的,而不是某个技术指标图表。
- Latency SLI – 用户的社交媒体信息流加载有多快?
- Error‑rate SLI – 有多少帖子加载失败或报错?
- Availability SLI – 你的 API 完全不可用的频率是多少?
用户不在乎 CPU 负载、内存使用或线程池,这些指标与他们无关。SLI 才是人们关心的数字;它们是你的现实检验。把 SLI 当作服务的脉搏——脉搏下降,麻烦就要来了。
Service Level Objective (SLO)
SLO 是你(或团队)对可接受水平的承诺。
- 示例 1:99.9 % 的结账 API 请求应在 500 ms 以内完成。
- 示例 2:99 % 的社交媒体信息流帖子应在首次请求时正确加载。
这不是追求完美,而是“足够好”。追求 100 % 的可用性成本高得离谱。没有人关心完美;SRE 关注的是可管理的可靠性。
Service Level Agreement (SLA)
SLA 是你与付费用户之间的法律合同。若违约,用户可以要求退款或赔偿。
- 示例 1:“如果结账 API 的可用性在一个月内低于 99.5 %,我们将退还交易费用。”
- 示例 2:“如果社交媒体信息流的错误率在本月超过 0.5 %,我们将补偿高级用户。”
SLA 是 SLO 的成人版——此时律师会介入。你的内部指标(SLI、SLO)是用来避免 SLA 违约的工具。
Error Budgets
每个 SLO 都伴随一个错误预算。
- 示例:99.9 % 的结账请求在 < 500 ms 内完成的 SLO,意味着你拥有 0.1 % 的错误预算。这个 0.1 % 就是你在出现问题前可以容忍的失败比例。
错误预算是决策工具:
- 已用完错误预算? 停止高风险部署,专注于稳定性。
- 仍在错误预算范围内? 推出新功能,进行可控风险的尝试。
错误预算帮助你在速度与可靠性之间取得平衡,把灭火工作转化为智能的部署决策。
Core Truths
| 概念 | 含义 |
|---|---|
| SLI | 当前到底有多糟糕? |
| SLO | 多糟糕是可以接受的? |
| Error Budget | 在彻底崩溃前,我能容忍多少失败? |
| SLA | 我能闹到多少程度会被起诉? |
为什么作为 SRE 你要在乎这些
- 先测量,再修复。
- 关注用户可见的指标。 CPU 峰值无关紧要;延迟和错误率才是全部。
- 接受失败。 系统会出故障,但错误预算让你能够生存并快速部署。
- 自动化预防。 重复的灭火工作只适合菜鸟。