如何幫新人裝噴射背包,又讓老 SRE 保持鋒利?

投資新進 SRE 的訓練讓他們更快達到熟練。SRE 團隊建立在信任之上——你必須相信 On-Call 同事懂系統怎麼運作、能診斷異常、會適時求援、能在壓力下行動。

因此教育的問題不只是「新人 On-Call 前要學什麼」,還有:

  • 老人怎麼評估新人準備好了?
  • 怎麼讓新人的好奇心回饋到老人?
  • 哪些活動能讓全體受惠?

學員學習偏好不同——沒有單一最佳方法,但有一些好的做法與相應的反模式。

推薦做法 vs. 反模式#

推薦反模式
設計具體、循序的學習體驗用 ticket / alert 海洗禮,「丟下水池」
鼓勵逆向工程、統計思考、從第一原理出發只用 SOP、checklist、playbook
慶祝事後檢討分析失敗把 outage 當機密埋掉以避咎責
在真實工具上製造「受控故障」讓學員修第一次修系統發生在已 On-Call 後
全隊角色扮演假想災難培養出獨佔知識的專家
提早 shadow On-Call、交換筆記還沒整體掌握就推上主 On-Call
讓學員修訂 On-Call 訓練計畫的部分章節訓練計畫被視為「不可動」的聖典
給學員實質的專案工作新專案都給資深,新人撿剩菜

一個藍圖#

Figure 28.1: 讓 SRE 上手 On-Call 的藍圖

時間軸(由上而下):

  • 剛進來什麼都不懂 → 讀 postmortem、從第一原理逆向工程
  • 學了一些 → shadow On-Call、修正過時文件
  • 隨時間累積專案規模與所有權
  • On-Call 後學習更自主、無邊界——保持持續學習

並列「抽象 ↔ 應用」兩端的活動,覆蓋各種學習偏好。

初期:結構勝於混亂#

「Trial by fire」反模式:

John 進公司第一天就被丟所有新進 ticket,「儘量問人,最後就會通了」——這種做法可能產生一些頂尖運維者,但會讓很多有能力的工程師流失

它假設「工作可全靠做來學」——若 ticket 真能覆蓋所有所需知識,那這不該是 SRE 職位。

學員會問:

  • 我現在在做什麼?
  • 我有多少進展?
  • 還要多久才能 On-Call?

累積且有序的學習路徑#

給新人「能看見路」的學習順序。對使用者前台服務,推薦的順序:

  1. 一個請求如何進入系統(網路、DC 基礎、前端 LB、proxy)
  2. 前端服務(app frontend、log、UX SLO)
  3. 中層服務(cache、後端 LB)
  4. 基礎建設(backend、運算資源)
  5. 串起來(debug 技術、升級程序、緊急情境)

Google Search SRE 用一份「On-Call learning checklist」呈現——每個元件含:

  • 對接的前後端與 SRE 專家、開發者聯絡人
  • 必讀的文件
  • 必懂的關鍵知識點
  • 理解度檢核問題

直接記程序、診斷步驟、playbook,而是著重「未來不會過時」的內容:聯絡人、最佳文件指引、需內化的基本知識、必須被回答的問題。

分層存取(Powerups)#

完成 checklist 各節能逐步解鎖更深的系統存取權——先 read-only、後可變動 production,類似電玩升級。

具體專案,不是雜事#

SRE 是 problem solver——給他們一個真正的問題解。

早期所有權能促進信任:資深會主動向新人請教其負責的元件。

好的入門專案範例:

  • 做服務端「對使用者可見」的小改動,全程跟到上線——理解 build/release toolchain,培養對開發者的同理
  • 為盲點補上監控——逼新人用「監控邏輯」對照「系統實際行為」
  • 把不算太痛但沒被自動化的痛點自動化——傳達「除瑣事」的價值觀

培養:逆向工程師與即興思考者#

SRE 必備三項心智:

  • 逆向工程:碰到從沒見過的系統能搞清楚它怎麼跑
  • 統計式思考:規模化異常需要統計而非程序式思維
  • 臨機應變(improv):SOP 失靈時能即興應對

一堂代表課:逆向工程一個生產服務#

「Google News 全隊去百慕達三角郵輪、30 天沒聯絡——你們是新任 SRE 團隊,請接管服務。」

學員從瀏覽器追蹤請求路徑,每階段練習用多種方法找出元件間連線——避免漏掉。途中課程刻意「壞掉」一個元件讓學員用排障技巧找出。

強調「不要只用一種方法找連線」——這直接打造防禦縱深的問題解決習慣。

5 項實用做法#

1. 用真實事件演練(Wheel of Misfortune)#

拿過去一次真實故障,分配角色「重演」——當時的 IC 出席讓場景逼真。新人因此預演了還沒輪到的災難類型。

2. 鼓勵新人讀大量 postmortems#

不只本團隊,也讀其他團隊的——讓新人見識系統失敗的各種樣態與優秀分析範例。

3. 提早讓新人 shadow On-Call#

shadow(陪坐 On-Call)是巨大的學習加速器:

  • Reverse Shadow:新人 On-Call 並嘗試處理,資深在旁監看
  • 結束後雙方對比筆記

不要急著把新人推上主 On-Call。

4. 讓新人修訂 On-Call 訓練計畫#

新鮮的眼光能發現「老人覺得理所當然但其實不寫不行」的盲點——同時讓計畫保持新鮮。

5. 不斷迭代與資深的學習#

訓練不是「上完課就好」——持續演練(Wheel of Misfortune、災難復原日 DiRT、reading club)讓資深也保持鋒利。

沒有不需學習的 SRE——只有不繼續學習的 SRE 會退化。

結語#

加速 SRE 不是把人丟進火堆——是用結構化、序列化、體驗豐富的訓練,讓信任感、技術深度與工程文化共同累積。當新人準備好獨自 On-Call 時,他們應當:

  • 對系統有完整的心智模型
  • 能用第一原理推理未見過的問題
  • 在壓力下能採取理性而非機械式的行動
  • 能改良訓練計畫與工具,讓下一位新人走得更快