2020-08-14發版混亂【一臉懵逼】的復盤

image

窮困潦倒、一臉懵逼的運維工程師背著大大的黑鍋

—- 一名初入行業的新手運維的感嘆!
初來公司的第一天就感到震驚!一家IT公司的集群環境可以如此之亂!生產和測試同用一套環境,內網的所謂研發環境基本無人使用,上面在感嘆伺服器價格高昂的同時,下面將一些伺服器買來就沒用過!公司內一面在高談未來,一面集群和業務隨時處於崩盤的可能。好吧,吐槽完畢,回到正題

剛來的第一天晚上就遇到了發版。研發團隊一直忙到第二天凌晨4點【後來才曉得是因為程式碼就沒經過測試環境急於求成的上到了生產,而且在部署和程式碼上都出現了問題!】,好吧,我沒參加,就不管我的事了。

第二次發版是研發團隊主導的,由前端和架構師主導,我只是在觀摩,這次發版最是搞笑,架構師對資料庫的欄位進行了修改卻沒同步到生產資料庫,啥也不說了。

image

​ 第三次發版是後端主導的,本來說的我,我還是觀摩,後端工程師給我講因為寫成了腳本,所以一條命令就搞定了,然而我卻看到他在手動部署,好吧,當時進行的太快,我沒看的太清楚到底操作了啥….

​ 寫到這裡可能有道友問了,不是吧,你一個運維不負責發版,emmmmm,留下來的文檔都是舊的,練個操作過程都沒得,就幾條命令誰搞誰背鍋【前幾個負責運維的都沒留下啥能看懂的文檔….】

​ 第四次發版是我主導的,發版前的下班時間還特地向之間發版的後端工程師請教了一波,確定每次就是登陸某個伺服器進入某個目錄然後執行一條命令,完事。多麼

image

我特地請後端開發在我發版的時候進入騰訊會議觀看我的操作(用腳想就知道出事是必然事件!),一條命令執行下去,一片紅,刺激!然後就和後端開發工程師一起排查問題了【發版就告訴運維一條命令就OK,也是….】,最後竟然是因為環境變數出問題了,那改唄,又因為牽扯到負責度和時間就選擇了手動部署,….. 好吧。這次後就沒了 沒人寫總結 也沒人去修復,然後就這樣放在哪裡了…..

第五次發版就是8月14日的那次了,一臉懵逼就背鍋的這次了!本次發版甚是搞笑,有必要寫的足夠細緻。

2020年8月14日早上10點左右,CTO給我講今晚要發版0.9.5 然後我問 前端還是後端,答後端, 然後沒了… 沒了, 沒人找我說要發版什麼,牽扯到誰,怎麼發版【典型的運維不是人,沒必要認真對待】,行吧,當時我正在搞阿里雲月中續費,也沒不想中斷進程,畢竟按道理來講應該會有個發版會議的。整理完月中續費後,我問後端工程師本次要發版什麼?答不知道,然後我去問測試工程師,測試工程師說上線個小功能。行吧。然後我就拉個小群,把我認為能牽扯到的測試人員、後端工程師給拉到一起,期間我還小有調侃,發版運維都不曉得發版什麼,還發個什麼的版。下午在忙將服務部署到預發環境也沒去關心這件事【其實中間我曾在小群說過幾句話的】,一直到下班,依舊沒人告訴我要發版什麼,行吧,然後我去問後端知道這個功能是誰做的不,後端說是架構師做的,行吧又把架構師給拉到小群里,讓架構師自己發版【我都不曉得發版什麼?程式碼在哪裡?怎麼發版過程【py牽扯到依賴什麼的】】。晚上等到9點左右【說好的發版時間】,架構師找不到了,行吧,行吧,官大沒辦法。好不容易發版上去了,卻發現

image.png

常規操作啊,不出問題就才不正常,行吧還牽扯到了前端【沒有任何一位同事給我講還牽扯到前端,寫到這裡我笑了】,我是問過CTO的!行吧,人微言輕,趕緊給前端大佬打電話,前端大佬發版了,卻出現Pod一直ContainerCreating【線上K8S早就離崩潰不遠了】,好吧,我將問題給解決了一下。前端發版成功。測試說好了,然後出現了這樣的一幕【這裡以職位來代替吧】

研發經理@產品經理:今天產品的發版流程有一些亂,發版沒有按流程通知到位,發版相關人員不知情,運營的相關人員也沒有通知,發版內容沒有郵件通知,很多人處於懵逼狀態,技術這邊也沒有確定發版時間,只知道要發版,最後在不規範的流程下我們已經將年套餐的版本發到了線上。。。
產品經理:我讓測試 測一下就下架的
測試 :我剛刪了
測試:下了
研發經理:我還能看到
研發經理@架構師
產品經理:是怕支付流程有問題,所以說上線後要立馬測一下
研發經理: 這個要從那裡下架,發布歷史可以下嗎
架構師:我有做刪除介面的
研發經理:不要創建這種測試數據了
架構師:xx剛剛叫我發版的時候,我還以為已經通知大夥了,也收到郵件了的。結果我更新程式碼之後才發現林坤連學武都沒有叫上……先說好啊,下次我沒收到發版郵件,應該可以拒絕發版吧?
研發經理:可以

怎麼說 鍋已經到運維了,而且也可到了架構師的程式碼是存在問題的,他的程式碼沒問題就不正常!!!

繼續往下看,更精彩的來了 下面是私聊:

CTO:發版你沒發通知出來嗎?

我:根本就不曉得 本次上線要做什麼! 沒人給我對接啊

