探底攻城狮(背锅侠)狗蛋的一天
开篇序
运维工程师(Operations)。负责维护并确保整个服务的高可用性,同时不断优化系统架构、提升部署效率、优化资源利用率。 每天面对的最大挑战是大规模集群的管理问题,如何管理好不同数量级的服务器正常运行,同时保障服务的高可用性。
作为一名运维工程师,深知这个岗位的重要性。虽然每天面对着一片无情而又无辜的服务器,但是这也同样是我们处在这个行业里生存的一丝价值。
我们是谁? 运维攻城狮! 我们的日常是? 救火与背锅! 如何背锅? 躺着背锅! 可能在大多数同行们的心中,都有着上图一样的心情,运维=专业背锅侠,每天,都在替不同的人、不同的事、不同的流程背锅,有背开发的锅、产品的锅、领导的锅、测试的锅、同事的锅,总之,一句话,除了开火做饭的锅不背,啥锅都背过。
因此,今天我们以运维工程师(狗蛋)的一天为例,来看一看到底运维工程师的日常做些什么?到底有哪些突如其来的锅?
运维狗蛋的一天
深秋十月的早晨,天空刚刚泛起鱼肚白,狗蛋在睡梦中被那闹人的闹钟无情的拉进了现实,狗蛋也记不起这是他运维生涯中的第多少这样的早晨了,低头看了看表,北京时间上午8:00整,突然狗蛋记起,昨晚项目上线到零晨3:00才回的家,狗蛋低着头若有所思,心想这就是所谓的"IT民工"的生活吧,Get up and Just Do It。 走在上班的路上,突然想起昨晚的项目上线后还没有及时向运营大佬回报,心里一惊之后,拿出手机,噼里啪啦的敲击起来
微信(20) 追债的
王总,早上好
昨晚的项目凌晨三点上线了,目前运行良好 好的,数据怎么样
这个,上线后我就下班了,等会看下 什么?你们运维是干什么吃的?
数据都不看的?
不是说有开发什么系统吗,能手机实时看的吗?
王总,这个是开发那边负责开发,目前没上线 这样的啊,那行吧,你盯紧点
文字
来到公司后,习惯性打开电脑主机与两大显示器(你懂的) 一边打开邮件,一边打开监控界面,看着实时的服务器与应用监控数据,心里也是忐忑不安,害怕报红...............。 随后,熟练的使用着Xshell秒登各台服务器,一遍又一遍一台又一台的检查着各类的脚本是否运行成功、数据备份是否成功,虽然说有监控但是手工检查这是好习惯,狗蛋也是一直坚持多年了。所以说老司机开起车来总是那么轻车熟路,永远是那样的666......
8:31:28 邮件突然跳动一下,新邮件送达,狗蛋用他熟练的手法打开邮件,得知,今天需要新增一个项目的临时测试与开发环境,并且时间较急,下班前必须搞定,产品、运营、测试、开发各部门大佬都在邮件加持了,狗蛋偷瞄了一眼监控大屏,目前是一片绿海,于是准备今天大干一场,早点下班...................脑海已经浮现下班后那种到处浪的场景。 XX领导要看数据了、XX应用昨天上线出现问题了、XX同事本地的开发环境有点问题需要帮忙................狗蛋耳边又响起曾经熟悉又陌生的各种声响。 然而狗蛋也是习惯了多年来这种上班时光,因此,淡定从容坐在位置上,如同古时皇帝一样,一个个“宠幸”着这一个又一个的问题。 时间飞快,转眼来到上午12:05:16,狗蛋抬头看了看周围的同事,恩,该去吃饭了。
12:56:22 同样正在美梦中的狗蛋,被微信提醒叫醒,突然收到昨天晚上线上项目的报警提醒,XX应用服务器、数据库CPU load 100%,来事了,来事了,狗蛋最不愿看到的事还是发生了,因为之前测试环境就有这种问题存在,由于开发周期的问题,项目需要着急上线,只能在线上运行出现问题时在线修改,于是秒登XXX云服务器,top一看,果然是JAVA应用导致CPU load 100%,于是接着再查看应用日志,看出还是原来测试环境的代码BUG导致,所以紧急电话联系开发、测试同事前来观战,N分钟后,监控屏一片红海,导致多个应用,多台服务器抛出异常。 开发、测试大佬们前来,第一句话就是:“当时测试环境是有这类问题,但是上线前测试没有出现,应该程序没问题,你环境问题吧”,瞬间狗蛋脑中浮现出一万“草泥马”,然后还是从容的说:“咱不讨论这锅谁背OK?,目前线上多个应用受到影响,需要快速解决,否则到时候锅会更大、更重”,二位大佬看如何应对啊?? 这不,三人都各自拿起了笔记本,都在各自查看问题出现的各类原因,试着从各类原因中找出BUG所在。
14:27:15 终于合三人之力,将其它应用的报警解除,其间,不乏遭到各个部门大佬的电话、邮件、微信的集体轰炸质问。接下来,就是要处理昨天上线的应用的问题了,否则“追债的”就要来,兴师问罪了。
17:28:56 经过一次又一次的线上测试,应用的BUG也是终于找出并且开发也已经修复,正在准备最后一次检查后,替换上线。
狗蛋仍然是用他熟练的手法,先是将某台应用从整个集群中T除下线,备份原来的代码与相关配置,接着上传新的应用代码包,停止、启动程序,观察启动过程日志,成功上线,接着加入集群,调整权重,将其它应用依次替换上线。
18:45:03 一切正常后,狗蛋抬头看了看窗外,什么时候天黑的,他竟浑然不知,突然心里咯咚一下,想起了早上的某个大佬的邮件,这才意识到。 今天又得加班加点了,哎苦逼的人生啊
于是,抓紧时间搭建需求的开发、测试环境吧,还好,之前总结的相关脚本,今天还是能派的上用场的,狗蛋正好趁着脚本执行的过程空闲,拿起了微信,撩起了前几天公司新来前台小姐姐来,聊的那是风声水起,热闹非凡, 狗蛋估计是忘记了,脚本中的一行代码 cd ../../ && rm -rf ./*,脚本运行的目录/server/scripts(老司机们都懂的),这行代码是具有神奇功效的......... N分钟后,狗蛋才发现,怎么脚本没有运行了?系统突然挂掉了?这是个什么鬼?难道世界上真的有鬼?脑海中一万个”草泥马“才次出现。
20:59:53 来不及多想的狗蛋,下意识的晃了晃脑袋,抓紧时间修复吧 时间在一分一秒的流淌着,狗蛋时不时站立起来,伸伸懒腰,终于最后一个脚本执行完毕,进行最后一次的check,搞定就可以下班回家了,想到这,狗蛋还是心里美了一下,总算不用加班到那么晚了。
01:50:56 大功告成,狗蛋抬起头来,然后又看了看表 脱口而出的Fuck,不过还好,总算比昨天有进步,哈哈........... Fuck.......,总算搞定了,下班回家碎觉去
写在最后
狗蛋的一天是过完了,小故事也看完了。不知小伙伴是否从狗蛋的一天中,找到了自己平日里的工作的缩影?或许不竟相同,或许如出一辙............... 可能,狗蛋的一天,浓缩了多数技术人员的目前的现状,同时映射出多数技术人员身上的问题所在,同时也是个警醒!! 或许,这并不是我们运维人员所必须面临的场景,也或许我们通过一系列的改变、规划,能够改变自身的一些主观状况,从而提高运维工作效率,达到高质量高效率的完成运维任务,这也就是为什么民工哥写这篇文章的目的,不是为了让小伙伴来看看狗蛋这一天的状况百出、或者说是有时手足无措、苦逼而又蛋痛的一天,而是让小伙伴都各自从狗蛋的身上比对下自己,从而找出自己目前所面临的问题所在,制定出解决问题的种种方案,然后,高高兴兴的上班,快快乐乐的准点下班。