服务等级目标与错误预算
§1摘要与结论
别名:SLO、Service Level Objective、SLI/SLO/SLA、错误预算、Error Budget、燃尽率 | 英文:SLI/SLO and Error Budget | 类型:技术 / practice
§2局部关系图
§3原理 · 为什么
可靠性应以用户可感知的服务水平来定义,而非笼统地追求越高越好。100% 不是正确目标:既不可达,又会因变更是故障的首要来源而扼杀发布与迭代,且用户通常感知不到 99.99% 与 99.999% 的差别。SLI 是对服务水平某一方面的、被谨慎定义的定量度量;SLO 是针对该度量设定的目标值或区间;SLA 则是与用户之间含财务或法律后果的契约,三者层次不同、不可混用。错误预算(100% 减 SLO)把创新与稳定之间的政治争论转化为一个客观、由双方共同定义、供发布决策使用的量化机制:预算充足则放行发布,接近耗尽则放缓并投入加固,从制度上约束产品团队的自我克制。SLO 还是跨团队沟通可靠性的公共语言:它把模糊的感觉转成可讨论的数字,使产品、研发与运维能对同一目标负责。目标应保持简单、避免绝对化(如永远、无限),只保留足以覆盖关键属性的少数几条,先松后紧并允许迭代。
§4机制 · 如何运作
SLI 推荐以好事件数除以总事件数表达(如成功请求数/总请求数,或满足延迟阈值的请求数/总请求数),天然取值 0% 到 100% 并可直接导出错误预算,便于工具化为分子、分母、阈值三要素。SLO 形如 SLI 大于等于 target,例如 28 天滚动窗口内 99.9% 的请求成功;同一 SLI 可设多级阈值。错误预算即 100% 减 SLO,是允许的不可靠度。燃尽率(burn rate)描述预算被消耗的速率,实践中用多窗口、多燃尽率组合(如 1 小时/6 小时/1 天/3 天窗口对应不同倍数)兼顾查准率与查全率,比单一瞬时错误率告警更可靠。错误预算政策明确规定预算耗尽后的动作,如冻结发布、回滚或投入可靠性工作,使 SLO 真正约束决策;它也是 SRE 实践得以成立的前提之一,把预算耗尽后的技术动作制度化,避免每次都要临时谈判。窗口长度与聚合频率会影响灵敏度与噪声,短窗口响应快但易抖动,长窗口稳定但迟钝,多窗口组合可兼顾。
§5工程 · 怎么落地
每个服务只保留少量能够覆盖关键属性的 SLO,并显式规定聚合窗口、聚合范围、测量频率、纳入的请求、数据采集位置与延迟口径(如 time to last byte)。面向用户的服务应区分成功与失败请求的延迟,并用百分位而非均值。告警应基于燃尽率而非单一瞬时错误率,以避免一天误报上百次而 SLO 仍达标的情形。内部 SLO 应比对外 SLO 更严格,留出安全边际;对计划维护等预期停机可用状态修正(status corrections)排除。指标须从真实服务数据自动计算并保持口径稳定,配合错误预算政策、评审机制与发布流程落地,而不是停留在仪表盘上。为每个 SLI 记录清晰的文档,包括意图、计算方式、数据来源与责任人,并在服务变更时同步更新,以防口径漂移。
§6权衡卡
- SLO 目标过高会消耗大量工程投入并阻碍变更,过低则失去意义并损害信任。
- 错误预算只有在存在正式政策时才有效,否则 SLO 合规只是又一个 KPI。
- 燃尽率告警的窗口与倍数必须按服务校准,参数不当会误报或漏报。
- 对外过高的 SLO 会诱导用户形成刚性依赖,使后续降级困难,因此有时需通过计划性下线主动暴露依赖。
- 此外,SLI 的口径(成功如何判定、延迟在哪一端测量、哪些请求计入)若定义不清,会导致不同团队数据不可比并引发争议,必须在 SLO 文档中显式固化并随服务演进而复核。
- 团队还可能通过操纵 SLI 定义来美化达标率,因此口径的修订应有评审与记录,避免指标被悄然软化。
- 错误预算耗尽后的冻结策略也需预先约定,否则易在压力下被临时豁免而形同虚设。
权衡原文仅按显式标记词归栏引用(收益 / 代价 / 反例),其余句子按原序列为「原文要点」;内容逐字引用未改写。
§7案例带
去中心化聊天架构逆向
对一个仅有 58 份设计文档、尚未实现的开源去中心化聊天项目做架构逆向:从设计文本提炼 18 个模块及其依赖关系,重建模块依赖 DAG 与三条核心数据流 DAG,并输出全景理解与深度需求分析。
preset 通道耦合分析
对 harness「委派工具层→续用管理器→preset 服务→MCP 服务器」这条通道做耦合分析:识别契约、服务定位、数据契约、组合语义、路径与装配一致性六类耦合点,定位「静默丢弃特化」与「装配漂移」两处实质缝隙。
harness 源码架构解析
对 deepseek-harness 官方源码做分层解析:镜像官方架构文档,按九个层与九十余模块建立文档集群,产出跨层联动矩阵与七条关键路径,并钉住「模型可见即已记录」、能力缝三角等设计不变量。
MCP 四件套选型对比
对四个同类 MCP 服务器做源码级能力与成本对比,并以常驻 token 预算为轴给出分级接入策略的技术选型实战案例。
§8信源与核验
核验结论:100% 既不可达,也会因变更是故障首要来源而使服务无法更新;正确做法是设定小于 100% 的 SLO [BK-025]
核验结论:若缺乏错误预算政策(对预算耗尽后动作的正式承诺),SLO 合规只是又一个 KPI,无法约束发布决策 [BK-026]
核验结论:SLO 是内部目标值;SLA 是含财务或法律后果的契约。若无人为未达成承担明确后果,则它只是 SLO [VEN-029]
§9原始关系清单
展开:本节点的全部原始关系边(5 条,含边 ID 与方向)
| 关系 | 方向 | 对端节点 | 说明 |
|---|---|---|---|
| 组合 | → TEC-K-04 | 混沌工程实践 E-871 | 错误预算界定混沌实验可接受的爆炸半径 |
| 组合 | → TEC-K-06 | DORA 交付指标 E-869 | 错误预算与交付指标共同度量稳定与吞吐 |
| 促成 | ← TEC-K-02 | 可观测性信号采集 E-865 | 可观测信号使 SLO 可度量 |
| 实现 | → MTH-K-01 | 服务等级目标方法 E-860 | 服务等级目标的度量与设定 |
| 实现 | → MTH-K-02 | 错误预算政策与燃尽率告警 E-861 | 错误预算与燃尽率告警实现 |