天天看點

模拟駕駛能力輸出,賦能客戶提升穩定性信心

模拟駕駛能力輸出,賦能客戶提升穩定性信心

1.背景

我們技術服務團隊經常會遇到這樣的狀況,随時随地收到緊急電話,開始緊張地排查問題,處理故障以及恢複服務。硬碟故障、網絡不通、大量不到終态、水位高、流量激增等問題不勝枚舉,也許因為一個很小的變更,因某種不可預期的場景,引起蝴蝶效應,導緻了大面積的系統混亂、故障和服務中斷,對客戶的業務造成嚴重影響。故障往往帶來巨大的損失,然而由于分布式系統的特性,各種不可預期的突發事件在所難免,單靠人力并不能夠百分之百地阻止其發生。與其擔驚受怕系統會出現什麼樣的問題,不如化被動為主動,提前模拟線上環境可能出現的各種情況,來檢驗我們的系統是否能做到容錯,是否在出現問題時仍然具有對外提供服務的能力。

模拟駕駛的初衷就是通過實驗性的方法,主動找出系統中的脆弱環節,讓人們建立起複雜分布式系統在生産中抵禦突發事件的信心。任何足夠複雜的系統都不可避免地帶有讓人意想不到的暗債,暗債是現代軟體系統逐漸複雜化程序中的副産品,它會威脅系統的正常運轉。模拟駕駛的意義就在于,它會幫助你發現暗債,進而在暗債變成系統的嚴重問題之前加以應對,避免造成損失。

2.模拟駕駛

模拟駕駛是GTS-SRE混合雲團隊遵循混沌工程實驗原理,并融合團隊内部多年高可用體系沉澱下來的經驗而打造的一款技術服務,提供豐富的故障場景、異常仿真的實作,能夠幫助分布式系統提升容錯性和可恢複性,以期幫助更多的政府和企事業機關做好穩定性建設。

2.1基礎服務内容

模拟駕駛能力輸出,賦能客戶提升穩定性信心

圖1:模拟駕駛基礎服務内容架構

2.1.1混沌工程課程教育訓練

混沌工程學教育訓練課程涉及三個專題,共八章,20小節的内容。課程從混沌工程學的理論出發,融合阿裡内部實踐,通過由混合雲曆史故障庫和故障能力庫中精煉總結得來的經典案例,深入淺出地解釋了如何完成混沌工程實驗,包括所需要面對的挑戰、推進的準備項、采用的工具以及模拟駕駛的實施方法,是混沌工程學實踐的入門課程。通過課程的學習,可以幫助使用者達到以下的目标:

  • 了解混沌工程學基本的概念、原則、前提、作用以及應用;
  • 了解混合雲在混沌工程學實踐的工具包;
  • 了解具體實施混沌工程實驗的方法;
  • 了解各場景的模拟駕駛演練操作方法;
  • 參與混合雲混沌工程的社群共建。
2.1.2模拟駕駛工具包
  • 實驗注入工具-Apsara Chaos Platform

Apsara Chaos Platform(簡稱ACP)是混合雲一款遵循混沌工程原理和混沌實驗模型的實驗注入工具,幫助企業提升分布式系統的備援容錯能力、故障隔離能力、可觀測性,并且在企業上雲或往雲原生系統遷移過程中提供彈性能力和易用性能力的保障。ACP可支援豐富的異常仿真場景,包括邊界異常仿真(如docker異常等)、應用層仿真(如程序假死、異常退出等)、系統層仿真(如CPU、記憶體、磁盤空間等系統資源消耗)、硬體層仿真(如網卡抖動、帶外重新開機等),并且在異常場景編排的異常類型節點,可以對此模拟能力進行執行個體化。

  • 監控告警工具-TAM Alarm Center

TAM Alarm Center(簡稱TAC)是SRE團隊為混合雲精心打造的一站式告警運維平台,覆寫混合雲所涉及的雲産品、大資料、雲執行個體以及使用者所涉及的站點應用等告警,提供告警生命周期管理以及報警外發等解決方案。幫助混合雲快速發現、定位異常問題。目前,中國區100+項目已部署TAC,其中有40%+的項目可以通過釘釘、短信或郵件的方式實作告警外發。有效地提高了告警處理效率,減少因告警未及時處理導緻故障的情況,大幅提高項目運維品質,減少項目人力投入成本。

  • 故障診斷工具-SRE-CLI

Site Reliability Engineer - Command-Line Interface(簡稱SRE-CLI)是一款黑屏化控制台的故障診斷工具,能夠根據異常場景從場景庫中比對檢查項進行自動診斷并确認異常原因,歸檔異常詳細資訊,最終給出處理建議。SRE-CLI可幫助混合雲快速發現、定位異常問題的原因,提供從問題描述、故障定位及診斷、輸出診斷報告、提供解決建議的全方位“問診”服務。目前,雲平台底座産品天基的40%問題已經能夠通過SRE-CLI工具進行診斷定位,進而減少了人工手動排查的時間,有效地提高了故障處理效率,大幅提高項目運維品質,減少項目人力投入成本。

  • 巡檢及問題診斷工具-銅雀

銅雀專注于智能化巡檢及問題診斷,是TAM和駐場服務團隊日常工作中的首要工具。它能讓TAM和駐場服務團隊從日常繁瑣的巡檢工作中解放出來,将精力投入到更有價值的客戶服務中去,通過打通雲平台側、租戶側及應用側的資訊,輔助應用運維及優化,并通過工具化手段提升現場問題分析定位的能力和速度。銅雀目前作為混合雲企業版的标準輸出産品,已經能夠100%覆寫V3平台的局點。目前銅雀的功能主要是以巡檢為中心,後續将逐漸将故障應急、高頻變更、問題診斷能力補充上來,并将銅雀的基礎能力開放出來,使産品、駐場、TAM等人員的經驗不斷沉澱到系統中,打造以銅雀為中心的運維生态圈。

