混沌工程平臺 ChaosBlade-Box 新版重磅釋出

語言: CN / TW / HK

作者:銘少

混沌工程是什麼

系統架構經歷了單機到分散式,再到現在的雲原生架構,其複雜度不斷上漲,問題定位的難度也隨之上漲。面對隨時都可能發生的故障,有沒有什麼的辦法能很好解決這個困境。

混沌工程(Chaos Engineering)在分散式系統上進行實驗的學科,通過主動注入故障的方式,提前發現系統的薄弱點,推進架構的改進,最終實現業務韌性。從而避免故障在線上執行環境上發生。

1.png

這裡拿雲原生架構來舉例說明,為什麼混沌工程能解決系統架構中存在的問題。雲原生架構原則和混沌工程原則是可以找到對應關係,以服務化原則說明,服務化原則其根本就是服務如何治理的問題,也就是判斷上下游服務之間強弱依賴關係的問題。通過混沌工程,可以通過將請求定位到具體機器,再縮小到具體機器上的應用,不斷最小化爆炸半徑,通過在應用之間注入故障,判斷上下游服務是否正常,來判斷其強弱依賴關係。

2.png

混沌工程的目標是實現韌性架構,這裡包含兩個部分:韌性系統和韌性組織。韌性系統具有冗餘性、擴充套件性、不可變基礎設施、無狀態應用、避免級聯故障等。韌性組織包含高效交付、故障預案、應急響應機制等。高度韌性的系統也會出現預期之外的故障,所以韌性的組織能彌補韌性系統缺失的部分,通過混沌工程構建極致的韌性架構。

3.png

混沌工程就是通過主動注入故障的方式,提前發現系統的薄弱點,推進架構改進,最終實現業務韌性。引入混沌工程對於不同職能的人而言,其業務價值有所不同:

  • 架構師:能幫助其驗證架構的容錯能力
  • 開發/運維:能提高其故障的應急效率
  • 測試:幫助其提早暴露線上問題,降低故障複發率
  • 產品/設計:提示客戶使用體驗

4.png

如何落地混沌工程

對於企業或業務如何對混沌工程進行落地?有無工具或平臺能幫助其快速落地?

ChaosBlade 是一款遵循混沌實驗模型的混沌實驗執行工具,具有場景豐富度高,簡單易用等特點,支援多平臺、多語言環境,包括 Linux、Kubernetes 和 Docker 平臺,支援 Java、NodeJS、C++、Golang 語言應用。支援 200 多個場景,3000 多個引數。是一款用於端側的故障注入工具,但在業務進行落地時,會存在以下幾個問題:

  • 故障注入過程如何視覺化?
  • 如何同時對多個叢集或主機進行故障注入?
  • 如何拿到整體演練的統計資訊
  • ...... 

所以在 ChaosBlade 之上還需要平臺層,對混沌工程執行工具進行管理與演練編排。

5.png

ChaosBlade-Box 是面向多叢集、多語言、多環境,開源的雲原生混沌工程控制檯。

開源平臺和注入工具的整體架構如下,主要包括幾個組成模組:

  • ChaosBlade-Box Console :混沌實驗使用者介面
  • ChaosBlade-Box:Server 後端服務,主要包括演練場景的編排和安全管控、混沌工程工具部署(ChaosBlade、LitmusChaos...)、支援探針管理和多維度實驗
  • Agent:探針,主要有(ChaosBlade-Box)Server端進行建聯並保持心跳、上報 K8s 相關資料、演練命令下發通道等功能
  • ChaosBlade:部署在業務的主機或 K8s 叢集內,在端側進行演練的工具

6.png

新版 ChaosBlade-Box 平臺是一個面向多叢集、多環境、多語言的雲原生混沌工程平臺。支援國際化中英文切換,支援全域性名稱空間,使得同一使用者可根據自己需求,設定不同的全域性名稱空間,如:測試空間、沙盒空間和線上空間等。提供自動化的工具部署,簡化工具安裝步驟,提高執行效率。平臺支援不同環境的探針安裝和演練,如主機和 Kubernetes,其中 Kubernetes 環境下支援 Node、Pod、Container 維度下的演練。在 Kubernetes 環境下會自動收集叢集內的 Pod 相關資料,並在應用管理中進行統一管理,這樣簡化使用者演練查詢步驟,無需去叢集內檢視要演練應用的 Pod 名或 Container 名。並支援一鍵遷移到企業版,按需將社群版的演練資料同步到企業版。

7.png

8.png

9.png

10.png

以下是在新版 ChaosBlade-Box 平臺上進行一次演練的全過程,支援順序執行、階段執行兩種流程編排,順序執行指的是多個演練場景依次生效,階段執行值得是多個演練場景同時生效。通過多種安全策略保證演練得到恢復,如手動處罰和自動停止,自動停止通過在演練配置的時候設定超時引數來進行配置,這樣即便平臺和探針(Agent)失聯,無法進行手動停止時,也能在超時時間到達的時候,自動恢復故障。

11.png

12.png

新版優勢是什麼

此次釋出的新版相較於老版,前端介面和企業版進行統一,簡化使用習慣的切換成本,更為完善的國際化中英文切換,並支援全域性名稱空間的切換;後端提供了更為流暢的演練編排,完善的應用管理,並加強了對探針的管控,並支援一鍵遷移到企業版;加強了探針的功能,提供了更加完善的 API,支援多環境部署且支援在不同環境作為演練通道,支援自動安裝解除安裝,並收集並上報資料簡化演練流暢。

13.png

相關連結

中介軟體開發者大會地址(演講稿 PDF 可下載):

https://developer.aliyun.com/topic/middleware/developer/summit

MSE 註冊配置中心專業版首購享 9 折優惠,MSE 雲原生閘道器預付費全規格享 85 折優惠。