為何 RCA 是可靠性的核心#
不找到根本原因,問題永遠不會被根除。重複出現的問題會持續消耗 SRE 精力、降低系統表現。
延續上一節的醫療軟體:SRE 已用自動化短期繞過資料同步問題,但這只是反應式的補救。
從繞過到根治:資料同步問題#
監控與維運階段#
- SRE 自動化補資料是暫時方案
- 與 DBA 合作正式 RCA 並產出文件
- 雙方共同把所有資料同步補齊
- 應用層團隊建一支自動同步服務,主動偵測 delta 並同步
- 服務端加上等待機制:若資料庫尚未同步,呼叫端會等資料就緒後再回傳
資料層 + 服務層雙重修補,問題從此不再復發。
第二個案例:付款服務間歇失敗#
- 第一次告警觸發:自我修復重啟,使用者短暫無法付款
- 兩天後另一次告警:購買收據未寫入資料庫,SRE 重啟服務後恢復
- SRE 啟動 RCA,將缺陷以高優先級丟給開發
- 開發追到根因;SRE 同時把服務回退到上一個穩定版本
- RCA 完成後開發修補、QA 測試、上線
- 此後付款服務未再失敗

Figure 6.2: RCA process in SRE approach
RCA 流程的所有權#
- SRE 與開發共同擁有
- 流程約莫是:事件升級到 SRE → SRE 繞過 → 工單轉到開發找根因 → 雙方領導審查 → 修補 → 上線
- 老式 SDLC 沒有這個閉環,現代框架把它變成標配
不是每個事件都需做完整 RCA,但每個重複出現或高衝擊的事件都該有。把 RCA 結果寫進 runbook,再下一次這類事件就會少很多。