穷困潦倒、一脸懵逼的运维工程师背着大大的黑锅
---- 一名初入行业的新手运维的感叹!
初来公司的第一天就感到震惊!一家IT公司的集群环境可以如此之乱!生产和测试同用一套环境,内网的所谓研发环境基本无人使用,上面在感叹服务器价格高昂的同时,下面将一些服务器买来就没用过!公司内一面在高谈未来,一面集群和业务随时处于崩盘的可能。好吧,吐槽完毕,回到正题
刚来的第一天晚上就遇到了发版。研发团队一直忙到第二天凌晨4点【后来才晓得是因为代码就没经过测试环境急于求成的上到了生产,而且在部署和代码上都出现了问题!】,好吧,我没参加,就不管我的事了。
第二次发版是研发团队主导的,由前端和架构师主导,我只是在观摩,这次发版最是搞笑,架构师对数据库的字段进行了修改却没同步到生产数据库,啥也不说了。
第三次发版是后端主导的,本来说的我,我还是观摩,后端工程师给我讲因为写成了脚本,所以一条命令就搞定了,然而我却看到他在手动部署,好吧,当时进行的太快,我没看的太清楚到底操作了啥....
写到这里可能有道友问了,不是吧,你一个运维不负责发版,emmmmm,留下来的文档都是旧的,练个操作过程都没得,就几条命令谁搞谁背锅【前几个负责运维的都没留下啥能看懂的文档....】
第四次发版是我主导的,发版前的下班时间还特地向之间发版的后端工程师请教了一波,确定每次就是登陆某个服务器进入某个目录然后执行一条命令,完事。多么
我特地请后端开发在我发版的时候进入腾讯会议观看我的操作(用脚想就知道出事是必然事件!),一条命令执行下去,一片红,刺激!然后就和后端开发工程师一起排查问题了【发版就告诉运维一条命令就OK,也是....】,最后竟然是因为环境变量出问题了,那改呗,又因为牵扯到负责度和时间就选择了手动部署,..... 好吧。这次后就没了 没人写总结 也没人去修复,然后就这样放在哪里了.....
第五次发版就是8月14日的那次了,一脸懵逼就背锅的这次了!本次发版甚是搞笑,有必要写的足够细致。
2020年8月14日早上10点左右,CTO给我讲今晚要发版0.9.5 然后我问 前端还是后端,答后端, 然后没了... 没了, 没人找我说要发版什么,牵扯到谁,怎么发版【典型的运维不是人,没必要认真对待】,行吧,当时我正在搞阿里云月中续费,也没不想中断进程,毕竟按道理来讲应该会有个发版会议的。整理完月中续费后,我问后端工程师本次要发版什么?答不知道,然后我去问测试工程师,测试工程师说上线个小功能。行吧。然后我就拉个小群,把我认为能牵扯到的测试人员、后端工程师给拉到一起,期间我还小有调侃,发版运维都不晓得发版什么,还发个什么的版。下午在忙将服务部署到预发环境也没去关心这件事【其实中间我曾在小群说过几句话的】,一直到下班,依旧没人告诉我要发版什么,行吧,然后我去问后端知道这个功能是谁做的不,后端说是架构师做的,行吧又把架构师给拉到小群里,让架构师自己发版【我都不晓得发版什么?代码在哪里?怎么发版过程【py牵扯到依赖什么的】】。晚上等到9点左右【说好的发版时间】,架构师找不到了,行吧,行吧,官大没办法。好不容易发版上去了,却发现
常规操作啊,不出问题就才不正常,行吧还牵扯到了前端【没有任何一位同事给我讲还牵扯到前端,写到这里我笑了】,我是问过CTO的!行吧,人微言轻,赶紧给前端大佬打电话,前端大佬发版了,却出现Pod一直ContainerCreating【线上K8S早就离崩溃不远了】,好吧,我将问题给解决了一下。前端发版成功。测试说好了,然后出现了这样的一幕【这里以职位来代替吧】
研发经理@产品经理:今天产品的发版流程有一些乱,发版没有按流程通知到位,发版相关人员不知情,运营的相关人员也没有通知,发版内容没有邮件通知,很多人处于懵逼状态,技术这边也没有确定发版时间,只知道要发版,最后在不规范的流程下我们已经将年套餐的版本发到了线上。。。
产品经理:我让测试 测一下就下架的
测试 :我刚删了
测试:下了
研发经理:我还能看到
研发经理@架构师
产品经理:是怕支付流程有问题,所以说上线后要立马测一下
研发经理: 这个要从那里下架,发布历史可以下吗
架构师:我有做删除接口的
研发经理:不要创建这种测试数据了
架构师:xx刚刚叫我发版的时候,我还以为已经通知大伙了,也收到邮件了的。结果我更新代码之后才发现林坤连学武都没有叫上……先说好啊,下次我没收到发版邮件,应该可以拒绝发版吧?
研发经理:可以
怎么说 锅已经到运维了,而且也可到了架构师的代码是存在问题的,他的代码没问题就不正常!!!
继续往下看,更精彩的来了 下面是私聊:
CTO:发版你没发通知出来吗?
我:根本就不晓得 本次上线要做什么! 没人给我对接啊
我:而且本次发版 还牵扯到了前端 可是我都不知道
CTO:每次都要配合,不管有没有牵扯前端
CTO:现在是回退了吗?
我:现在事0.9.5 成功上线
我:我就得到你的一句 今晚要发版 然后没人和我讲 要发版什么 牵扯到谁 我根本就不晓得 我还拉个小群 和可能牵扯到的同事进行沟通 还是遗漏了前端
CTO:所以不要建小群。。。
CTO:都说了
我:主要是 老大 你不觉得 有点乱嘛? 发版 没人和运维 说要发啥...
CTO:不是有个review群吗?
我:你不说我都没想起来还有个群..
CTO:在review群发布发版公告
CTO:之前流程你不是走过吗?
我:这个不应该是 运营团队发的吧
【看到CTO的话我还特定去哪个群看了一下,原来的通知都是运营团队发的,而且我根本就没在哪个群里说过一次话】
CTO:这种小群还是解散吧
CTO:在上面沟通
【OK 现在开始怪我拉小群了,行吧,错错错,都是我的错,背锅嘛】
我:我刚看了一下 都是xxx发的
CTO:我看群上现在都在甩锅
CTO:是
我:那必须啊 本次我是最懵逼的已读
我:我根本就不知道 本次发版要干嘛已读
CTO:本来是应该产品来发,但沟通不要在小群
CTO:不然出问题其他人都不知道
CTO:嗯,后续这个还是要吸取教训,在不清楚的情况下先弄清楚,毕竟运维有时要谨慎
【行吧,错错错,都是我的错,背锅嘛】
我:流程应该是高层沟通好评估是否能发版 然后告诉运维要发版什么 牵扯到谁 然后牵扯到的人开会 然后发版人必须保证在线 可是今天我就收到个要发版 然后我组织可能的人 做准备 … 我根本就是一脸懵已读
CTO:是,前面的流程没错,我是说你不清楚后面怎么做,应该问清楚
CTO:问甲,我,乙,或者在群上问
CTO:大家都是清楚的
我:甲本次也凌乱啊 我就是先和甲沟通的
我:在今天之前我就不晓得乙是谁… 这是真话
CTO:甲凌乱?
CTO:你是什么时候通知他的
CTO:他应该知道发版步骤啊
我:发现发版牵扯到前端的时候
我:你给我讲是后端部分 然后也有前端…已读
CTO:那这样他就觉得是你在主导发版啊
CTO:如果你问他应该怎么发版他不明白那我找他
我:
已读
我:这个流程有错误的地方吗
【其实这里我已经快爆发,去他吗的,甩锅就甩锅,还讲这么多干嘛!拿着屁大点的工资,受着欺】
CTO:没问题
CTO:我说了,前面流程没问题
我:没人找我 说啊 我能主动找领导
CTO:我是说这个事情处理起来有问题
CTO:。。。
我:领导安排下来了 不说别的 那不就是让我来干了 然后我就知道自己想办法来做了…
CTO:通话时长16:07
这里可以看出:整个过程CTO就在谴责我的不对,而我是处于一脸懵逼的!电话里 讲的中心思想:认错态度不积极。
更更精彩的来了,好戏登场了。私聊
我:怎么问题在我?
我:我也是背锅的!
架构师:没说问题在你啊
架构师:不是 你的问题,我只是推开我自身的锅而已,你自己完全可以出来说你是奉命形式。这样也就不是你的问题了。
架构师:毕竟你还不了解发版流程,所以没人会怪你
【听听,操他妈的,一边把锅推给我,一边说我垃圾!】
架构师:你不应该在没有书面授权的情况下去执行发版的,老大口头说是不行的。所有一切都是以书面为证据的
架构师:孟立这点并不是你的问题
我:是的呢 您说的对 这确实是我的问题呀
【其实到这里,我根本就不想搭理他了,没啥必要和这种人说什么!】
架构师:因为之前一直都是测试那边操作了 我以为测试已经获得授权了
我:安了 安了 我明天出邮件 阐述此过失就好了 本次辛好没出问题 不要太在意了
【操他妈的】
架构师:今天如果发版出大乱 明天展会无法执行,真的不是你一个人能担起这个责任了,我们所有人这个月的绩效都可能没了。
【他妈的,向他这么底下说话了,还他吗的站在自己的利益看】
架构师:所以,我真的希望你能做事慎重一点。我今天以为是测试主导的发布,你只是负责执行。
我:天塌了 不会压倒你们的
【烂人一位,根本不想再搭理!】
.........
过了很长时间,我写下了这么几句话
并且向牵扯到的所有人一一道歉!
为什么要这么写呢?我想起来,我当初为什么要选择这家公司,当我刚来这家公司时,也有好几家公司在邀请我,那么我为什么选择这家公司了呢? 这家公司 破破烂烂的集群环境可以让一名新手成长的更快;这家公司正在过度k8s,而我是在全程参与主导,从0到1,我能学到的更多;这家公司正在使用go语言做一些项目,而go也正好是我的学习语言,可以从中学到不少。
我认为我此次选择了底下头,是一种成长,为了要得到的,选择了如此,有一天我会回头看这篇博文,那时候我应该在想屁都不是的一群人!
呵,屁都不是的一群人,仗着什么来推锅,代码和shi一样!