1 Chaos體系緩存
1.1 Chaos之混沌工程安全
1.2 混沌的框架原則的理解微信
愛奇藝金融科技團隊的混沌原則更多的是應對不可預知場景下系統架構、人員架構對於問題的應對能力,如隔離、告警、自我修復能力等,主要傾向工程層面、架構層面、研發流程體系層面、災難預警恢復層面等。架構
1.3 Chaos - Monkey併發
理想的Chaos Monkey是Chaos體系的執行者,是基於場景爲某個特定目標而生的,是一種可執行、可按預期銷燬的手段。它主要負責尋找系統中任意一個盲區,而且利用盲區對系統實現某種程度而且可控的破壞。框架
2 矛盾大戰的目的和設計分佈式
愛奇藝金融科技團隊在高安全、高併發、高可用上遇到了不少挑戰,同時金融系統相比於常規系統,在用戶隱私、資金安全、敏感數據上有極高的要求,所以咱們構建Chaos攻防模型,不斷實施攻防對抗,逐步提升系統健壯性,爲業務保駕護航。svg
目標以下:微服務
-
創建Chaos Monkey的攻擊能力、執行流程來輔助及驗證服務架構的實施效果,從而給架構演進提供指導和參考價值; -
創建架構與業務的生產關係,達到架構與業務的雙向促進,提升系統穩定性、可用性、健壯性; -
經過架構與業務生產關係的良性循環,提升技術同窗對整個系統的掌控力、技術實力更好的爲業務服務。
-
Chaos攻擊能力的建設及升級:
-
制定計劃及設置風險範圍:
Chaos Monkey能力訓練知足要求後,按照假定目標制定整個實施計劃,包括執行時間、執行過程、影響範圍、執行手段、結果預期、故障恢復、是否靜默執行等,最後進行自動化實施準備。高併發
-
執行與反饋:
執行前check無異常後開始實施同時觀察監控系統、業務系統、告警系統,實施結束後恢復當前系統並給出相應反饋包括詳細描述,優化建議等。
-
系統優化及能力提高:
業務owner收到結果反饋後需對已存問題進行review、評估整改方案、修復計劃並檢查同類問題,最後進行系統升級。
-
修復驗證及業務需求:
收到業務系統升級上線通知後再次與業務review預期目標,而後進行驗證性攻擊檢驗修復效果同時記錄case庫。
業務owner也能夠向Chaos Monkey申請攻擊來驗證當前系統的真實狀況。
3 Chaos 攻防的拷問及設計實施原則
Chaos 攻防的拷問:
-
支付、金融 架構設計是否存在問題? 原來的架構設計是否是再也不符合咱們的預期了? 設計方案和當前生產系統實現之間差了多少? -
支付、金融 服務底線都是什麼,支付、金融服務的隔離顆粒度? 咱們能承受哪些,能承受多長時間,咱們不能承受哪些? -
咱們 系統的高可用程度? 高可用節點切換過程會發生什麼? HA的切換手段、切換(不可用)的間隔? 切換成功的時間和一致性的時間是否是有關? 等等。
設計實施原則:
-
爲設計漏洞、代碼缺陷而生同時面向生產環境,作到要發現問題更要可控; -
不拘於手段和形式。不管是使用開源工具,仍是切斷網線、偷偷殺掉進程、仍是進程植入,內存數據篡改都是一種面向某個目的可實施手段; 監控告警輔助支撐,最大化風險評估,細化到流量的損失控制等。
4 攻防戰績
4.1 執行大類分佈
4.2 已執行攻防case分類列表
4.3 實戰案例舉例
例1:驗證支付系統微服務Spring Cloud套件的高可用機制
涉及Eureka Server、Client、Ribbon LB及當前業務對配置掌握的合理性。
驗證結果:當前架構能在30s內應對下游節點的無前兆故障。
優化建議:調整LB的探測時間,Eureka Client、Ribbon Cache緩存時間,服務心跳續約,Eureka Server服務剔除、數據同步時間等增強架構對故障的應對能力同時減小相似問題對業務的影響。
執行結果:非核心依賴中間件發生服務抖動、服務故障時系統無降級策略,直接致使整個業務沒法服務,不符合架構原則。
優化建議:業務系統增長對非核心依賴故障的降級及切換策略。優化鏈接池配置來應對當非核心依賴中間件出現問題時下降性能損耗及減小切換的時間差。
5 思考總結
5.1 總 結
隨着Chaos體系的逐漸成熟,體系內自驅力逐漸減小,Chaos會進入一個新的階段就是常態化。這個階段再也不是以暴露發現系統現有實施問題爲主,而是面向系統架構的未來以及系統健壯性、可用性的穩固。主要有如下幾點:
Chaos將進入不按期按照已經積累case庫進行自動化巡檢。
Chaos進行不按期面向架構層面進行實彈演習,檢驗他們的戰備值班能力。
(3)新技術、中間件的探索驗證
對於新技術、新中間件甚至是自研的中間件可利用Chaos Monkey進行符合業務需求的健壯性、可用性探測驗證。
(4)觸類旁通
5.2 思 考
也許你還想看
本文分享自微信公衆號 - 愛奇藝技術產品團隊(iQIYI-TP)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。