沒辦法,我必須幹掉他們團隊的 Leader

fifi發表於2020-08-05

enter image description here

不知是我的運氣差還是運氣好,因年初疫情而被迫離開 Pony 的公司後,本以為會在家休息一段時間,恰巧大學好友阿杰給我內推到他們公司了,而且待遇還不錯,於是就去了阿杰所在的公司做起了系統工程師。

阿杰和我都是學計算機的,但他能力比我強多了,從畢業到現在,在這家公司一直擔任的是核心業務的研發,現在也是團隊的研發 Leader 了。他帥氣能幹,情商智商雙雙線上,不管是研發測試運維,還是運營產品客服,各個部門的人都跟他很熟。

我時常聽到這樣的聲音:

“阿杰,後臺的許可權幫忙看看,給我加一下。” “這個需要業務的資料匯出一下,快去找阿杰。” “新功能的那個演算法對不對啊,去讓阿杰幫忙一起測試一下,” 就連團隊負責的業務系統出現問題,也都由阿杰來負責。

如此云云......

但作為朋友,也作為負責系統穩定的工程師,我為阿杰在公司的位置憂心忡忡。從我的多年專業的角度觀察,毫不客氣的說,阿杰雖然是團隊的主心骨,但也是業務中潛在的“單點故障”。

萬一哪天他有個不測離開了團隊,或者也像我之前一樣被迫離開了公司,那團隊不是要停擺了麼?

這種情況下,我要怎麼驗證我的擔憂呢?總不能背後給阿杰一刀,讓他休個長期病假,好讓領導和團隊都有所覺悟,來意識到阿杰不在的嚴重後果。這是開個玩笑,但我也急需一個機會來驗證我的想法。

一天下午,我看見同事的桌子上放著這本書。

enter image description here

看到「混沌工程」,這還是我之前聽過的一個概念,似乎跟我的工作有點關係,但在現在這個節骨眼上,「混沌工程」是個格外閃亮的一個詞兒,冥冥之中讓我覺得,它能幫我完成我想做的事兒。

混沌工程是 Netflix 公司倡導的一套探索系統穩定性的方法論,至於怎麼實踐嘛,我沒有機會琢磨,不過現在有機會了!

我好奇地翻開了它,果然沒讓我失望,這不就是“猴子搬來的救兵”嗎?

著名的開源專案 Chaos Toolkit 的聯合創始人拉斯·邁爾斯為本書作者,在實踐混沌工程方面有著豐富的經驗,書中滿是寶貴的實戰經驗分享。

對我來說,最重要的是他詳細講解了如何找到潛在故障的證據並說服團隊加以改進,流程十分清晰:收集假說 -> 開展遊戲日 -> 驗證假說。

我很快斷定,這本書就是我解決阿杰問題的行為指南。

對,就是它了,幫我解決掉阿杰,哈哈哈哈,於是我就認真地讀了幾天。

書中講了一個 Netflix 的系統探索工具,叫混沌猴,用於探索服務意外中斷時,系統能否有效地應對,這個 Netflix 在混沌工程領域的第一個工具,也是非常重要的一個工具。

根據“混沌工程原則”給出的定義,混沌工程是一門對系統進行實驗的學科,旨在瞭解系統應對生產環境的各種混亂狀況的能力,建立對系統的信心。

顯然,我對沒有阿杰的研發團隊是沒有信心的,阿杰一走,團隊就亂成一團,這就是我的「混沌工程假說」。

根據書中所講,我需要讓領導和阿杰的團隊開展混沌工程中的「遊戲日」,來驗證我的假說。

我找到領導,對他說:“週三上午,我想讓阿杰消失。”

“啊,別做傻事,有話好好說!”領導這個回覆也說明他是個腦洞不小的人。

我連忙解釋說,只是想搞一次故障演練,不止針對系統運維方面,主要是看看研發團隊離開阿杰後會有什麼情況。在詳細說明我的擔憂後,領導半信半疑地答應了。但最重要的是,我根據書中的建議,邀請領導觀摩「遊戲日」當天情況,後面你會看到,這很重要!

接著,我找阿杰說明情況。他竟然也同意了,但有一個條件:不能算他請假和曠工,而且必須提前給他老婆打聲招呼,說他將在週三上午失聯時,也不能讓她老婆找到他。因為團隊很可能找各種機會求助自己。包括給他老婆打電話找人。所以在「遊戲日」當天,必須切斷阿杰的全部通訊手段。幸運的是,阿杰的老婆非常樂意讓他“消失”,我也就不用多費口舌了。

週三,「遊戲日」如期而至。阿杰很早就被我從押送到另一個辦公區的會議室裡,沒收了手機,拉下窗簾,把我看的這本書交給了他。於是我回到了工位工作,故意在臨時環境中注入了故障,並向阿杰團隊說明正在臨時環境中進行故障演練。

團隊的第一反應在我意料之中,他們說:“阿杰不在,我們沒法幹活啊。” 果然不出我所料!不過,我還是慢慢鼓勵大家先別管阿杰,繼續工作。

時間在慢慢流逝,團隊的工作進展得相當艱難。大家不知道事故應對指南在哪裡(我像書裡建議的那樣,拿小本本把這一點當作“故障”記錄了下來)。大家想看看後臺系統,弄清楚發生了什麼事,可找回密碼的過程猶如噩夢(我把這也記在了小本本上)。

不過我慢慢地緊張起來。團隊在執行很多操作前根本沒有查閱事故應對的文件,更有甚者,按下Enter鍵前嘴裡還嘟囔著“那我試試這個吧……”,我擔心如果發生了什麼嚴重的錯誤,自己不能發現,沒法制止。現在,連我都開始覺得自己需要被把阿杰放出來了。

於是,我跑去找阿杰,問了阿杰一些業務系統的問題,還提到了團隊成員使用的一些命令和引數。不等我問完,阿杰突然從座位上彈了起來,只見他衝出房間,並驚恐地大喊:“快給我停下!!!”

原來,團隊已經不知不覺地進入了生產環境,而且正在刪除資料庫……幸好阿杰及時趕過來,才避免了重大損失。因為,阿杰突然意識到,之前有一次事故有類似相似的地方,而上次修復故障時是自己來完成的,而上次無意間發現的漏洞使他也差點資料庫刪了。「遊戲日」戛然而止。

這次「遊戲日」不到三個小時就結束了,還是以失敗告終。但團隊所有人都意識到,阿杰確實是一個重要人物,也是一個潛在的「單點故障」,團隊不能過度依賴阿杰。於是,我們一同定製了專門的流程方案,阿杰也將把各種問題做成文件,幫助所有人瞭解系統和業務。

作為這次「遊戲日」中冷眼旁觀的人,領導對有驚無險的演練還是有些後怕,於是非常積極地為培訓專案和文件專案簽了預算單。

我的混沌工程假說也被驗證了,但我並沒有「幹掉」阿杰,反而使每一位團隊成員有機會成長為阿杰,這對公司來說絕對是一件美事。

這次遊戲日讓我嚐到了混沌工程的甜頭。不過,之後再開展「遊戲日」時,我想我會採納書中的另一條建議:請一位對系統十分熟悉的“安全監督員”,避免無法挽回的損失。誰能還能幫我完成這個想法呢?我又打起了阿杰的主意。

戳→ 值得擁有的《混沌工程實戰 手把手教你實現系統穩定性》 https://item.jd.com/12923382.html

相關文章