線上故障是技術成長中不可避免的一部分,我們從中能夠吸取寶貴的教訓並變得越來越有經驗。然而,並非每個團隊或技術同學都能以合理和科學的方式處理故障。基於日常實際工作經驗和個人心得,我整理了一份團隊遇到故障問題或者疑似問題快速排查的三字經清單及正確✅案例和錯誤❌案例。這份清單將幫助你在遇到問題時進行快速排查,無需擔心在高壓環境下忙中出錯,遺漏關鍵步驟環節。掌握這份清單,你將能夠更好地掌控現場,從而避免因疏忽而造成的損失。讓我們面對故障時保持冷靜,有條不紊地進行排查,不斷提升我們的技術水平和問題解決能力。
備註:下面不是嚴格的順序,需要根據實際情況調整可多路並行,比如清楚問題大概環節,先止血。如不清楚,報備分工,初步定位大概環節再快速止血。
在故障處理過程中採取的所有手段和行動,一切以恢復業務為最高優先順序,恢復現場快速止血方案高於尋找故障原因等其他所有環節。
別慌張,先報備
先組會,明分工
描現象,非結論
先止血,再定位
看監控,看紀錄檔
找規律、先試驗
看輸入,看輸出
留現場,時反饋
1、在處理緊急事件(線上問題或者疑似問題)時,先把問題上報組內。
2、充分發揮團隊的力量,通過集思廣益的方式,可以更加快速地找到問題的根源,並採取相應的措施進行解決。
✅正例:
❌反例:
1、故障指揮官(問題發現人或者小組長/架構),有權召集相應的業務、產品、開發或其它必要資源,快速組織會議。
2、故障指揮官明確各角色職責,分工明確,這樣可以有效地提高故障處理的效率。
✅正例:
❌反例:
1、讓問題發現者描述發現的現象(時間、影響範圍、影響程度),而不是判斷的結論(因為判斷的結論可能是錯誤的,這樣會誤導大家排查方向)
2、請大家避免在描述問題現象時,過多地表達自己的判斷和看法,因為這可能會影響到大家的排查方向。我們需要保持客觀和理性的態度,以便更好地分析問題。
3、同時,也請大家注意自己的思維方式,避免讓自己的大腦成為別人思想的跑馬場。在討論問題時,我們可以提出自己的觀點和建議,但請確保這些觀點是基於事實和證據的,而不是個人的主觀臆斷。
✅正例:
假設在一個軟體開發團隊中,當遇到一個效能問題時,問題發現者描述瞭如下現象:
在這個例子中,問題發現者提供了具體的現象資訊,使得團隊成員能夠迅速定位問題所在,並採取相應的措施進行優化和修復。
❌反例:
假設在一個軟體開發團隊中,當遇到一個效能問題時,問題發現者僅給出了自己的判斷結論:
在這個例子中,問題發現者沒有提供具體的現象資訊,而是僅僅給出了自己的判斷結論。這可能會導致團隊成員在排查問題時產生困惑, 無法準確地找到問題的根源。同時,由於判斷結論可能是錯誤的,這也可能誤導團隊成員,導致他們在排查問題上浪費時間和精力。
1、在故障處理過程中採取的所有手段和行動,一切以恢復業務為最高優先順序,恢復現場止血方案高於尋找故障原因。
2、快速止血:我們可以採用開關技術、回滾技術等手段,迅速恢復系統功能,避免服務中斷。
3、日常應急預案:請大家提前制定好應急預案,包括關鍵業務的容災策略、故障切換流程等,以便在發生故障時能夠迅速啟動預案,降低故障對業務的影響。
4、請大家在故障處理過程中,不要過於關注故障原因的尋找。雖然找到故障原因是解決問題的關鍵,但在緊急情況下,我們需要優先考慮如何快速止血,恢復業務。只有在確保業務穩定執行的前提下,我們才能有更多的時間和精力去深入分析故障原因,從根本上解決問題。
✅正例:
❌反例:
1、收集和分析UMP效能指標、Logbook錯誤紀錄檔、MDC系統執行狀態等資訊,以便更準確地判斷問題所在。
2、與相關團隊進行溝通,共同分析問題原因,制定解決方案。在解決問題的過程中,要保持冷靜和耐心,遵循故障處理的最佳實踐,確保問題得到及時有效的解決。
✅正例:
❌反例:
1、通過各種監控工具,如UMP(流量、tp99、可用率)和紀錄檔分析,我們可以查詢規律並瞭解系統在上線前後的表現。比如,我們可以對比昨天、上週的紀錄檔資料,看看是否也存在類似的問題。同時,我們還可以監測UMP流量的變化,以判斷系統是否受到異常的影響。
2、如果我們發現之前也存在類似的疑問點,那麼這可能意味著問題與今天的上線無關。我們需要繼續深入研究,找出根本原因。
3、對於每一個疑問點,我們應該按照優先順序進行試驗和驗證。這樣可以確保我們首先解決最關鍵的問題,避免影響系統的正常執行。
4、如果在試驗過程中發現問題仍然存在,我們應該及時調整方案並重新進行試驗。這樣可以幫助我們更快速地找到問題的根源,並採取相應的措施進行修復。
5、在整個排查過程中,我們應該保持溝通和共同作業。如果遇到困難或不確定的情況,可以與其他團隊成員交流,共同解決問題。
✅正例:
❌反例:
1、首先,確認需要比對的輸入和輸出引數。這些引數可能包括請求引數、響應資料等。確保你清楚地知道需要比對的內容。在比較過程中,注意觀察引數值的差異。如果發現有差異,進一步分析可能的原因,例如引數傳遞錯誤、介面邏輯問題等。
2、如果發現問題是由於介面邏輯導致的,可以嘗試某N臺機器回滾到之前的版本,然後再次測試介面是否正常工作。如果問題仍然存在,可能需要進一步排查並修復程式碼。
3、根據比對的結果和排查的過程,總結經驗教訓,提出改進建議,以避免類似問題再次發生。
✅正例:
❌反例:
1、在進行故障排查和處理時,保留現狀並記錄已採取的措施和嘗試過的解決方法是非常重要的(比如不要全部機器都重啟,可保留1臺現場機器)
2、詳細地記錄下來包括已採取的措施和嘗試過的解決方法。
3、沒有進展也是進展,也要及時反饋。
✅正例:
❌反例:
如果你發現我提供的資訊有誤或者有更加合適的清單,請隨時指正並且聯絡我補充完善。非常感謝你的反饋和幫助!我將盡快進行修正並提供更準確的資訊。
作者:京東物流 馮志文
來源:京東雲開發者社群 自猿其說Tech 轉載請註明來源