专业书籍精读 · SRE · 第 4 章

服务质量目标:先挑对该量的东西,再谈几个 9

Site Reliability Engineering · Ch 4 · Google(Chris Jones, John Wilkes, Niall Murphy, Cody Smith)· 2016

EN →

这一章讲什么?

你点外卖、打车、刷视频,心里都有一条线:什么样算「还行」,什么样算「不能忍」。做服务的公司内部也得把这条线说清楚,不然「今天服务好不好」只能靠谁嗓门大。《SRE:Google 运维解密》第 4 章讲的就是:怎么把它变成一个大家都认的数字。

先打个比方

一家外卖店要承诺「送得快」。这句话没法用,得拆成三样东西:拿什么量(从下单到敲门的分钟数)、定到多少(一个月里九成五的单子 30 分钟内送到)、做不到赔什么(超时给券)。这三样在书里叫 SLI、SLO、SLA,最容易被混成一团。区分的窍门很简单:问一句「做不到会怎样」——说得出赔偿的,才是合同。

先说个怪事

更麻烦的是第一样:量什么。很多团队后台仪表盘一片绿,用户却在应用商店骂街——因为他们量的是「服务器有没有回话」,用户在乎的是「有没有拿到想要的东西」。Google 公布过一个对照:同一个搜索服务,按「服务器回了个正常应答」算有 99.7% 的好成绩;按「用户 5 秒内真的看到结果」算,只剩八成。

核心的点子:从用户那头往回推

这章把顺序倒过来:先问用户在乎什么,再想办法去量它,而不是先看手上有什么现成数据、再挑个好看的。此外还有两个坑。一是别只看平均:「平均送达 25 分钟」可能是一半人 15 分钟、一半人 35 分钟,真会给差评的那一半被抹平了;该做的是把订单按快慢排队,看最后那一小撮有多惨二是数字要写全:「九成五的单子 30 分钟内送到」还不够,得说清哪段时间里的九成五、在哪一头计时——骑手点「送达」那一刻,还是你真正开门那一刻。细节不写死,两个部门能各自算出一个「达标」。

最反直觉的一条:做得太好也是问题

承诺 30 分钟、长年 12 分钟就到,听着是好事。可久而久之所有人都按 12 分钟安排生活,谁也不留余量;哪天堵车送了 28 分钟,虽然没违约,一整栋楼的午饭都乱了。Google 内部一个被无数服务依赖的组件就撞上过这事:它太稳,稳到别人默认它「永远不会坏」,谁都不做备用方案。后来的对策很直接——好过头的时候,主动把它停一会儿。代价也说明白:这套东西的成本几乎全在前面,把「用户在乎什么」翻译成一个能测、大家又都服气的数字,通常比后面盯着它难得多。

一句话记住

别一上来就争「定几个 9」。先想清用户到底在乎哪件事,把它变成一个说得清「在哪测、算哪段时间」的数;要盯最难受的那一小撮人而不是平均;然后挑一个少到你敢拿它拍板的目标。做得太差要修,做得太好,也得让人记得你会坏

想进到具体机制、数字和示意图? → 切到精读版