摘要:這一次,經歷了年時間的改進和實踐,累計在線上執行演練場景達數萬次,我們將阿里巴巴在故障演練領域的創意和實踐,濃縮成一個混沌工程工具,并將其開源,命名為。
阿里妹導讀:減少故障的最好方法就是讓故障經常性的發生。通過不斷重復失敗過程,持續提升系統的容錯和彈性能力。今天,阿里巴巴把六年來在故障演練領域的創意和實踐匯濃縮而成的工具進行開源,它就是 “ChaosBlade”。如果你想要提升開發效率,不妨來了解一下。
高可用架構是保障服務穩定性的核心。
阿里巴巴在海量互聯網服務以及歷年雙11場景的實踐過程中,沉淀出了包括全鏈路壓測、線上流量管控、故障演練等高可用核心技術,并通過開源和云上服務的形式對外輸出,以幫助企業用戶和開發者享受阿里巴巴的技術紅利,提高開發效率,縮短業務的構建流程。
例如,借助阿里云性能測試 PTS,高效率構建全鏈路壓測體系,通過開源組件 Sentinel 實現限流和降級功能。這一次,經歷了 6 年時間的改進和實踐,累計在線上執行演練場景達數萬次,我們將阿里巴巴在故障演練領域的創意和實踐,濃縮成一個混沌工程工具,并將其開源,命名為 ChaosBlade。
ChaosBlade 是什么?ChaosBlade 是一款遵循混沌工程實驗原理,提供豐富故障場景實現,幫助分布式系統提升容錯性和可恢復性的混沌工程工具,可實現底層故障的注入,特點是操作簡潔、無侵入、擴展性強。
ChaosBlade 基于 Apache License v2.0 開源協議,目前有 chaosblade 和 chaosblade-exe-jvm 兩個倉庫。
chaosblade 包含 CLI 和使用 Golang 實現的基礎資源、容器相關的混沌實驗實施執行模塊。chaosblade-exe-jvm 是對運行在 JVM 上的應用實施混沌實驗的執行器。
ChaosBlade 社區后續還會添加 C++、Node.js 等其他語言的混沌實驗執行器。
為什么要開源?很多公司已經開始關注并探索混沌工程,漸漸成為測試系統高可用,構建對系統信息不可缺少的工具。但混沌工程領域目前還處于一個快速演進的階段,最佳實踐和工具框架沒有統一標準。實施混沌工程可能會帶來一些潛在的業務風險,經驗和工具的缺失也將進一步阻止 DevOps 人員實施混沌工程。
混沌工程領域目前也有很多優秀的開源工具,分別覆蓋某個領域,但這些工具的使用方式千差萬別,其中有些工具上手難度大,學習成本高,混沌實驗能力單一,使很多人對混沌工程領域望而卻步。
阿里巴巴集團在混沌工程領域已經實踐多年,將混沌實驗工具 ChaosBlade 開源目的,我們希望:
讓更多人了解并加入到混沌工程領域;
縮短構建混沌工程的路徑;
同時依靠社區的力量,完善更多的混沌實驗場景,共同推進混沌工程領域的發展。
ChaosBlade 能解決哪些問題?衡量微服務的容錯能力
通過模擬調用延遲、服務不可用、機器資源滿載等,查看發生故障的節點或實例是否被自動隔離、下線,流量調度是否正確,預案是否有效,同時觀察系統整體的 QPS 或 RT 是否受影響。在此基礎上可以緩慢增加故障節點范圍,驗證上游服務限流降級、熔斷等是否有效。最終故障節點增加到請求服務超時,估算系統容錯紅線,衡量系統容錯能力。
驗證容器編排配置是否合理
通過模擬殺服務 Pod、殺節點、增大 Pod 資源負載,觀察系統服務可用性,驗證副本配置、資源限制配置以及 Pod 下部署的容器是否合理。
測試 PaaS 層是否健壯
通過模擬上層資源負載,驗證調度系統的有效性;模擬依賴的分布式存儲不可用,驗證系統的容錯能力;模擬調度節點不可用,測試調度任務是否自動遷移到可用節點;模擬主備節點故障,測試主備切換是否正常。
驗證監控告警的時效性
通過對系統注入故障,驗證監控指標是否準確,監控維度是否完善,告警閾值是否合理,告警是否快速,告警接收人是否正確,通知渠道是否可用等,提升監控告警的準確和時效性。
定位與解決問題的應急能力
通過故障突襲,隨機對系統注入故障,考察相關人員對問題的應急能力,以及問題上報、處理流程是否合理,達到以戰養戰,鍛煉人定位與解決問題的能力。
功能和特點場景豐富度高
ChaosBlade 支持的混沌實驗場景不僅覆蓋基礎資源,如 CPU 滿載、磁盤 IO 高、網絡延遲等,還包括運行在 JVM 上的應用實驗場景,如 Dubbo 調用超時和調用異常、指定方法延遲或拋異常以及返回特定值等,同時涉及容器相關的實驗,如殺容器、殺 Pod。后續會持續的增加實驗場景。
使用簡潔,易于理解
ChaosBlade 通過 CLI 方式執行,具有友好的命令提示功能,可以簡單快速的上手使用。命令的書寫遵循阿里巴巴集團內多年故障測試和演練實踐抽象出的故障注入模型,層次清晰,易于閱讀和理解,降低了混沌工程實施的門檻。
場景擴展方便
所有的 ChaosBlade 實驗執行器同樣遵循上述提到的故障注入模型,使實驗場景模型統一,便于開發和維護。模型本身通俗易懂,學習成本低,可以依據模型方便快捷的擴展更多的混沌實驗場景。
ChaosBlade 的演進史EOS(2012-2015):故障演練平臺的早期版本,故障注入能力通過字節碼增強方式實現,模擬常見的 RPC 故障,解決微服務的強弱依賴治理問題。
MonkeyKing(2016-2018):故障演練平臺的升級版本,豐富了故障場景(如:資源、容器層場景),開始在生產環境進行一些規模化的演練。
AHAS(2018.9-至今):阿里云應用高可用服務,內置演練平臺的全部功能,支持可編排演練、演練插件擴展等能力,并整合了架構感知和限流降級的功能。
ChaosBlade(2019.3):是 MonkeyKing 平臺底層故障注入的實現工具,通過對演練平臺底層的故障注入能力進行抽象,定義了一套故障模型。配合用戶友好的 CLI 工具進行開源,幫助云原生用戶進行混沌工程測試。
近期規劃功能迭代:
增強 JVM 演練場景,支持更多的 Java 主流框架,如 Redis,GRPC
增強 Kubernetes 演練場景
增加對 C++、Node.js 等應用的支持
社區共建:歡迎訪問 ChaosBlade@GitHub,參與社區共建,包括但不限于:
架構設計
模塊設計
代碼實現
Bug Fix
Demo樣例
文檔、網站和翻譯
閱讀原文
本文來自云棲社區合作伙伴“?阿里技術”,如需轉載請聯系原作者。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/11985.html
摘要:點擊訂閱云棲夜讀周刊月日,據阿里云透露,其全新一代企業級以及彈性裸金屬云服務器即將上線。【點擊訂閱云棲夜讀周刊】 4月2日,據阿里云透露,其全新一代企業級ECS以及彈性裸金屬云服務器即將上線。 熱點熱議 阿里云新一代云服務器即將上線,計算、存儲、網絡全面升級 作者:阿里云頭條 勒索攻擊猖獗,在云上如何應對這位破壞分子? 作者:云安全專家 云數據庫RDS存儲能力進化解析! 作者:云攻略小攻...
摘要:點擊訂閱云棲夜讀周刊精彩觀點通過開放管理混合云會更受大客戶歡迎,客戶傾向于用云存儲災備技術保障數據可靠性,和會成為業界主流,中國出現第一家真正全面云化的大型公司,云端計算在業務中應用的廣度和深度將成為未來十年衡量企業競爭力的新標尺等。【點擊訂閱云棲夜讀周刊】 精彩觀點:通過開放API管理混合云會更受大客戶歡迎,客戶傾向于用云存儲災備技術保障數據可靠性,Kubernetes和Kata Con...
摘要:目前團隊的技術,已經通過開源和商業化渠道進行外部輸出。提前批是否會影響正式秋招提前批如果表現不佳對正式秋招也無任何影響秋招正式開始時仍然可繼續投遞阿里其它團隊。掃碼加微信掃碼內推阿里云智能掃碼內推整個阿里經濟體 團隊介紹: 高可用架構團隊是阿里巴巴保障穩定性的護航艦隊,提供的高可用架構基礎設施直面雙11洪峰流量,包括全鏈路壓測、容量規劃、準入控制、限流降級、流量調度等;通過攻防演練、環...
摘要:通過本文,你將了解到為什么需要混沌工程,阿里巴巴在該領域的實踐和思考未來的計劃。而阿里目前并沒有一個專門的職位來實施混沌工程,項目目標業務場景人員結構實施方式的不同導致了對于穩定狀態行為的定義不太標準。 阿里妹導讀:混沌工程屬于一門新興的技術學科,行業認知和實踐積累比較少,大多數IT團隊對它的理解還沒有上升到一個領域概念。阿里電商域在2010年左右開始嘗試故障注入測試的工作,希望解決微...
摘要:作者原文第一部分應用混沌工程理論到區塊鏈框架。你可以抗議混沌環境在像與這種權限不足的公共區塊鏈網絡上是否存在。在之后這些被稱之為混沌工程。混沌原則開始進入正式規范。名字是混沌工程通過實驗建立對系統行為的信心。 作者 Vipin Bharathan原文:https://medium.com/@vipinsun/... 第一部分. 應用混沌工程理論到區塊鏈框架。 混沌與工程兩個字是沒有什么...
閱讀 2485·2021-10-19 11:45
閱讀 2464·2021-09-30 09:56
閱讀 1431·2021-09-30 09:47
閱讀 589·2019-08-30 15:53
閱讀 1834·2019-08-30 15:44
閱讀 583·2019-08-30 12:52
閱讀 1084·2019-08-30 11:16
閱讀 1605·2019-08-29 16:36