後端人員如何應對線上故障
分享一個大神的人工智慧教程。零基礎!通俗易懂!風趣幽默!還帶黃段子!希望你也加入到人工智慧的隊伍中來!點選瀏覽教程
1、快速定位故障
在複雜的系統架構中,尤其是微服務架構中,一旦發生故障可能會出現“多米諾骨牌效應”,系統會由一個故障點波及到其他關聯的模組。那麼一旦定位不及時,不僅僅會擴大故障,還可能會由於多個模組都在報錯、報警,給故障源的定位帶來困難。因此我們要有一套快速的故障定位方法。我比較推薦的就是 全鏈條投入排查。即一旦發現線上故障,當前系統以及相關係統所對應的開發、運維、測試等方向,各抽調對口人,全都叫到線上去處理問題,各自排查各自模組/服務,如果排查自己負責的範圍沒有問題就可以在旁邊待命,以備在需要的時候進行配合。重點就是從一開始就一起介入。不要小看這一點,看似平淡無奇,但實際場景下,要能保證有序的這麼去做到,還是挺難的,亞馬遜都是通過一套制度和任務分配系統來保障這種全鏈路排查方案得以持久實施的。其實這麼做的目的就是在跟故障搶時間。我們平時大多數情況下是怎麼做的呢,收到一個線上功能的錯誤報告,然後對應功能的前端同學開始排查,排查了半天,發現是後端介面不正常,將問題轉到後端同學繼續排查,後端同學經過一段時間排查後,發現是運維問題或者是依賴的其他模組的問題,就再次將問題轉到運維或者其他專案組,然後後者接手開始排查。這樣來來去去,等定位到真正故障源的時候,黃花菜都涼了,不僅導致服務長時間的不可用,而且故障隨著時間的推移也在不斷擴大波及面,問題也越來越難以定位。
2、故障止損和恢復
在故障源定位之後,一般恢復系統的常用手段無非下面幾種:
重啟:部分問題是可以通過重啟的手段來臨時恢復的,以保障系統的暫時可用,但後續還需有其他方法徹底解決問題
限流和降級:這其實還是一個臨時手段,通過將部分非核心繫統進行降級和限制流量處理,來避免核心業務受到影響
回滾:如果屬於更新的程式碼BUG導致的問題,一般可通過回滾上一個程式版本來迅速恢復,不過會導致部分新功能不可用
緊急更新:這個方式會經常被用到,明確定位問題源後,迅速修復程式碼或元件,然後快速更新上線,比較依賴整個團隊的上線協同能力
故障發生前的準備
設定故障等級:這是一個所有專案共同認定的等級劃分,一般無須為單獨專案設定
服務-資源圖:需要針對專案有完整的服務與資源對應圖,以便能夠速查
專案指標和應急方案:給系統設定風險閾值,超出閾值有應急方案提前準備著
故障演練:針對特定的重大的風險點,進行演練,以驗證上述的應急方案可用性
灰度釋出:也就是對要釋出的新版本進行A/B測試,是一種非常有效的產品驗證和功能改進的方法
故障發生後的覆盤
說到故障後覆盤,離不開的一個話題就是程式設計師的追責和懲罰。這其實是另一個主題了,不過這裡,我簡單的提一下我的建議:對於線上事故,理應追究責任,但無需懲罰(特別嚴重的問題或特別不能容忍的錯誤以外),最重要的其實是做好善後工作,避免下次再犯,從根本上反思,刨根問底,找出問題的根源。這其實也就是下面要聊到的 “Ask Some Whys”。重點來聊聊覆盤要做的事情吧
記錄故障處理全過程:
需要詳細的記錄下故障發現的時間,什麼途徑發現的,用了什麼樣的排查手段,什麼樣子的處理流程,處理過程中,幾點幾分做了什麼事情,將整個過程都一一的記錄下來。
分析故障原因:
需要將團隊成員聚在一起,進行討論,分析故障發生的原因,這裡的原因不是指表象的原因,需要剖析出問題的根源。
故障整改計劃:
針對當前故障要做哪些改進措施,應對類似問題,如何預防。給出可實施的方案以及時間計劃。同時對故障等級進行認定,以及團隊成員責任的追究和備案(但不提倡懲罰)。
如何應對線上故障
參考網路資深技術人員總結的線上故障解決如下:
相關文章
- 如何應對線上故障?
- 如何應對伺服器硬碟故障伺服器硬碟
- 軟體測試初級人員如何應對職場面試?面試
- 後疫情下網創人如何應對“躺平”和“內卷”
- MinIO線上故障演練
- 打造一個window桌面應用:線上聊天對話機器人機器人
- 應對介面級的故障
- 如何應對Akka叢集出現腦裂故障?- Andrzej
- 線上故障處理手冊
- 如何對技術人員進行績效考核?
- 金融行業如何應對線上欺詐?騰訊安全天御團隊線上答疑解惑行業
- 硬吃一個P0故障,「線上業務」應該如何調優HBase引數?
- 儲存硬碟故障後強制上線恢復所有資料過程硬碟
- 乾貨|測試人員如何助軟體成功上線?如何建立一個好的部署計劃?
- 關於 HTTP 後端人員需要了解的 20+ 圖片!HTTP後端
- 如何對Node應用"死後驗屍"
- 技術人員該如何站好最後一班崗?
- 如何透過連線資料庫的方式對線下應用進行線上擴充套件資料庫套件
- 線上故障突突突?如何緊急診斷、排查與恢復
- 資料分析師如何應對資料庫取數後的離線分析資料庫
- [Vue 牛刀小試]:第十六章 - 針對傳統後端開發人員的前端專案框架搭建Vue後端前端框架
- 探究如何管理和領導遠端開發人員團隊
- 幾十萬人同時線上的直播間聊天,如何設計服務端架構?服務端架構
- Django + react + 阿里雲ecs 前後端分離部署上線DjangoReact阿里後端
- 伺服器遭受攻擊後如何應對?伺服器
- 如何扭轉設計人員對FMEA的認知誤區?
- 1.1.5 應用管理人員
- JVM線上CPU 飈高故障排查基本操作JVM
- 使用Java後端對Angular應用進行Docker化 -BhargavJava後端AngularDocker
- 後疫情時代:供應鏈如何應對“生死考驗”?
- 前端人員如何在linux伺服器上搭建npm私有庫前端Linux伺服器NPM
- 一款適用於後端開發人員的(高顏值)後臺擴充套件後端套件
- NetNORAD:通過端到端探測對網路進行故障排除
- JPMS模組對於庫包開發人員的負面效應
- Good Loop:美國營銷人員應對Adland的氣候危機GoOOP
- vnc遠端連線工具,vnc遠端連線工具如何監控多臺員工電腦螢幕?VNC
- 線纜行業逐漸回暖後又遇新挑戰,企業該如何應對?行業
- 有關線上系統點選沒有任何相應得問題思考,主要針對PC端應用程式