SH

Soloharness

概念 · 辨析 · Agent

← 返回概念辨析

Concept Contrast Fable

服务级别目标和错误预算

SLO 是你承诺的服务质量下限——比如「百分之九十九点九的请求在两百毫秒内返回」。错误预算是被允许不达标的空间——「剩余百分之零点一的时间里可以慢一点」。没有错误预算的 SLO 是一个暴君,团队为了保百分之百达标会把所有发布停下来。错误预算让团队在稳定性和发布速度之间有一个可以计算的权衡工具。

寓言

鱼塘守门人和放水闸

水库管理处设了一个水位警戒线:水位一旦超过六米就开闸放水,低于四米就关闸蓄水。头两年执行得很死板。管理员小邹接到指令——超过六米就放,不问原因、不看天气预报、不商量。

有一年上游连续暴雨,水位从五米八飙升到六米二。小邹立刻开闸放水。放了一整天,水位降回到五米五。刚好那天下午市里举办龙舟赛,下游河道被放下来的水冲得浪太大,比赛取消了。市领导打电话过来骂人。小邹委屈:规程就是六米开闸,我执行规程有什么错。

老工程师老段接手管理后,把一条线改成了一个区间。区间内是安全水位:四米到六米。四米以下必须蓄水,六米以上必须放水。中间这「可容忍窗口」里,放还是蓄要看天气、下游活动、发电需求,管理员可以做判断。

小邹问老段:那精确的数字不就没意义了吗。老段说:不,精确数字告诉你的是底线在哪。超过六米不放水会溃坝——这是绝对不能突破的。但五米五的时候你可以根据下游情况缓冲一下,这个缓冲能力就是你的操作空间。你没有这个空间,每次超标你都只有一套动作,上下游总有一个人要倒霉。

管理处后来定了新规矩:水位在四米到六米之间时,管理员可以根据实际情况调度,但每次调度要记录原因,月底复盘。如果一个月里水位超过六米的次数超过两次,说明之前的调度太保守了,下个月要更早开始预泄。如果低于四米超过三次,说明之前太激进,下个月要保守。

新规矩运行一年后,龙舟赛没再被冲过,下游的农田也没被旱过。小邹总结说:以前看一条线,压力的感觉是「千万别碰,碰了就得赔」。现在看一个区间,压力的感觉是「还有多少空间,这次调度用多少、留多少」。一条线让人紧绷,一个区间让人可以做判断。

有隔壁水库的人来参观,问老段:你们的六米警戒线和我们的六米警戒线不是一样吗。老段带他看了操作台:屏幕上有两条杠——一条是六米红线,旁边还有一条五米五的橙线。老段指着橙线说:橙线以上我们就开始动作了,不等到红线才急。橙线和红线之间的空间,给了我们从容。

参观者回去后改了操作台,也加了中间区间。他在内部培训时说:高水位不可怕,可怕的是你的操作只有一个选项、一个时间点、一次机会。把红线之外的空间管理好,红线才守得住。

服务级别目标

服务提供方承诺的质量指标下限,如可用性百分比、延迟上限或错误率阈值。它定义了「正常的边界」,超出边界即视为不达标。

错误预算

在 SLO 范围内的允许不达标额度。例如 SLO 是百分之九十九点九可用性时,错误预算就是百分之零点一的不可用时间。团队可以用错误预算来决策发布节奏和风险承担。

故事对应

  • 六米警戒线:SLO——绝对不能突破的质量底线。
  • 四米到六米的可容忍窗口:错误预算——允许偏离的空间。
  • 超标必须放水不分场景:没有错误预算时,SLO 是刚性约束,缺乏灵活性。
  • 窗口内可以判断、记录、复盘:错误预算让团队有决策空间和反馈机制。
  • 本月超标次数多则下月更保守:错误预算的滚动管理,建立负反馈调节。

落到项目里

设定 SLO 时同步定义错误预算的消耗规则。比如:错误预算剩余超过百分之五十时可以正常发布,百分之十到五十之间需要审慎评估,低于百分之十时冻结发布直到预算恢复。这个规则让「能不能发版」从主观争论变成客观计算。另外错误预算不能只看剩余额度,要看消耗趋势——三天烧掉一半预算比一个月慢慢消耗危险得多。