读SRE Google运维解密有感(三)
前言
这是读“SRE Google运维解密”有感第三篇,之前的文章可访问www.addops.cn来查看。
我们今天来聊聊“on call”也就是运维值班制度, 本人到目前为止也还在参与一线运维的值班,对运维值班体系也有一些感悟和心得,再参考SRE的“on call”中的方法来说说这个让运维同学“又爱又恨”的值班。
值班
因为运维人员的工作性质,要时刻保障线上服务的稳定可用,遇到事故问题要第一时间处理,所以很多运维团队的工作必须是7x24小时的。
但是人不是机器,他需要休息,也要有生活,所以不能要求人也和机器一样7x24小时运转,于是就诞生了值班制度,每天或者某个周期,值班的同学辛苦一下时刻保持响应和处理紧急问题,把团队其它成员解放,大家这样周期性轮值,劳逸结合。
所以值班的同学是伟大的,辛苦一个人,成全全团队,大家因你的值守而能暂时把压力卸掉,得到休息和放松。
如何值班
一般情况下,值班人员数量不需要太多,一个周期内基本会是一个,因为他是在非工作时间值守,事情和需求相对比较少。
值班人员也不一定强制要求在公司,他只要保证手机畅通,出了问题马上能联系到你,把电脑和vpn设备戴在身上,能时刻保证处理线上问题, 夜里也能正常休息(但是别睡太死),保证在有效时间内能联系到你。
所以值班同学更多的是在“stand by”,就是“时刻准备着”,不一定真的处理多少问题。
对于刚刚进入团队的“小鲜肉”而言,他们肯定会对值班感到恐惧,这多半是因为他们对现有情况了解不多,害怕自己搞不定。
其实大可不必这样,个人认为值班同学更多的是一个“接口人”的角色,如果遇到自己搞不定的事情,可以多方位的求助,切忌因为怕“影响大家”,而拖慢处理问题的时间,解决问题是最重要的。
所以如果你是刚刚加入值班的同学,请注意以下几点:
- 保障手机畅通,电脑和vpn在身边。
- 遇到问题尽量自己解决,解决不了要尽快求助。
- 不要有过大的心里压力,遇到问题你才能成长。
值班人的烦恼
下面我们来聊聊值班人的烦恼,值班人做为运维团队“守夜人”,他的压力是可想而知的,在他的值班周期内,他要承担全部的问题风险,必须尽快解决一切问题。
所以第一个烦恼就是“心理压力”,线上的问题各种各样,网络问题,IDC问题,服务器问题,程序问题等等,他必须有快速判断和处理的能力,还有一点是,故障发生的时间是不可预知的,就会给人一种不知道“靴子什么时候掉落”的感觉,他要时刻保持高度警惕,神经紧绷。
第二个烦恼是抵抗人的“惰性”,如果今天一直都没有报警,没有出现问题,你就会放松警惕,可能你已经准备开香槟庆祝这一天顺利度过了,突然出了问题,你需要马上收拾心情,投入到战斗中,又或者在凌晨2点,在熟睡中感受到了“报警风暴”,你要抗争着爬起来,赶紧处理问题, 这些都是对值班人的考验。
第三个烦恼是“一直在线”,有些团队值班是保证“电话在线,随时处理”即可,在没有事情的时候,你是可以做自己想做的事情,但是你要保障自己的活动能随时被打断,比如你值班的时候部门去TB爬山,值班的同学可能要背着电脑爬。
总之值班让人感觉是很“苦逼”的工作,几乎没人喜欢值班,本人觉得通过制度的改进,还是可以让值班工作变得轻松的,下面会重点探讨。
值班中的问题
上面简单说了怎样值班和值班人的烦恼,下面再说下值班制度中面临的一些问题。
一个人还是两个人
首先值班人是“一个人”还是“两个人”或者多个人,这是一个值得探讨的问题。 如果是一个人值班,很大的好处是责任明确,值班人“责无旁贷”,他只能靠自己响应和处理问题,这样相比两个人可能出现“我不处理,还有另一个人”会好很多。
但是缺点也是显而易见的,值班人是单点,他处理问题的能力,身体状态,心情好坏可能都会影响问题的解决。
如果是两个人值班,如上面所说,可能出现“互相推诿”问题,好处就是多一份保障,问题处理更加高效。
一天还是一周
另一个问题是,值班人的值班周期是“一天”还是“一周”或者更长时间。
对于值班人是一个人的情况,大多数都会是每天轮值,原因很简单,一个人连续值班好几天身体也扛不住啊,每天轮值的好处是值班人只要坚守24小时就行了,不至于太疲惫,而坏处是如果没有做好充分的交接,很多常见故障得不到根除。
比如有个常见问题,每天值班的同学都会收到报警,而当天值班的同学可能会想临时先处理一下,扛到第二天,值班人就不是我了,而下一个同学也这么做,这样问题得不到根本解决
那么如果值班时间拉长到一周或者更长,值班同学会想,现在不根除,我第二天还得处理,那么会驱动他从根本上解决问题。
如何判断值班的好坏
如何判断值班的好坏?值班报告或许只是一种手段,但是它不能代表全部。记录好值班期间发生的问题,处理好突发事件是基础,更重要的是,通过从根本上解决问题,优化系统,提升团队效率。
值班人不是超人
值班人不是超人,一方面是对值班同学说的,在遇到突发情况,解决问题是第一位的,千万不要“个人英雄主义”,觉得靠自己都能搞定,该汇报汇报,该求助求助。另一方面也是对不值班的同学说,值班的同学不是超人,他不能搞定所有事情,不能说你今天不值班就有一种“不关我事”的心态,要尽力帮助他解决问题。
值班制度是为了解决“突发事件响应”这个问题而生的,核心是解决问题,不可本末倒置。
责任心误区
值班并不是一个技术活,响应速度够不够快,处理的够不够好,更多的是考验人的响应能力,就是值班同学“够不够勤快”,而人都是有惰性的,时间长了就会心理疲劳,响应速度越来越慢了,问题处理也不及时。
这个时候,我们就觉得是值班同学的“责任心”不强,我们开始用一些提高“责任心”的方法,比如开会强调,奖惩措施,这种方式短期内有效果,时间长了又开始变的松懈,造成一种“一抓就紧,一放就松”的恶性循环。
这样就陷入到了责任心的误区,值班的好坏不等于责任心的强弱,更好的方式是通过制度和工具提升值班效率。
SRE的一些启示
上面说了这么多,现在我说说SRE值班中的一些手段,或许能给你一些启示。
- SRE中的值班方式是分为“主,副”两个人,主值班人处理紧急情况,副值班人处理非紧急情况,并且副值班人也可以是业务团队或者上下游联系紧密的相关人员。
- 值班长度为一周,可更长时间跟踪问题。
- 通过流程化判断问题的方式,减轻值班人应对问题心理压力,让他们认为按照流程走能解决大部分问题。
- 格式化沟通,确定沟通流程,不在写邮件排版上浪费时间,同时也能快速扩散消息,寻求帮助。
- 对事不对人,永远以解决问题为第一优先级。
- 多地团队配合值守,让大家“日出而做,日落而息”,当然这是因为谷歌全球都有分公司。
所以SRE更多考虑的是通过制度,流程,工具的优化,让值班更加美好,好的制度就是要规避人性的弱点,提升工作效率。
本文链接:https://addops.cn/post/sre-read-think-3.html
读SRE Google运维解密有感(三)的更多相关文章
- 读SRE Google运维解密有感(四)-聊聊问题排查
前言 这是读“SRE Google运维解密”有感第四篇,之前的文章可访问www.addops.cn来查看.今天我们来聊聊“问题排查”这个话题,本人到目前为止还在参与一线运维的工作,遇到过很多“稀奇古怪 ...
- 读SRE Google运维解密有感(二)
前言 这是读“SRE Google运维解密”有感第二篇,第一篇参见 这本书最近又读了几章,结合自己的经历,有些地方真的能感同身受,有些地方也惊叹SRE充满辩证的思想,总之SRE是好一本好书,会给你很大 ...
- 读SRE Google运维解密有感(一)
前言 这几天打算利用碎片时间读了一下"SRE Google运维解密"这本书,目前读了前几章,感觉收获颇多,结合自己的工作经历和书中的要点,写一些感悟和思考 SRE 有关SRE我就不 ...
- google运维解密
1.运维团队与开发团队的矛盾: 运维追求业务的稳定.开发更关注新功能的添加与版本的快速迭代.但是由于业务更新,有很大可能导致故障.从本质上来说,两部门是矛盾的. deops应该是: 1.对重复性工作有 ...
- SRE_ Google运维解密
# 第IV部分 管理 #系统可用性时间表 # 专用术语 SLO:服务等级目标 LCE(Land-Covered Earth):紧急检修登陆艇 # 紧急事故管理 一次流程管理良好的事故 # 东西早晚要坏 ...
- 百度王一男: DevOps 的前提是拆掉业务-开发-测试-运维中间的三面墙
这是一个创建于 375 天前的主题,其中的信息可能已经有所发展或是发生改变. 由数人云.优维科技.中生代社区联合发起的 系列 Meetup < DevOps&SRE 超越传统运维之道&g ...
- 企业Shell面试题及企业运维实战案例(三)
1.企业Shell面试题1:批量生成随机字符文件名案例 使用for循环在/oldboy目录下批量创建10个html文件,其中每个文件需要包含10个随机小写字母加固定字符串oldboy,名称示例如下: ...
- 系统运维技巧(三)——利用dd命令临时增加交换分区
有时会遇到内存不够用的情况,可以使用本文提供的方法进行临时增加交换分区. #制作交换分区——得到文件 [root@serv01 linux-2.6.38]# dd if=/dev/zero of=/s ...
- Python自动化运维 - Django(三)CSRF - Cookie&Session
CSRF跨站请求伪造 CSRF跨站点请求伪造(Cross—Site Request Forgery),跟XSS攻击一样,存在巨大的危害性,你可以这样来理解:攻击者盗用了你的身份,以你的名义发送恶意请求 ...
随机推荐
- wordcloud词云
借鉴别人的一个小例子,快速生成词云的代码: from wordcloud import WordCloud f = open(u'txt/AliceEN.txt','r').read() wordcl ...
- 【POJ3666】Making the Grade 离散化+DP
学到了一个引理:在满足S最小化的条件下,一定存在一种构造序列B的方案,使得序列B中的数值都来自于A中.(数学归纳法+中位数定理得证) 对于状态的表示来说,首先肯定有一个 i ,表示选到了第 i 个数时 ...
- 洛谷 P3951 小凯的疑惑(数学)
传送门:Problem P3951 https://www.cnblogs.com/violet-acmer/p/9827010.html 参考资料: [1]:http://m.blog.sina.c ...
- nginx 中配置多个location并解决js/css/jpg/等的加载问题
2017-11-09 22:07 277人阅读 评论(0) 收藏 举报 分类: linux(1) 版权声明:如有版权问题,请私信我. ECS:阿里云 系统:ubuntu 16.04 我的配置文件位 ...
- ajax上传文件及进度显示
之前在博文:原生ajax写法就提及过ajax2.0与1.0的差别是多了FormData和利用FormData文件上传(当然还有跨域,但不是本文的重点). 那么具体怎么样实现ajax上传文件呢? 一般来 ...
- DataSet in Machine Learning
一.UCI Wine dataset:https://archive.ics.uci.edu/ml/datasets/Wine,包含178个样本,每个样本包含13个与酒的化学特性的特征,标签有1,2, ...
- 学习windows编程 day4 之视口和窗口
LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { HDC hdc; PAINTSTRU ...
- js的this到底是什么意思
首先确定一点,this在声明时确定不了,在执行时才知道指向的谁!!! call() , apply(),bind() 方法的用法 比如下面一个例子: function fn(name,age){ a ...
- C++面试集锦( 面试被问到的问题 )
1. C 和 C++ 区别 2. const 有什么用途 主要有三点: 1:定义只读变量,即常量 2:修饰函数的参数和函数的返回值 3: 修饰函数的定义体,这里的函数为类的成员函数,被cons ...
- Hive记录-Hive on Spark环境部署
1.hive执行引擎 Hive默认使用MapReduce作为执行引擎,即Hive on mr.实际上,Hive还可以使用Tez和Spark作为其执行引擎,分别为Hive on Tez和Hive on ...