軟件工程之美37講——遇到線上故障,你和高手的差距在哪裏?
線上故障處理流程
處理故障要點
先恢復生產,再修復bug
恢復生產並不一定需要修復 Bug,可以用一些臨時性的方案,比如說回滾系統到上一個穩定的版本;重啓服務看是否能恢復正常。當然在恢復之前,還要儘可能保留當時的日誌、故障場景的截圖、內存的 Dump(把當前內存數據保存的靜態文件)等信息,用來後續查找故障原因使用。遇到線上故障,新手需要時刻牢記:恢復生產、降低損失是第一要務,修復 Bug 是其次的
如何快速定位到 Bug
- 重現 Bug。
- 分析錯誤日誌,通過錯誤日誌,可以馬上定位到錯誤在哪裏。所以對於平時寫程序,無論是客戶端還是服務端,注意收集錯誤日誌是非常重要的,可以幫助你在排查問題的時候節約不少時間。
- 縮小問題範圍。
分析Bug產生原因
高手對於線上故障,會仔細分析 Bug 產生的原因,從根本上解決,避免類似的故障再次發生。
大廠都是怎麼處理線上故障的?
大廠其實是把高手解決故障的方式,變成故障處理的流程和操作手冊,並且通過反覆地故障演習。不斷練習和強化對故障處理的流程,讓系統更健壯,讓新手也可以快速上手,做到高效處理線上故障。
大廠處理線上故障處理機制有哪些值得借鑑的地方
- 故障報警和輪值機制
- 實戰演習
- 日誌記錄和分析工具