2.2服務案例

2.2.1背景

某電力集團客戶想驗證雲平台的高可用性以及阿裡的故障應急能力,在溝通之後了解到SRE-TAM團隊有專業完善的模拟駕駛能力,遂提出服務申請,邀請技術服務團隊至業務現場進行賦能教育訓練及演練服務。

2.2.2目标

技術服務團隊希望通過本次服務提升客戶對混沌工程這一理念的認知和對雲平台的了解,同時幫助現場同學和客戶提升故障的應急處理能力,提振平台穩定性信心。

2.2.3服務概述
  • 技術服務團隊調研并收集項目現場資訊;
  • 賦能客戶,進行混沌工程教育訓練課程的講授(包括混沌工程概述、混合雲混沌工具包介紹、模拟駕駛三個專題);
模拟駕駛能力輸出,賦能客戶提升穩定性信心

圖2:客戶現場進行賦能教育訓練

  • 進行工具的準備及部署工作,在業務現場部署了ACP和SRE-CLI工具,對已部署的TAC工具進行了更新工作;
  • 客戶提供了演練時間視窗,技術服務團隊按照标準流程(前期檢查、故障注入、告警檢視、故障診斷&恢複)進行了五個場景的模拟駕駛演練;
  • 指導客戶使用工具進行操作演練并答疑;
模拟駕駛能力輸出,賦能客戶提升穩定性信心

圖3:客戶現場指導操作并答疑

2.2.4成果

通過本次模拟駕駛的服務,加強了客戶對混沌工程實驗的認知和加深了客戶對雲平台高可用性的了解:

  • 通過手把手地指導并且協同客戶一起從故障注入到故障發現最後到解決故障的實驗全流程實踐,客戶對模拟駕駛的影響範圍和爆炸半徑有明顯的體感,對混沌工程的原則有了一定的認知;
  • 模拟駕駛示範後,客戶對雲平台的自愈能力和健壯性表示深度認可,并且對後期進行常态化、機制化的演練意向比較強烈;
  • 客戶很樂意參與混合雲模拟駕駛的共建。

3.總結及思考

偉人說“實踐是檢驗真理的唯一标準”,然而在開展模拟駕駛之旅的過程中,是無法一蹴而就地達到實驗的最理想狀态的,那我們可以按照怎樣的路徑去實施第一次模拟駕駛實驗呢?

首先,所謂模拟駕駛的實驗性是為了探索“未知”的風險,找到暗債,但是實踐中不妨先從“已知”開始。通過對“哪裡最可能出問題”的思考和讨論,我們評估出系統潛在的弱點和預期結果,這可以讓你對演練的優先級有所把握:哪些潛在問題更有可能發生或後果更嚴重。團隊可以通過記錄并總結曆史故障類型、發生頻次以及對應的依賴項等,進而對“哪裡最可能出錯”有初步的認識。當你覺得某一項可能存在問題時,先從這類場景注入故障會是一個好的開始。

其次,在實驗實施前我們需先建立一個假設,這會是一個很好的團隊思維練習。通過讨論這個場景,你可以在運作它之前對預期結果進行假設,比如這個失敗對客戶、企業或對你的依賴項有什麼影響?在運作第一個實驗之後,你可能會遇到兩個結果之一:驗證了系統對引入的故障是否具有彈性,或者發現需要修複的問題。這兩個結果都很好。如果是第一種情況,你增強了對系統及其行為的信心;如果是後者,你則在系統導緻停機之前發現了問題。

最後,模拟駕駛實驗主張“在離生産環境越近的地方進行實驗越好越真實”,但我們認為從實際情況的角度來看,這取決于組織對這一理念的接受程度。那麼讓各方都比較放心的一種比較溫和的實驗路徑是從線下逐漸走到生産。不過對于分布式系統而言,部署不同、流量不同都會帶來不一樣的結果,唯有在生産環境中進行實驗才能真正驗證,否則會大大地削弱這些實踐的價值。

就如同人類要打疫苗才能免除未知的病痛,系統的穩定性建設也離不開模拟駕駛,希望我們的團隊可以更多地将模拟駕駛技術能力輸出,賦能更多的客戶,來提升反脆弱性和系統穩定性的信心!

參考文獻:

[1] 《混沌工程-Netflix系統穩定性之道》,Casey Rosenthal,Lorin Hochstein,Aaron Blohowiak,Nora Jones,Ali Basiri,2019.8

[2] 《AWS雲上混沌工程實踐之啟動篇》,黃帥,2019.4

https://aws.amazon.com/cn/blogs/china/aws-chaos-engineering-start/

[3] 《銅雀:阿裡雲智能巡檢管家》,劉維,2020.9

https://developer.aliyun.com/article/771439

[4] 《SRE技術保障平台-盯屏中心TAC: 混合雲一站式告警運維平台》,黃家亮,2020.9

https://developer.aliyun.com/article/771442

我們是阿裡雲智能全球技術服務-SRE團隊,我們緻力成為一個以技術為基礎、面向服務、保障業務系統高可用的工程師團隊;提供專業、體系化的SRE服務,幫助廣大客戶更好地使用雲、基于雲建構更加穩定可靠的業務系統,提升業務穩定性。我們期望能夠分享更多幫助企業客戶上雲、用好雲,讓客戶雲上業務運作更加穩定可靠的技術,您可用釘釘掃描下方二維碼,加入阿裡雲SRE技術學院釘釘圈子,和更多雲上人交流關于雲平台的那些事。

模拟駕駛能力輸出,賦能客戶提升穩定性信心