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