读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攻击一样,存在巨大的危害性,你可以这样来理解:攻击者盗用了你的身份,以你的名义发送恶意请求 ...
随机推荐
- Android编程心得-在Assets文件夹中放入.sql文件实现创建SQlite表的操作
当我们在使用SQLiteOpenHelper时,经常使用db.execSQL(String sql)方法写入对应语句实现创建表的操作,这样的确可以实现业务逻辑.与此同时还有一种更灵活的方法,从asse ...
- 【codevs1048】石子归并(初级版)
采用动态规划的原因:合并有一定次序,即:只能相邻石子进行合并. 阶段:当前合并了的区间长度 状态:区间的左右端点 状态转移方程:\(dp[l][r]=min\{dp[l][r],dp[l][k]+dp ...
- 洛谷 P4378 [USACO18OPEN]Out of Sorts S(树状数组求冒泡排序循环次数)
传送门:Problem P4378 https://www.cnblogs.com/violet-acmer/p/9833502.html 要回宿舍休息了,题解明天再补吧. 题解: 定义一数组 a[m ...
- 窗体监听事件WindowListener
EXIT_ON_CLOSE:结束窗口所在的应用程序.在窗口被关闭的时候会退出JVM. DISPOSE_ON_CLOSE:隐藏当前窗口,并释放此窗体占有的资源.如果程序没有其他线程在运行,当所有窗口都被 ...
- A*算法(附c源码)
关于A*算法网上介绍的有很多,我只是看了之后对这个算法用c写了一下,并测试无误后上传以分享一下,欢迎指正!下面是我找的一个介绍,并主要根据这个实现的. 寻路算法不止 A* 这一种, 还有递归, 非递归 ...
- (大数 求余) Large Division Light OJ 1214
Large Division Given two integers, a and b, you should check whether a is divisible by b or not. We ...
- marshaller unmarshaller解析xml和读取xml
JAXB(Java Architecture for XML Binding) 是一个业界的标准,是一项可以根据XML Schema产生Java类的技术.该过程中,JAXB也提供了将XML实例文档反向 ...
- GO语言的进阶之路-go的程序结构以及包简介
GO语言的进阶之路-go的程序结构以及包简介 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.编辑,编译和运行 A,编辑 Go程序使用UTF-8编码的纯Unicode文本编写.大 ...
- 关于C#的一些小知识
问题一 :是否可以从一个static方法内部发出对非static方法的调用? 不行,可以这样理解static修饰的方法可以直接用类名调用非static修饰的方法必须用类new出对象才能调用当我们用类名 ...
- JAVA-常用集合类型转换例子(基础必备)
package com.net.xinfang.reflect; import java.util.ArrayList; import java.util.Arrays; import java.ut ...