首页 > 代码库 > 读SRE Google运维解密有感(三)

读SRE Google运维解密有感(三)

前言

这是读“SRE Google运维解密”有感第三篇,之前的文章可访问www.addops.cn来查看。
我们今天来聊聊“on call”也就是运维值班制度, 本人到目前为止也还在参与一线运维的值班,对运维值班体系也有一些感悟和心得,再参考SRE的“on call”中的方法来说说这个让运维同学“又爱又恨”的值班。

值班

因为运维人员的工作性质,要时刻保障线上服务的稳定可用,遇到事故问题要第一时间处理,所以很多运维团队的工作必须是7x24小时的。

但是人不是机器,他需要休息,也要有生活,所以不能要求人也和机器一样7x24小时运转,于是就诞生了值班制度,每天或者某个周期,值班的同学辛苦一下时刻保持响应和处理紧急问题,把团队其它成员解放,大家这样周期性轮值,劳逸结合。

所以值班的同学是伟大的,辛苦一个人,成全全团队,大家因你的值守而能暂时把压力卸掉,得到休息和放松。

如何值班

一般情况下,值班人员数量不需要太多,一个周期内基本会是一个,因为他是在非工作时间值守,事情和需求相对比较少。

值班人员也不一定强制要求在公司,他只要保证手机畅通,出了问题马上能联系到你,把电脑和vpn设备戴在身上,能时刻保证处理线上问题, 夜里也能正常休息(但是别睡太死),保证在有效时间内能联系到你。

所以值班同学更多的是在“stand by”,就是“时刻准备着”,不一定真的处理多少问题。

对于刚刚进入团队的“小鲜肉”而言,他们肯定会对值班感到恐惧,这多半是因为他们对现有情况了解不多,害怕自己搞不定。

其实大可不必这样,个人认为值班同学更多的是一个“接口人”的角色,如果遇到自己搞不定的事情,可以多方位的求助,切忌因为怕“影响大家”,而拖慢处理问题的时间,解决问题是最重要的。

所以如果你是刚刚加入值班的同学,请注意以下几点:

  1. 保障手机畅通,电脑和vpn在身边。
  2. 遇到问题尽量自己解决,解决不了要尽快求助。
  3. 不要有过大的心里压力,遇到问题你才能成长。

值班人的烦恼

下面我们来聊聊值班人的烦恼,值班人做为运维团队“守夜人”,他的压力是可想而知的,在他的值班周期内,他要承担全部的问题风险,必须尽快解决一切问题。

所以第一个烦恼就是“心理压力”,线上的问题各种各样,网络问题,IDC问题,服务器问题,程序问题等等,他必须有快速判断和处理的能力,还有一点是,故障发生的时间是不可预知的,就会给人一种不知道“靴子什么时候掉落”的感觉,他要时刻保持高度警惕,神经紧绷。

第二个烦恼是抵抗人的“惰性”,如果今天一直都没有报警,没有出现问题,你就会放松警惕,可能你已经准备开香槟庆祝这一天顺利度过了,突然出了问题,你需要马上收拾心情,投入到战斗中,又或者在凌晨2点,在熟睡中感受到了“报警风暴”,你要抗争着爬起来,赶紧处理问题, 这些都是对值班人的考验。

第三个烦恼是“一直在线”,有些团队值班是保证“电话在线,随时处理”即可,在没有事情的时候,你是可以做自己想做的事情,但是你要保障自己的活动能随时被打断,比如你值班的时候部门去TB爬山,值班的同学可能要背着电脑爬。

总之值班让人感觉是很“苦逼”的工作,几乎没人喜欢值班,本人觉得通过制度的改进,还是可以让值班工作变得轻松的,下面会重点探讨。

值班中的问题

上面简单说了怎样值班和值班人的烦恼,下面再说下值班制度中面临的一些问题。

一个人还是两个人

首先值班人是“一个人”还是“两个人”或者多个人,这是一个值得探讨的问题。 如果是一个人值班,很大的好处是责任明确,值班人“责无旁贷”,他只能靠自己响应和处理问题,这样相比两个人可能出现“我不处理,还有另一个人”会好很多。
但是缺点也是显而易见的,值班人是单点,他处理问题的能力,身体状态,心情好坏可能都会影响问题的解决。
如果是两个人值班,如上面所说,可能出现“互相推诿”问题,好处就是多一份保障,问题处理更加高效

一天还是一周

另一个问题是,值班人的值班周期是“一天”还是“一周”或者更长时间。
对于值班人是一个人的情况,大多数都会是每天轮值,原因很简单,一个人连续值班好几天身体也扛不住啊,每天轮值的好处是值班人只要坚守24小时就行了,不至于太疲惫,而坏处是如果没有做好充分的交接,很多常见故障得不到根除。
比如有个常见问题,每天值班的同学都会收到报警,而当天值班的同学可能会想临时先处理一下,扛到第二天,值班人就不是我了,而下一个同学也这么做,这样问题得不到根本解决
那么如果值班时间拉长到一周或者更长,值班同学会想,现在不根除,我第二天还得处理,那么会驱动他从根本上解决问题。

如何判断值班的好坏

如何判断值班的好坏?值班报告或许只是一种手段,但是它不能代表全部。记录好值班期间发生的问题,处理好突发事件是基础,更重要的是,通过从根本上解决问题,优化系统,提升团队效率。

值班人不是超人

值班人不是超人,一方面是对值班同学说的,在遇到突发情况,解决问题是第一位的,千万不要“个人英雄主义”,觉得靠自己都能搞定,该汇报汇报,该求助求助。另一方面也是对不值班的同学说,值班的同学不是超人,他不能搞定所有事情,不能说你今天不值班就有一种“不关我事”的心态,要尽力帮助他解决问题。
值班制度是为了解决“突发事件响应”这个问题而生的,核心是解决问题,不可本末倒置。

责任心误区

值班并不是一个技术活,响应速度够不够快,处理的够不够好,更多的是考验人的响应能力,就是值班同学“够不够勤快”,而人都是有惰性的,时间长了就会心理疲劳,响应速度越来越慢了,问题处理也不及时。
这个时候,我们就觉得是值班同学的“责任心”不强,我们开始用一些提高“责任心”的方法,比如开会强调,奖惩措施,这种方式短期内有效果,时间长了又开始变的松懈,造成一种“一抓就紧,一放就松”的恶性循环。
这样就陷入到了责任心的误区,值班的好坏不等于责任心的强弱,更好的方式是通过制度和工具提升值班效率。

SRE的一些启示

上面说了这么多,现在我说说SRE值班中的一些手段,或许能给你一些启示。

  • SRE中的值班方式是分为“主,副”两个人,主值班人处理紧急情况,副值班人处理非紧急情况,并且副值班人也可以是业务团队或者上下游联系紧密的相关人员。
  • 值班长度为一周,可更长时间跟踪问题。
  • 通过流程化判断问题的方式,减轻值班人应对问题心理压力,让他们认为按照流程走能解决大部分问题。
  • 格式化沟通,确定沟通流程,不在写邮件排版上浪费时间,同时也能快速扩散消息,寻求帮助。
  • 对事不对人,永远以解决问题为第一优先级。
  • 多地团队配合值守,让大家“日出而做,日落而息”,当然这是因为谷歌全球都有分公司。

所以SRE更多考虑的是通过制度,流程,工具的优化,让值班更加美好,好的制度就是要规避人性的弱点,提升工作效率。

本文链接:https://addops.cn/post/sre-read-think-3.html

读SRE Google运维解密有感(三)