从甲方到乙方,如何做好混沌工程的行业化落地
作者:穹谷|阿里云技術專家,ChaosBlade 社區以及商業化產品的 Founder 和 Maintainer ,樂于參與混沌工程布道。
2021 年 12 月 7 日,由信通院主辦、混沌工程實驗室承辦的“混沌工程技術沙龍-金融行業精品專場”沙龍在北京舉辦,來自阿里云的技術專家穹谷分享“從甲方到乙方,如何做好混沌工程的行業化落地”。
混沌工程逐步成為企業提升穩定性的重要手段
企業系統云原生化,帶動應用發布迭代速度越來越快,但分布式系統的復雜性也越來越高,從而導致故障頻發,如 Google Cloud 服務器由于內部存儲配額問題造成身份驗證系統中斷、AWS 處理流媒體數據服務出現問題,云服務宕機 5 小時等故障,都造成了重大影響。
由于系統不可預測的行為風險增多,云上復雜系統的穩定性難以保障,所以混沌工程逐步成為企業尋求業務連續性的重要方案。企業企圖通過混沌工程用來保障生產環境的分布式系統在面對失控條件的時候仍然具備較強的韌性。
同時行業也在不斷增強混沌工程領域的標準制定,信通院通過發布《混沌工程平臺能力要求》、《混沌工程成熟度模型》、《混沌工程穩定性度量模型》等標準規范推動混沌工程領域發展,同時聯合各企業成立混沌工程實驗室,促進了混沌工程在國內快速發展。
甲乙雙方的需求和供給不同,造成混沌工程的行業化落地困境
自混沌工程原則提出,國內外頭部互聯網、云廠商等公司開始涌現一批初具形態的混沌工程平臺服務,互聯網的公司的特點使平臺發展路線關注在產品化、生產環境、實驗探索、云原生等方面。根據信通院聯合各企業發布的《中國混沌工程調查報告》顯示,在混沌工程開發技術上,甲方和乙方對技術產品有不同的選擇。乙方(服務供給側)更傾向于采用自研平臺為輔助,而甲方(服務需求側)更傾向于采用商業化平臺作為輔助,在選擇商業化平臺時更加關注產品完善度、行業案例、安全、技術可控等能力,面對的問題如場景如何梳理、實施環境如何建設、穩定性如何評估、影響范圍如何控制、實驗流程如何制定、組織如何協同、落地價值如何體現、行業特性覆蓋、運維體系如何集成等問題,所以不僅需要技術,還需要服務,融入行業特性結合實踐模式來落地混沌工程。那如何去做呢?阿里巴巴結合內部混沌工程的演進,包括集團、商業化、開源等方向全方位提供混沌工程能力,結合行業化客戶面臨落地混沌工程的困難,提供了一套成熟的混沌工程行業化落地解決方案。
阿里巴巴混沌工程行業化解決方案提供社區版和企業版
阿里巴巴混沌工程行業化的解決方案包含平臺技術和服務兩部分,平臺技術部分包含混沌工程平臺社區版和混沌工程平臺企業版本。社區版本是代碼全部開源,由社區開發維護的版本。企業版本是提供公有云 SaaS和專有云部署的版本,相比于社區版本,提供更符合企業級規模化、場景化、安全可控等平臺需求。
混沌工程平臺社區版
混沌工程平臺社區版是開源的,面向多集群、多環境、多語言的通用混沌工程平臺,目的是解決用戶開始著手啟動混沌工程的問題。在平臺上可以配置多個環境實現資源隔離,在每個環境中支持多主機、多集群、多容器資源管理和故障注入,還支持運行在這些資源上的 Java、Golang、C++ 等多語言應用;同時還支持托管業內主流的混沌工程實驗工具如 chaosblade、chaos mesh 和 litmuschaos,可以在平臺上實現一鍵部署;并且統一了實驗界面,可以直接在平臺上使用這些工具提供的實驗場景。除工具托管功能外,還提供場景管理、多維演練、流程編排、穩態檢測、演練防護、演練報告、多租戶等能力,提供 OpenAPI 可供外部集成。社區版和 CNCF 生態緊密關聯,如 Prometheus、HELM 等項目。
混沌工程平臺企業版
混沌工程平臺企業版定位是提供規模化、場景化、自動化、安全的產品能力,覆蓋 IaaS、PaaS、SaaS 全棧場景。采用社區版內核能力,可提供社區版往企業版一鍵升級的能力,同時針對行業化客戶已有的運維系統,如全鏈路壓測系統、環境技術、單元化容災平臺、預案系統、可觀測等進行適配集成,通過與這些平臺集成,可以很好的解決爆炸半徑、穩態評估、自動化運行實驗等問題。
行業化客戶應用架構一般具備多語言、多平臺、異構云、多供應商架構等特點,混沌工程企業版可以很好的適配集成,方便實現混沌工程一體化平臺。除了適配集成外,企業版相比如社區版平臺的能力更豐富,可從四個方面來看:
-
豐富的演練場景:企業版支持 200 多個故障場景、支持云服務、同時兼容 Windows 平臺,支持預檢、斷網、恢復、復盤一站式的容災斷網演練,和服務級別的微服務演練。
-
多樣化的演練形式:支持自定義演練機器、場景,可以將實驗沉淀為經驗庫或者直接創建經驗模板一鍵演練,簡單便捷。提供高階的演練方案,按需配置。支持可視化演練,在架構拓撲圖上一鍵發起演練,可以很有效的查看演練狀態和保障半徑。
-
易用的演練平臺:業務零改造即可使用企業版平臺,支持架構自動化感知,實現自動梳理架構拓撲、演練可視化等。支持一鍵從社區版升級至企業版,滿足企業級的需要。
-
安全的演練保障:提供多種演練恢復策略,如通過配置業務指標閾值來控制演練狀態,安全可控。提供細粒度的權限管控等。
通用混沌工程實踐模式
阿里巴巴混沌工程實踐模式是一套建立在阿里內部多年混沌工程實踐、社區開源討論和多個企業項目案例的基礎上,抽象出的一套通用混沌工程實踐模式。通過此實踐模式,可以大幅度降低企業在混沌工程課題引入、目標設定、組織設計等,確保有目的性的混沌工程落地。實踐模式一共分為三類,業務導向型混沌實踐、架構導向型混沌實踐和組織導向型混沌實踐:
-
業務導向型混沌實踐,是一種以業務為視角的實踐方法,通過模式模板,可以快速演練暴露業務架構設計的問題,降低突發故障對業務帶來的影響。實踐模式包含服務間的強弱依賴模式,涉及到金融、資金類的資損防控模式,涉及用戶使用體驗類的用戶體驗模式和客戶端類終端容災模式,典型的應用場景如手機銀行、交易結算。
-
架構導向型混沌實踐,是一種以基礎設施為視角的實踐方法,通過模式模板,從基礎設施的使用者和運維者角度發現問題、度量穩定性,縮短故障恢復時間。實踐模式包含驗證監控覆蓋度和有效性的可觀測模式,通過對 SLI 演練驗證對外提供 SLA 的服務等級協議模式,驗證同城雙活異地多活災難恢復模式、驗證服務自愈的故障恢復模式。使用場景有核心架構分布式改造、核心業務上云等。
-
組織導向型混沌工程實踐,是一種全局視角度量和提升穩定性的實踐方法,通過組織運營,可以大幅度提升混沌工程氛圍,促進團隊的組織協同,提升故障應急效率。實踐模式包含計劃性的故障演習模式、在特定時間組織紅藍軍對抗的紅藍攻防模式、對生產環境發起的奇襲攻擊模式。典型的使用場景有針對故障應急 1-5-10 的達標率考核、大型穩定性項目推動等。
三種落地交付模式
通過咨詢服務總結出一套混沌工程實踐模式,可以更加聚焦的解決混沌工程層次化落地實踐問題。在實際的客戶交付中,根據客戶階段,逐步衍生出三種交付模式,即:社區版加可行性評估模式、企業版加規模化落地模式、企業版加行業深度共建3種模式。
-
模式1 :社區版+可行性評估模式(輕咨詢) ,主要是通過開源的混沌工程平臺加混沌工程專家經驗,快速在企業中落地實施混沌工程,進行后續混沌工程全面鋪開的可行性評估。
-
模式2 :企業版+規模化落地模式,通過公有云或專有云部署,借助此平臺的企業級功能特性,可以實現在企業中規模化落地。
-
模式3:企業版+行業深度共建模式,通過專有云部署,通過專有云版本集成與被集成的能力,結合客戶已有系統,進行深度共建,實現平臺一體化。
社區版 + 可行性評估(輕咨詢)的交付模式
借助混沌工程社區版和阿里巴巴多年在集團和客戶沉淀的落地經驗,切實解決客戶面對混沌工程無從下手的窘境,快速落地混沌工程,實現混沌工程在企業落地的可行性評估。
這個模式的典型客戶的案例如上,客戶背景是為滿足主機下移,對系統進行了分布式架構改造,自研分布式框架需要驗證其高可用能力,但沒有混沌工程相關經驗,想借此項目在企業中落地混沌工程。客戶目的也很明確,要求提供混沌工程技術方法論并教會相關測試人員如何做場景分析、部署混沌工程工具平臺并教會測試人員如何基于 ChaosBlade 擴展故障場景、帶領落地實施混沌工程,教會測試人員整個混沌工程實施流程。
針對客戶的背景和目標,先對客戶技術架構、業務架構、部署架構、穩定性保障等現狀進行調研,產出穩定性分析報告,提出穩定性問題風險點,提供混沌工程技術培訓,分析故障場景分析案例,帶領客戶基于客戶自研的分布式框架做故障場景分析;同時指導客戶基于 ChaosBlade 做自研故障場景開發,提供混沌工程整體技術方案和落地實施規劃:
在客戶側部署社區版平臺,基于已分析出的故障場景提供演練方案并評審,實施故障演練,產出規范化的故障演練報告和組織故障演練復盤,提供混沌工程后續規劃建議。
整體的項目交付時間僅用 1 個月,達到指導和自行梳理自研框架故障場景幾十個、指導實施故障演練兩次,自行實施故障演練多次,發現高可用切換、故障自愈、監控告警等很多穩定性問題項目收益。為企業后續開展混沌工程規模化提供可行性評估。
企業版加規模化的交付模式
混沌工程在各大互聯網企業中的價值逐漸被大家接受,越來越多的銀行、證券及保險金融類企業開始規劃并落地混沌工程技術,這些金融類企業在面臨分布式架構轉型、云化技術升級以及金融信創下復雜的基礎設施環境下,使用混沌工程技術治理復雜系統的穩定是,是一種快速且有效技術手段。在面對如何快速有效落地混沌工程實踐上,缺乏經驗是這些金融企業面臨的最大調整,由于混沌工程基礎平臺本身具備行業無關性,通過創新項目引入成熟的混沌工程企業版本與服務成為越來越多的金融企業的首選。
混沌工程企業版提供豐富的演練場景、一站式演練能力,平臺易用、安全可控,保障企業規模化部署實施,發現系統穩定性問題,提升系統韌性,如借助混沌工程平臺提升故障應急效率,如故障發現能力、故障定位能力、故障處理能力、故障復盤等。可以幫助客戶縮短建設大規模演練實施時間,提升演練執行效率,保障混沌工程實施投入產出比,讓客戶的精力放在架構風險識別和系統優化上。
某頭部證券客戶隨著業務的發展和創新,系統數量和復雜度不斷提升,生產運行面臨著功能缺陷、性能容量、單點故障等威脅安全穩定運行的風險,需要從技術上提高系統的高性能和穩定性。通過借助阿里云混沌工程企業版成熟能力進行常態化、規模化演練實踐,提前對生產系統中大量的故障場景下進行脆弱性的檢驗,最大化提前識別和消除技術風險,提升系統運行的可靠性。在為期一個月的穩定性專題保障項目中,通過混沌工程,獲得了巨大收益:發現風險共計 23 類,超過 300 個問題點,演練次數 2000 多次,當日最高演練次數高達近 300 次,覆蓋核心系統 300 個等;并基于此企業版平臺開展混沌工程組織運營,如雙隨機演練、演練大屏看板、生產質量分析報告、演練數據運營等。
企業版加行業深度共建的交付模式
混沌工程企業版提供集成與被集成的能力,借助此能力,可以和客戶的監控系統、變更系統、測試系統、應急系統、CMDB 等系統集成,根據行業系統特點,共同共建,如異構系統、國產化系統、網絡云系統等,提供行業化混沌工程領域技術創新,如量化評價、場景探索、實驗自動化等方面,實現共贏。
通過混沌工程企業版提供的標準化能力與客戶已有系統進行適配集成,建設具備行業屬性的混沌工程平臺能力,滿足行業需求,加速了客戶在混沌工程領域落地與創新。
更多
阿里巴巴致力于落地混沌工程及行業化解決方案,通過多種實踐模式使混沌工程實施更聚焦,多種交付模式服務于各種不同需求的企業。大家可以通過以下鏈接快速體驗阿里云混沌工程服務,或進行混沌工程解決方案咨詢。
1)開源項目地址:
??https://github.com/chaosblade-io/chaosblade??
2)產品體驗地址:
??https://developer.aliyun.com/adc/scenario/e9b27357ab9c4785bc7f43fb62f872e3??
3)解決方案地址:
??https://www.aliyun.com/solution/cloudnative/chaosengineering??
點擊??此處??,立即上手體驗混沌工程!更多混沌工程的討論,歡迎進群溝通!掃描下方二維碼或搜索釘釘群號:23177705?即可入群!
總結
以上是生活随笔為你收集整理的从甲方到乙方,如何做好混沌工程的行业化落地的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Service Mesh 在中国工商银行
- 下一篇: 阿里云消息队列 RocketMQ、Kaf