关于sre

《sre工程师应知的应会的97件事》里第一篇就是用6个词来概括sre,作者用到了:度量、分析、决策、行动、反思和重复。

这个其实是一个环状结构。

sre

度量

首先我们要确认为何度量,我们这个度量的东西是否是用户真正感知的。拿我比较了解的sns和im来说,那自然是登陆,守法消息,搜索添加好友,添加组什么的。这些就必须放入到我们SLO。

但是这个是否用户真正感知的东西,这些一般是运营部门,客服部门相对更清楚点,但是一些新功能新产品因为没有很多历史数据,所以需要提前预估一下。

确认好目标后,就需要分解这个目标的数据流,确认这些数据流是否可观测。最后就是确认好这些可观测点的收集频率,频率和数据量最终是有关的。

因此SRE这个岗位就是数据驱动的。

分析

分析其实一个解读的过程,你需要运用统计和概率分析基础来进行分析。我们需要尽量在这些度量的结果中了解尽可能多的事情。

我们一般是把这些信息都直接展示在dashboard中。也需要时常回归验证这些是否是我们需要的,如果有不够的就需要进行补足。还有一种就是碰到了某个事故,发现前面可观测数据或者这里的分析是有不足的。

决策

决策就是我们需要确定后面应该做什么,或者不应该做什么。这里的第一优先级是恢复正常用户的请求,可以提供降级,限流等措施。但是最好不要返回5xx这种错误。

这里的决策最好是提前就安排好对应的流程,就跟公安办理案件一样,先判断类别,然后判断等级,然后不同的案件就走不同的办案流程,如何调动其他部门等等这些都是有详细规定的。这个还是听《曳尾于涂》中听来的。其实SRE在线上事故的时候也是这样的。而平时把工作做好的话对于紧急时刻就是很好的补充。比如户籍警对于当地人口的动向等等这些都是需要平时工作中完成的。

行动

这个很简单,就是做或者不做。但是正常情况下决策了就是做,那就执行吧。这个一般都会有执行文档。这种执行文档分两种: 一种是直接复制粘帖的,不用动脑直接操作就行。还有一种就是需要做一些识别和判断的。但是作为过来人,如果是半夜大脑不清醒的时候就只做无脑的操作就行了。

反思

大部分反思都是来自模拟演练中或者实际中问题产生的。因此平时多多演练是很重要的。演练不光能够发现线上故障,团队成员对于整个故障处理流程也会更加熟悉,到最后就是条件反射了。

反思还有一个是针对之前分析和决策的对应问题,看看是否其他的问题是否还有遗漏的,多想一点总归是没错的。

重复

针对上面的整个流程再重复执行一遍。