隨著云原生技術及大量開源軟件的引入,IT系統(tǒng)架構逐步從傳統(tǒng)的MVC三層架構(表示層UI、數據訪問層DAL、業(yè)務邏輯層BLL)向微服務、平臺容器化架構演進,新的技術架構中服務調用關系錯綜復雜、開源軟件單點故障風險高等都給傳統(tǒng)運維方式提出挑戰(zhàn)。亟需不定期在生產業(yè)務系統(tǒng)中開展混沌演練,進一步提升業(yè)務系統(tǒng)的高可用,從而在實際生產中檢驗系統(tǒng)穩(wěn)定性,提高業(yè)務系統(tǒng)應急和高可用保障能力。
混沌工程屬于一門新興的技術學科,行業(yè)認知和實踐積累比較少,大多數IT團隊對它的理解還沒有上升到一個領域概念。阿里電商域在2010年左右開始嘗試故障注入測試的工作,希望解決微服務架構帶來的強弱依賴問題。
混沌工程是一種提高技術架構彈性能力的復雜技術手段。混沌工程經過實驗可以確保系統(tǒng)的可用性,它旨在將故障扼殺在襁褓之中,也就是在故障造成中斷之前將它們識別出來。通過主動制造故障,測試系統(tǒng)在各種壓力下的行為,識別并修復故障問題,避免造成嚴重后果。
混沌演練常用的工具有阿里開源的ChaosBlade、Netflix開源的ChaosMonkey。
4.1 演練場景選取
序號 | 主題 | 分類 | 場景 |
1 | 技術組件依賴主題 | 數據庫層 | 數據庫切換 |
2 | 大量備份恢復 | ||
3 | 數據庫單節(jié)點服務中斷 | ||
4 | 數據庫主機單點掛掉 | ||
5 | 數據庫連接數滿 | ||
6 | 索引失效 | ||
7 | 大量慢SQL |
4.2 系統(tǒng)架構
4.3 演練目標
通過混沌演練驗證云原生及大量開源軟件等新技術在基礎設施和軟件方面的高可用性能力,在演練過程中發(fā)現應急處理和高可用能力的盲點與不足,持續(xù)提升業(yè)務連續(xù)性保障尤其是高可用保障能力、以及應急保障能力。
本次演練選取的是技術組件依賴主體-數據庫層(開源MySQL數據庫)7個應用場景,通過本次混沌演練實施操作,及時發(fā)現MySQL數據庫在技術保障上的不足,及時分析、處理和優(yōu)化數據庫結構,從而進一步提升MySQL數據庫對業(yè)務系統(tǒng)支撐的應用保障能力。
4.4 演練影響
影響業(yè)務:演練期間運營商某業(yè)務系統(tǒng)使用會受到短暫影響,例如系統(tǒng)登陸、業(yè)務數據交互等功能會出現短暫性異常。
影響范圍:業(yè)務系統(tǒng)使用人員。
4.5 風險評估與應急措施
對本次演練進行充分的準備,包括演練前檢查,演練中業(yè)務保障、演練后的生產驗證,針對每個環(huán)境可能出現的風險點進行預估,并制定應對舉措如下:
階段 | 風險預估 | 應對舉措 |
演練前 | 檢查場景涉及服務器硬件故障 | 演練前對演練對象進行集中巡檢,確保無硬件問題 |
檢查場景設計服務器存在性能瓶頸 | 演練前實時關注演練系統(tǒng)的性能情況,如有性能瓶頸提前優(yōu)化 | |
演練中 | 單容器、單虛擬機、單物理機、單應用節(jié)點、單Slave節(jié)點在故障模擬后無法重啟 | 單設備故障不影響業(yè)務連續(xù)性,演練當前硬件維修人員現場保障 |
極端情況下,如誤操作,可能導致單集群的故障 | 切換到應急系統(tǒng)或容災系統(tǒng) | |
演練后 | 業(yè)務影響反饋超時或失敗 | 做好全方位的生產驗證測試 |
4.6 演練詳細步驟
本次混沌演練工具主要選用的是ChaosBlade和腳本相結合,演練主要采用攻防對抗的方式進行實施,實現故障注入的隨機觸發(fā),故障半自動化恢復。
VIP | 內網IP | 主機名 | 用戶名 | 登陸方式 |
1.1.1.10 | 1.1.1.1 | hostname1 | mysql | ssh |
1.1.1.2 | Hostname2 | mysql | ssh |
軟件 | 版本 | 作用 |
keepalived | 1.3.6 | VIP檢測 |
mysql | 5.7.32 | 數據庫 |
故障注入主要特征是混沌工程中的故障隨機性,本文涉及MySQL數據庫故障演練場景主要包含有數據庫切換,大量備份恢復等7個場景,采用chaosblade模擬故障隨機觸發(fā)。
如下選擇其中一個故障場景進行介紹。
序號 | 操作步驟 | 驗證方法和操作命令 | 預期結果 |
1 | 停止VIP主機mysql實例 | 1.ssh登陸1.1.1.10主機 2.執(zhí)行命令: $sh chaosblade-Failure.sh”,選擇故障選項(故障實現方式:主動宕庫) | 命令執(zhí)行成功,3306進程不存在 |
故障分析和故障恢復主要描述演練場景下故障的處理過程,以及故障分析的實際操作、分析過程,詳細的展現各演練場景中分別對故障分析和故障恢復處理的整過過程,從而更加高效的提高數據庫的穩(wěn)定性,提升業(yè)務系統(tǒng)保障能力。
如下選擇其中一個故障場景進行介紹。
序號 | 操作步驟 | 驗證方法和操作命令 | 預期結果 |
1 | 故障分析 | 1.ssh登陸1.1.1.10主機 2.監(jiān)控告警 3.執(zhí)行命令: sh chaosblade-Check.sh,選擇分析選項 | 1.定位到故障類型:mysql連接數滿,新mysql連接不成功 |
2 | 故障恢復 | 1.登陸數據庫$mysql -h1.1.1.10 -u** -P3306 -p 2.檢查連接數和業(yè)務連接情況 mysql>show variables like %max_connections%; mysql>select count(*) from information_schema.processlist; 3.查詢阻塞sql確定阻塞情況 mysql>select * from information_schema.innodb_lock_waits; mysql>select * from information_schema.innodb_locks; mysql>select * from information_schema.innodb_trx where trx_id=’’G 4.查殺阻塞的sql, mysql>kill pid;或者擴大最大連接數mysql>set GLOBAL max_connections=1000; | 1.故障節(jié)點新mysql連接正常 2.keepalived運行正常 3.mysql數據庫正常 4.遠程登陸VIP數據庫正常 5.業(yè)務訪問正常 |
3 | (業(yè)務驗證) | 運營商業(yè)務系統(tǒng)登陸,模塊功能使用 | 業(yè)務驗證正常 |
4.7 總結
本次演練采用工具+腳本的方式主動故障隨機式注入,有效檢驗了數據庫系統(tǒng)高可用性能,驗證了在極端情況下,數據庫架構的高可用保障能力,同時也為場景能力平臺化做好準備,以及隨機化故障的應對和處理積累了經驗,提升數據庫對業(yè)務支撐的連續(xù)性保障能力。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/129999.html
摘要:這一次,經歷了年時間的改進和實踐,累計在線上執(zhí)行演練場景達數萬次,我們將阿里巴巴在故障演練領域的創(chuàng)意和實踐,濃縮成一個混沌工程工具,并將其開源,命名為。 showImg(https://segmentfault.com/img/remote/1460000018704226); 阿里妹導讀:減少故障的最好方法就是讓故障經常性的發(fā)生。通過不斷重復失敗過程,持續(xù)提升系統(tǒng)的容錯和彈性能力。今...
摘要:通過本文,你將了解到為什么需要混沌工程,阿里巴巴在該領域的實踐和思考未來的計劃。而阿里目前并沒有一個專門的職位來實施混沌工程,項目目標業(yè)務場景人員結構實施方式的不同導致了對于穩(wěn)定狀態(tài)行為的定義不太標準。 阿里妹導讀:混沌工程屬于一門新興的技術學科,行業(yè)認知和實踐積累比較少,大多數IT團隊對它的理解還沒有上升到一個領域概念。阿里電商域在2010年左右開始嘗試故障注入測試的工作,希望解決微...
摘要:云計算十大關鍵詞分別是云原生高性能混沌工程混合云邊緣計算零信任優(yōu)化治理數字政府低碳云企業(yè)數字化轉型。當前,云原生與云安全呈加速融合趨勢。 7月27日,由中國信息通信研究院、中國通信標準化協(xié)會主辦的2021年可信云大會在京召開。中國信息通信研究院云計算與大數據研究所所長何寶宏在會上正式發(fā)布2021云計算十大關鍵詞以及對應的重要發(fā)展趨勢。 ? ...
摘要:作者原文第一部分應用混沌工程理論到區(qū)塊鏈框架。你可以抗議混沌環(huán)境在像與這種權限不足的公共區(qū)塊鏈網絡上是否存在。在之后這些被稱之為混沌工程。混沌原則開始進入正式規(guī)范。名字是混沌工程通過實驗建立對系統(tǒng)行為的信心。 作者 Vipin Bharathan原文:https://medium.com/@vipinsun/... 第一部分. 應用混沌工程理論到區(qū)塊鏈框架。 混沌與工程兩個字是沒有什么...
摘要:我們決定使用一個已有的實驗平臺來對圍繞系統(tǒng)的應用級別混沌實驗進行編排,即紫色部分,通過對下層像這樣的中間件進行注入來實現。所以一些人可能沒有對應的知識和機能來進行合適的混沌實驗。 Roman Atachiants · Tharaka Wijebandara · Abeesh Thomas原文: https://engineering.grab.com/...譯:祝坤榮 背景 對每個用戶...
閱讀 1346·2023-01-11 13:20
閱讀 1684·2023-01-11 13:20
閱讀 1132·2023-01-11 13:20
閱讀 1858·2023-01-11 13:20
閱讀 4100·2023-01-11 13:20
閱讀 2704·2023-01-11 13:20
閱讀 1385·2023-01-11 13:20
閱讀 3597·2023-01-11 13:20