我:而且本次發版 還牽扯到了前端 可是我都不知道

CTO:每次都要配合,不管有沒有牽扯前端

CTO:現在是回退了嗎?

我:現在事0.9.5 成功上線

我:我就得到你的一句 今晚要發版 然後沒人和我講 要發版什麼 牽扯到誰 我根本就不曉得 我還拉個小群 和可能牽扯到的同事進行溝通 還是遺漏了前端

CTO:所以不要建小群。。。

CTO:都說了

image

我:主要是 老大 你不覺得 有點亂嘛? 發版 沒人和運維 說要發啥…

CTO:不是有個review群嗎?

image

我:你不說我都沒想起來還有個群..

CTO:在review群發布發版公告

CTO:之前流程你不是走過嗎?

image

我:這個不應該是 運營團隊發的吧

【看到CTO的話我還特定去哪個群看了一下,原來的通知都是運營團隊發的,而且我根本就沒在哪個群里說過一次話】

CTO:這種小群還是解散吧

CTO:在上面溝通

【OK 現在開始怪我拉小群了,行吧,錯錯錯,都是我的錯,背鍋嘛】

我:我剛看了一下 都是xxx發的

CTO:我看群上現在都在甩鍋

CTO:是

我:那必須啊 本次我是最懵逼的已讀

我:我根本就不知道 本次發版要幹嘛已讀

CTO:本來是應該產品來發,但溝通不要在小群

CTO:不然出問題其他人都不知道

CTO:嗯,後續這個還是要吸取教訓,在不清楚的情況下先弄清楚,畢竟運維有時要謹慎

【行吧,錯錯錯,都是我的錯,背鍋嘛】

我:流程應該是高層溝通好評估是否能發版 然後告訴運維要發版什麼 牽扯到誰 然後牽扯到的人開會 然後發版人必須保證在線 可是今天我就收到個要發版 然後我組織可能的人 做準備 … 我根本就是一臉懵已讀

CTO:是,前面的流程沒錯,我是說你不清楚後面怎麼做,應該問清楚

CTO:問甲,我,乙,或者在群上問

CTO:大家都是清楚的

我:甲本次也凌亂啊 我就是先和甲溝通的

我:在今天之前我就不曉得乙是誰… 這是真話

CTO:甲凌亂?

CTO:你是什麼時候通知他的

CTO:他應該知道發版步驟啊

我:發現發版牽扯到前端的時候

我:你給我講是後端部分 然後也有前端…已讀

CTO:那這樣他就覺得是你在主導發版啊

CTO:如果你問他應該怎麼發版他不明白那我找他

我:

image已讀

我:這個流程有錯誤的地方嗎

【其實這裡我已經快爆發,去他嗎的,甩鍋就甩鍋,還講這麼多幹嘛!拿著屁大點的工資,受著欺】

CTO:沒問題

CTO:我說了,前面流程沒問題

我:沒人找我 說啊 我能主動找領導

CTO:我是說這個事情處理起來有問題

CTO:。。。

我:領導安排下來了 不說別的 那不就是讓我來幹了 然後我就知道自己想辦法來做了…

CTO:通話時長16:07

這裡可以看出:整個過程CTO就在譴責我的不對,而我是處於一臉懵逼的!電話里 講的中心思想:認錯態度不積極。

更更精彩的來了,好戲登場了。私聊

我:怎麼問題在我?

我:我也是背鍋的!

架構師:沒說問題在你啊

架構師:不是 你的問題,我只是推開我自身的鍋而已,你自己完全可以出來說你是奉命形式。這樣也就不是你的問題了。

架構師:畢竟你還不了解發版流程,所以沒人會怪你

【聽聽,操他媽的,一邊把鍋推給我,一邊說我垃圾!】

架構師:你不應該在沒有書面授權的情況下去執行發版的,老大口頭說是不行的。所有一切都是以書面為證據的

架構師:孟立這點並不是你的問題

我:是的呢 您說的對 這確實是我的問題呀

【其實到這裡,我根本就不想搭理他了,沒啥必要和這種人說什麼!】

架構師:因為之前一直都是測試那邊操作了 我以為測試已經獲得授權了

我:安了 安了 我明天出郵件 闡述此過失就好了 本次辛好沒出問題 不要太在意了

【操他媽的】

架構師:今天如果發版出大亂 明天展會無法執行,真的不是你一個人能擔起這個責任了,我們所有人這個月的績效都可能沒了。

【他媽的,向他這麼底下說話了,還他嗎的站在自己的利益看】

架構師:所以,我真的希望你能做事慎重一點。我今天以為是測試主導的發布,你只是負責執行。

我:天塌了 不會壓倒你們的

【爛人一位,根本不想再搭理!】

………

過了很長時間,我寫下了這麼幾句話

image.png

並且向牽扯到的所有人一一道歉!

image.png

為什麼要這麼寫呢?我想起來,我當初為什麼要選擇這家公司,當我剛來這家公司時,也有好幾家公司在邀請我,那麼我為什麼選擇這家公司了呢? 這家公司 破破爛爛的集群環境可以讓一名新手成長的更快;這家公司正在過度k8s,而我是在全程參與主導,從0到1,我能學到的更多;這家公司正在使用go語言做一些項目,而go也正好是我的學習語言,可以從中學到不少。

我認為我此次選擇了底下頭,是一種成長,為了要得到的,選擇了如此,有一天我會回頭看這篇博文,那時候我應該在想屁都不是的一群人!

呵,屁都不是的一群人,仗著什麼來推鍋,程式碼和shi一樣!