天天看點

運維人手一份!線上故障的正确打開方式

作者:dbaplus社群

對技術同學來說,線上故障是一個繞不開的話題。

一方面,線上故障會極大的影響個人的績效和心态;另一方面,處理線上故障也是很好的提升解決問題能力的機會。因為線上故障的原因是多種多樣的,會逼迫你去收集資訊,從各種角度分析定位根因,然後想辦法去優化解決。處理線上故障的過程,是一個複雜的判斷和篩選過程,而解決故障後沉澱的經驗,對技術同學來說,是很寶貴的職場收獲。

這篇文章,來聊聊應對線上故障比較通用的一些方法。

一、思維導圖

先看下面的這張應對線上故障的流程圖:

運維人手一份!線上故障的正确打開方式

将這個故障處理的思維導圖分為事前、事中、事後三個階段,分别對應的是發現故障、處理故障、複盤故障。這三個階段涉及到多個角色參與,并且不同角色之間要做的事情都有上下遊的依賴關系。

二、事前:發現故障

首先要明白的一點是:線上故障是無法避免的。

無論我們從技術上做各種提升優化,還是從流程機制方面進行保障,最大的作用是提升系統整體的穩定性,以及面對故障時能以更高的效率響應和解決,降低故障帶來的風險和影響。從軟體工程角度來說,最終目标也不是完全不出問題,而是在整個研發傳遞過程中控制風險範圍,降低風險帶來的影響。

線上故障随時可能發生,且可能出現在任何環節,想要降低線上故障帶來的影響,第一步就要盡可能快的發現故障,在出現故障苗頭的時候就發現并解決。常見的發現故障的方法有如下幾種:

  • 監控告警:建立完善的監控告警平台,除了如CPU、記憶體等基礎名額監控外,還有諸如鍊路追蹤、業務監控等;
  • 定時巡檢:通過自動化手段定時開展基于業務場景的巡檢,這也是線上穩定性保障最核心的一點:業務防資損;
  • 異常治理:對于偶爾抛出來的異常也要提高重視,定期分析篩選,針對可能帶來更大影響的風險進行專項處理;

當故障出現并且被觀測到之後,需要及時通知到對應的值班研發和運維介入處理,同時将資訊同步給測試以及産品同學。有些故障是單純的技術問題,可以很快修複。但有些故障的修複方案可能會影響到業務,是以需要讓産品介入進行評估。當然,如果遇到重大的問題,需要及時的資訊上報,讓更具經驗和權責的上司進行決策指揮。

一般來說,中小型企業都是運維兼任監控觀測的職責。但如果團隊規模比較大,且業務和技術架構比較複雜的話,建議由專門的人員來負責監控觀測盯盤,以及資訊的彙總和分發。這個NOC角色還需要在事後組織故障複盤,跟進複盤落地進度,并不僅僅是一個單純的工具人。

三、事中:處理故障

在處理故障的過程中,下面是幾點個人認為比較重要的經驗之談:

  • 優先止血:即故障發生後,以恢複正常的業務運作為首要目标。
  • 保留現場:比如服務叢集挂了,踢出不健康的服務叢集并重新開機時,建議保留至少一個故障服務執行個體。這樣做的好處在于:一方面便于研發和運維同學更好的排查定位原因,另一方面也可以作為複盤時的證據,客觀分析後沉澱案例庫,便于後續的複盤改進。
  • 單一決策:出現故障後最怕的就是病急亂投醫,因為引起故障的原因可能有多個,不能隻通過故障的表現就頭疼醫頭腳疼醫腳,而是需要盡可能收集相關的監控資料、日志,結合業務場景綜合判斷評估,才能比較合理的解決問題。這也是為什麼上面提到的需要有專人來負責資訊資料的彙總分發,以及上級上司決策的原因。
  • 應急預案:面對線上故障,技術同學要做的更多是發現和預防應對,而不是四處救火。因為故障是無法避免的,也可能随時發生,四處救火隻會疲于奔命。是以需要在前期做好風險評估,制定對應的線上故障應急預案并演練,這樣在故障出現時可以更快的響應和解決,将故障帶來的影響控制在可接受範圍内。

四、事後:複盤故障

故障解決,線上業務恢複正常運作後,還需要進行複盤,持續改進。複盤時需要注意如下幾點:

  • 借助現場證據(故障應用/監控資料和日志),客觀分析深層次的原因;
  • 故障改進措施需要具備良好的可行性,且從改進方案中應沉澱出應急預案;
  • 改進措施應該有明确的deadline和目标,且需要進行驗證,確定改進的有效性;
  • 故障複盤對事不對人,故障定級應該有合理且被大家接受的方式,否則很容易變成甩鍋大會。

總的來說,複盤是重新梳理業務和技術實作的過程,可以找到更深層次的潛在風險。通過複盤可以發現以往工作中存在的流程機制方面的不足,并通過持續改進來不斷提升團隊的應急能力,最終提升線上業務和應用的穩定性。

當然,複盤并不僅僅限于故障複盤,故障定級也不是單一的事項。應該從項目立項開始就介入,前期分析評估風險,設計階段備援,研發實作階段做好異常處理,測試階段多進行一些異常和邊界的測試驗證,傳遞階段補齊監控和告警手段。

同時,制定合理的流程、故障應急機制、線上穩定性預案,這樣才能更好保證線上服務的穩定性,将故障帶來的影響控制在合理區間。

作者丨寫文章的老張

來源丨公衆号:老張的求知思考世界(ID:For-Think)

dbaplus社群歡迎廣大技術人員投稿,投稿郵箱:[email protected]

關于我們

dbaplus社群是圍繞Database、BigData、AIOps的企業級專業社群。資深大咖、技術幹貨,每天精品原創文章推送,每周線上技術分享,每月線下技術沙龍,每季度Gdevops&DAMS行業大會。

關注公衆号【dbaplus社群】,擷取更多原創技術文章和精選工具下載下傳

繼續閱讀