Google Cloud Well-Architected Framework 的可靠性支柱包含這項原則,提供相關建議,協助您在發生故障和事件後,有效進行事後檢討。
這項原則與可靠性的學習 重點領域相關。
原則總覽
事後檢討報告會記錄事件、影響、為減緩或解決事件而採取的行動、根本原因,以及為避免事件重演而採取的後續行動。事後檢討的目的是從錯誤中學習,而不是追究責任。
下圖顯示事後檢討工作流程:
事後檢討工作流程包含下列步驟:
- 建立事後檢討報告
- 擷取事實
- 找出並分析根本原因
- 為將來做規劃
- 執行計畫
在重大事件和非重大事件 (例如以下事件) 發生後,進行檢討分析:
- 使用者可見的停機時間或效能降低程度超過特定門檻。
- 任何類型的資料遺失。
- 值班待命工程師的介入措施,例如回溯版本或重新導向流量。
- 解決時間超過定義的門檻。
- 監控失敗,通常表示需要手動發現事件。
建議
在事件發生前定義事後檢討條件,讓所有人都知道何時需要進行事後檢討。
如要有效進行事後檢討,請參考下列小節的建議。
以不互相責難的態度檢討
有效的結案報告會著重於程序、工具和技術,不會將責任歸咎於個人或團隊。檢討報告分析的目的是改善技術和未來,而不是找出罪魁禍首。人人都會犯錯。目標應是分析錯誤並從中學習。
以下範例顯示指責式回饋與無指責式回饋的差異:
- 歸咎責任的意見:「我們需要重寫整個複雜的後端系統!過去三季以來,每週都會發生中斷問題,相信大家都很厭倦這種零星的修正方式。認真地說,如果我再收到一次呼叫,我就要自己重寫了…」
- 無責回饋:「重寫整個後端系統的行動項目,或許能防止這些網頁繼續發生問題。這個版本的維護手冊相當長,很難完全掌握。相信日後的待命工程師會感謝我們!"
確保所有目標對象都能看懂結案報告
針對您打算納入報告的每項資訊,評估該資訊是否重要且必要,有助於目標對象瞭解發生了什麼事。您可以將補充資料和說明移至報表的附錄。審查人員可以要求提供更多資訊。
避免複雜或過度設計的解決方案
開始尋找問題解決方案前,請先評估問題的重要性,以及問題再次發生的可能性。為解決不太可能再次發生的問題,在系統中增加複雜度可能會導致不穩定性增加。
盡可能廣泛分享檢討報告
為確保問題獲得解決,請向廣大目標對象發布事後檢討結果,並尋求管理階層的支援。事後檢討的價值與事後檢討後發生的學習成正比。如果更多人從事件中學習,類似的失敗情形就不太可能重演。