軟件工程之美37講——遇到線上故障,你和高手的差距在哪裏?

軟件工程之美37講——遇到線上故障,你和高手的差距在哪裏?

線上故障處理流程

graph LR A[評估影響範圍]-->B[試圖重現問題] B-->C[臨時方案和終極方案] C-->D[風險評估及持續優化]

處理故障要點

先恢復生產,再修復bug

恢復生產並不一定需要修復 Bug,可以用一些臨時性的方案,比如說回滾系統到上一個穩定的版本;重啓服務看是否能恢復正常。當然在恢復之前,還要儘可能保留當時的日誌、故障場景的截圖、內存的 Dump(把當前內存數據保存的靜態文件)等信息,用來後續查找故障原因使用。遇到線上故障,新手需要時刻牢記:恢復生產、降低損失是第一要務,修復 Bug 是其次的

如何快速定位到 Bug

  • 重現 Bug。
  • 分析錯誤日誌,通過錯誤日誌,可以馬上定位到錯誤在哪裏。所以對於平時寫程序,無論是客戶端還是服務端,注意收集錯誤日誌是非常重要的,可以幫助你在排查問題的時候節約不少時間。
  • 縮小問題範圍。

分析Bug產生原因

高手對於線上故障,會仔細分析 Bug 產生的原因,從根本上解決,避免類似的故障再次發生。

大廠都是怎麼處理線上故障的?

大廠其實是把高手解決故障的方式,變成故障處理的流程和操作手冊,並且通過反覆地故障演習。不斷練習和強化對故障處理的流程,讓系統更健壯,讓新手也可以快速上手,做到高效處理線上故障。

graph LR A[故障進行評級]-->B[恢復生產]-->C[分析故障原因]

大廠處理線上故障處理機制有哪些值得借鑑的地方

  • 故障報警和輪值機制
  • 實戰演習
  • 日誌記錄和分析工具
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章