沒辦法,我必須幹掉他們團隊的 Leader
不知是我的運氣差還是運氣好,因年初疫情而被迫離開 Pony 的公司後,本以為會在家休息一段時間,恰巧大學好友阿杰給我內推到他們公司了,而且待遇還不錯,於是就去了阿杰所在的公司做起了系統工程師。
阿杰和我都是學計算機的,但他能力比我強多了,從畢業到現在,在這家公司一直擔任的是核心業務的研發,現在也是團隊的研發 Leader 了。他帥氣能幹,情商智商雙雙線上,不管是研發測試運維,還是運營產品客服,各個部門的人都跟他很熟。
我時常聽到這樣的聲音:
“阿杰,後臺的許可權幫忙看看,給我加一下。” “這個需要業務的資料匯出一下,快去找阿杰。” “新功能的那個演算法對不對啊,去讓阿杰幫忙一起測試一下,” 就連團隊負責的業務系統出現問題,也都由阿杰來負責。
如此云云......
但作為朋友,也作為負責系統穩定的工程師,我為阿杰在公司的位置憂心忡忡。從我的多年專業的角度觀察,毫不客氣的說,阿杰雖然是團隊的主心骨,但也是業務中潛在的“單點故障”。
萬一哪天他有個不測離開了團隊,或者也像我之前一樣被迫離開了公司,那團隊不是要停擺了麼?
這種情況下,我要怎麼驗證我的擔憂呢?總不能背後給阿杰一刀,讓他休個長期病假,好讓領導和團隊都有所覺悟,來意識到阿杰不在的嚴重後果。這是開個玩笑,但我也急需一個機會來驗證我的想法。
一天下午,我看見同事的桌子上放著這本書。
看到「混沌工程」,這還是我之前聽過的一個概念,似乎跟我的工作有點關係,但在現在這個節骨眼上,「混沌工程」是個格外閃亮的一個詞兒,冥冥之中讓我覺得,它能幫我完成我想做的事兒。
混沌工程是 Netflix 公司倡導的一套探索系統穩定性的方法論,至於怎麼實踐嘛,我沒有機會琢磨,不過現在有機會了!
我好奇地翻開了它,果然沒讓我失望,這不就是“猴子搬來的救兵”嗎?
著名的開源專案 Chaos Toolkit 的聯合創始人拉斯·邁爾斯為本書作者,在實踐混沌工程方面有著豐富的經驗,書中滿是寶貴的實戰經驗分享。
對我來說,最重要的是他詳細講解了如何找到潛在故障的證據並說服團隊加以改進,流程十分清晰:收集假說 -> 開展遊戲日 -> 驗證假說。
我很快斷定,這本書就是我解決阿杰問題的行為指南。
對,就是它了,幫我解決掉阿杰,哈哈哈哈,於是我就認真地讀了幾天。
書中講了一個 Netflix 的系統探索工具,叫混沌猴,用於探索服務意外中斷時,系統能否有效地應對,這個 Netflix 在混沌工程領域的第一個工具,也是非常重要的一個工具。
根據“混沌工程原則”給出的定義,混沌工程是一門對系統進行實驗的學科,旨在瞭解系統應對生產環境的各種混亂狀況的能力,建立對系統的信心。
顯然,我對沒有阿杰的研發團隊是沒有信心的,阿杰一走,團隊就亂成一團,這就是我的「混沌工程假說」。
根據書中所講,我需要讓領導和阿杰的團隊開展混沌工程中的「遊戲日」,來驗證我的假說。
我找到領導,對他說:“週三上午,我想讓阿杰消失。”
“啊,別做傻事,有話好好說!”領導這個回覆也說明他是個腦洞不小的人。
我連忙解釋說,只是想搞一次故障演練,不止針對系統運維方面,主要是看看研發團隊離開阿杰後會有什麼情況。在詳細說明我的擔憂後,領導半信半疑地答應了。但最重要的是,我根據書中的建議,邀請領導觀摩「遊戲日」當天情況,後面你會看到,這很重要!
接著,我找阿杰說明情況。他竟然也同意了,但有一個條件:不能算他請假和曠工,而且必須提前給他老婆打聲招呼,說他將在週三上午失聯時,也不能讓她老婆找到他。因為團隊很可能找各種機會求助自己。包括給他老婆打電話找人。所以在「遊戲日」當天,必須切斷阿杰的全部通訊手段。幸運的是,阿杰的老婆非常樂意讓他“消失”,我也就不用多費口舌了。
週三,「遊戲日」如期而至。阿杰很早就被我從押送到另一個辦公區的會議室裡,沒收了手機,拉下窗簾,把我看的這本書交給了他。於是我回到了工位工作,故意在臨時環境中注入了故障,並向阿杰團隊說明正在臨時環境中進行故障演練。
團隊的第一反應在我意料之中,他們說:“阿杰不在,我們沒法幹活啊。” 果然不出我所料!不過,我還是慢慢鼓勵大家先別管阿杰,繼續工作。
時間在慢慢流逝,團隊的工作進展得相當艱難。大家不知道事故應對指南在哪裡(我像書裡建議的那樣,拿小本本把這一點當作“故障”記錄了下來)。大家想看看後臺系統,弄清楚發生了什麼事,可找回密碼的過程猶如噩夢(我把這也記在了小本本上)。
不過我慢慢地緊張起來。團隊在執行很多操作前根本沒有查閱事故應對的文件,更有甚者,按下Enter鍵前嘴裡還嘟囔著“那我試試這個吧……”,我擔心如果發生了什麼嚴重的錯誤,自己不能發現,沒法制止。現在,連我都開始覺得自己需要被把阿杰放出來了。
於是,我跑去找阿杰,問了阿杰一些業務系統的問題,還提到了團隊成員使用的一些命令和引數。不等我問完,阿杰突然從座位上彈了起來,只見他衝出房間,並驚恐地大喊:“快給我停下!!!”
原來,團隊已經不知不覺地進入了生產環境,而且正在刪除資料庫……幸好阿杰及時趕過來,才避免了重大損失。因為,阿杰突然意識到,之前有一次事故有類似相似的地方,而上次修復故障時是自己來完成的,而上次無意間發現的漏洞使他也差點資料庫刪了。「遊戲日」戛然而止。
這次「遊戲日」不到三個小時就結束了,還是以失敗告終。但團隊所有人都意識到,阿杰確實是一個重要人物,也是一個潛在的「單點故障」,團隊不能過度依賴阿杰。於是,我們一同定製了專門的流程方案,阿杰也將把各種問題做成文件,幫助所有人瞭解系統和業務。
作為這次「遊戲日」中冷眼旁觀的人,領導對有驚無險的演練還是有些後怕,於是非常積極地為培訓專案和文件專案簽了預算單。
我的混沌工程假說也被驗證了,但我並沒有「幹掉」阿杰,反而使每一位團隊成員有機會成長為阿杰,這對公司來說絕對是一件美事。
這次遊戲日讓我嚐到了混沌工程的甜頭。不過,之後再開展「遊戲日」時,我想我會採納書中的另一條建議:請一位對系統十分熟悉的“安全監督員”,避免無法挽回的損失。誰能還能幫我完成這個想法呢?我又打起了阿杰的主意。
戳→ 值得擁有的《混沌工程實戰 手把手教你實現系統穩定性》 https://item.jd.com/12923382.html
相關文章
- Electron團隊為什麼要幹掉remote模組REM
- if 我是前端團隊 Leader,怎麼做好概要設計前端
- [Flutter翻譯]我們如何建設我們的Flutter團隊Flutter
- if 我是前端Leader,怎麼走出小微前端團隊的圍牆?前端
- 你必須讓他停下
- 我們團隊是如何落地DDD的(1)
- 同事有話說 | 跨職能團隊是必須的嗎?
- 致敬十大科技之父|沒有他們,我們將會······
- 《我的俠客》製作團隊專訪:是武俠,把他們聚在了一起
- 團隊解散,我們該何去何從?
- 阿里畢玄:從生物系學生,到技術團隊 leader,他是如何完成自我蛻變的阿里
- JAVA專案打包後jar很大,每次更新必須全量替換,有沒有辦法?JavaJAR
- 要是我來幹,早搞定了 | 新晉leader那些事
- 愛孩子嗎?愛他們就讓我們懂他吧
- 我們必須要了解的Java位運算(不僅限於Java)Java
- 技術團隊:繞過流程提問題“幹私活”,怎麼辦呢?
- 《獸人必須死》開發團隊:搞創新就要不怕失敗
- 4人團隊3年做79款獨立遊戲,他們是怎麼做到的?遊戲
- 他們是怎麼聯絡到山岡晃的?採訪《靈媒》開發團隊
- 掘金 AMA:我是騰訊 NOW 直播技術團隊 Leader -- Randzhu,你有什麼問題想問我嗎?
- 新來的老大,劍走偏鋒,幹掉AOP做操作日誌,實現後我們都驚呆了
- 這家被Google收入麾下的獨立遊戲團隊,我們在深圳跟他們聊了聊Go遊戲
- 專訪Supercell團隊:我們是如何將《荒野亂鬥》營銷出圈的?
- Leader筆記:程式設計師小團隊透明和信任管理筆記程式設計師
- 5年,14款近滿分神作,這個獨立團隊打造了他們的遊戲宇宙遊戲
- 告別2019:屬於深度學習的十年,那些我們必須知道的經典深度學習
- leetcode我們必知必會的SQL面試題LeetCodeSQL面試題
- 掘金 AMA - 聽騰訊 NOW 直播技術團隊 Leader Randzhu 談 Android 開發和團隊構建那些事Android
- 西遊記團隊中如果需要裁掉一個人,會先裁掉誰?
- 技術Leader:像李雲龍一樣打造學習型團隊
- 農村老人幹不動農活了,他們怎樣養老?
- 小團隊的海外掘金之旅,0買量單月新進超百萬,他們做對了那些事?
- 主創去世後,這支團隊如何完成他的遺作?
- 作為團隊的Leader,最近發現你手下有位同事工作狀態比較消極,你該怎麼辦?
- SAFe必備——提高團隊敏捷性敏捷
- 4人團隊,一年營收300多萬,我們是這樣做的!營收
- 《最強蝸牛》團隊:「我們只是剛好處於破圈的臨界點」
- 純技術團隊創業,那些年我們一起走過的彎路創業