阿里云AHAS Chaos:应用及业务高可用提升工具平台之故障演练
簡介: 阿里云AHAS Chaos:應(yīng)用及業(yè)務(wù)高可用提升工具平臺(tái)之故障演練
應(yīng)用高可用服務(wù)AHAS及故障演練AHAS Chaos
應(yīng)用高可用服務(wù)(Application High Availability Service)是阿里云一款專注于提高應(yīng)用及業(yè)務(wù)高可用的工具平臺(tái),目前主要提供應(yīng)用架構(gòu)探測感知、故障注入式高可用能力評測和流控降級高可用防護(hù)三大核心能力,通過各自的工具模塊可以快速低成本地在營銷活動(dòng)場景、業(yè)務(wù)核心場景全面提升業(yè)務(wù)穩(wěn)定性和韌性。
圖1:AHAS服務(wù)體系
故障演練AHAS Chaos是一款遵循混沌工程實(shí)驗(yàn)原理并融合了阿里巴巴內(nèi)部實(shí)踐的產(chǎn)品,提供豐富的故障場景實(shí)現(xiàn),能夠幫助分布式系統(tǒng)提升容錯(cuò)性和可恢復(fù)性。故障演練建立了一套標(biāo)準(zhǔn)的演練流程,包含準(zhǔn)備階段、執(zhí)行階段、檢查階段和恢復(fù)階段。通過四階段的流程,覆蓋用戶從計(jì)劃到還原的完整演練過程,并通過可視化的方式清晰地呈現(xiàn)給用戶。
?
圖2:故障演練流程
AHAS Chaos的適用場景
衡量微服務(wù)的容錯(cuò)能力
通過模擬調(diào)用延遲、服務(wù)不可用、機(jī)器資源滿載等,查看發(fā)生故障的節(jié)點(diǎn)或?qū)嵗欠癖蛔詣?dòng)隔離、下線,流量調(diào)度是否正確,預(yù)案是否有效,同時(shí)觀察系統(tǒng)整體的QPS或RT是否受影響。在此基礎(chǔ)上可以緩慢增加故障節(jié)點(diǎn)范圍,驗(yàn)證上游服務(wù)限流降級、熔斷等是否有效。最終故障節(jié)點(diǎn)增加到請求服務(wù)超時(shí),估算系統(tǒng)容錯(cuò)紅線,衡量系統(tǒng)容錯(cuò)能力。
驗(yàn)證容器編排配置是否合理
通過模擬殺服務(wù)Pod、殺節(jié)點(diǎn)、增大Pod資源負(fù)載,觀察系統(tǒng)服務(wù)可用性,驗(yàn)證副本配置、資源限制配置以及Pod下部署的容器是否合理。
測試PaaS層是否健壯
通過模擬上層資源負(fù)載,驗(yàn)證調(diào)度系統(tǒng)的有效性;模擬依賴的分布式存儲(chǔ)不可用,驗(yàn)證系統(tǒng)的容錯(cuò)能力;模擬調(diào)度節(jié)點(diǎn)不可用,測試調(diào)度任務(wù)是否自動(dòng)遷移到可用節(jié)點(diǎn);模擬主備節(jié)點(diǎn)故障,測試主備切換是否正常。
驗(yàn)證監(jiān)控告警的時(shí)效性
通過對系統(tǒng)注入故障,驗(yàn)證監(jiān)控指標(biāo)是否準(zhǔn)確,監(jiān)控維度是否完善,告警閾值是否合理,告警是否快速,告警接收人是否正確,通知渠道是否可用等,提升監(jiān)控告警的準(zhǔn)確性和時(shí)效性。
定位與解決問題的應(yīng)急能力
通過故障突襲,隨機(jī)對系統(tǒng)注入故障,考察相關(guān)人員對問題的應(yīng)急能力,以及問題上報(bào)、處理流程是否合理,達(dá)到以戰(zhàn)養(yǎng)戰(zhàn),鍛煉人定位與解決問題的能力。
AHAS Chaos的功能優(yōu)勢
靈活的流程編排
AHAS Chaos將故障演練的環(huán)節(jié)分為了準(zhǔn)備、注入、檢查以及恢復(fù)四個(gè)階段,每個(gè)階段除了系統(tǒng)初始化完成的必要節(jié)點(diǎn)之外,用戶也可以根據(jù)需要添加自己的流程節(jié)點(diǎn)。
AHAS Chaos支持一次演練定義包含多個(gè)故障場景,同時(shí)用戶可以定制這些場景的運(yùn)行方式,選擇依次進(jìn)行故障注入或同時(shí)注入多個(gè)場景,通過不同的策略配置來達(dá)到不同的故障注入效果。
豐富的故障場景
豐富的故障場景也是AHAS Chaos的一大特色,包括以下場景:
- 常見的基礎(chǔ)設(shè)施資源例如CPU、內(nèi)存、磁盤等。
- 應(yīng)用級別的故障注入,目前支持Java應(yīng)用,后續(xù)將陸續(xù)推出對于NodeJs和C++的應(yīng)用故障注入。
- 云原生領(lǐng)域的演練場景。
無論用戶是需要設(shè)置集群級別的大規(guī)模故障還是應(yīng)用級別的請求級別細(xì)粒度故障,都可以在AHAS Chaos找到適合的場景,下圖是AHAS Chaos提供的部分故障場景。
圖3:AHAS Chaos提供的部分故障場景
多樣的專家經(jīng)驗(yàn)
AHAS Chaos將阿里內(nèi)部多年的故障演練經(jīng)驗(yàn)濃縮成了專家經(jīng)驗(yàn),專家經(jīng)驗(yàn)具有以下優(yōu)點(diǎn):
- 專家經(jīng)驗(yàn)都來自于阿里內(nèi)部經(jīng)常演練的場景,保證了演練場景的真實(shí)性以及實(shí)用性。
- 專家經(jīng)驗(yàn)不但包括了可執(zhí)行的演練流程,還描述了專家經(jīng)驗(yàn)試圖解決的問題以及針對的系統(tǒng)架構(gòu)弱點(diǎn)。
- 專家經(jīng)驗(yàn)極大地提升了演練創(chuàng)建的效率,用戶可以基于專家經(jīng)驗(yàn)配置好的流程一鍵生成自己的演練。
安全的演練防護(hù)
在保護(hù)用戶的演練安全性上AHAS Chaos也做了非常多的防護(hù)措施:
- 在演練的任意一個(gè)環(huán)節(jié),用戶都可以隨時(shí)終止演練,每一個(gè)終止操作都會(huì)自動(dòng)恢復(fù)注入的場景。
- 用戶可以一鍵終止所有正在運(yùn)行當(dāng)中的演練。
- 用戶可以配置演練的自動(dòng)恢復(fù)時(shí)間,防止因演練時(shí)間過長而忘記恢復(fù)演練引發(fā)不必要的問題。
- 用戶可以通過全局恢復(fù)功能來配置自動(dòng)恢復(fù)的策略,當(dāng)某個(gè)指標(biāo)符合某個(gè)要求時(shí)自動(dòng)恢復(fù)演練。
深度集成的阿里云產(chǎn)品
AHAS Chaos和阿里云的許多產(chǎn)品如ARMS、SLS、EDAS、OTS以及架構(gòu)感知服務(wù)等做了深度集成,通過授權(quán)用戶可以實(shí)現(xiàn)以下功能:
- 對依賴的阿里云組件進(jìn)行故障注入。
- 基于接入的阿里云監(jiān)控系統(tǒng)數(shù)據(jù)如ARMS來豐富演練檢查和恢復(fù)的手段。
- 通過RAM服務(wù)來授權(quán)不同賬號的演練權(quán)限,提升演練的安全性。
演練實(shí)踐
網(wǎng)絡(luò)不穩(wěn)定對業(yè)務(wù)系統(tǒng)的影響
經(jīng)驗(yàn)描述:通過注入多種網(wǎng)絡(luò)故障,來檢測網(wǎng)絡(luò)不穩(wěn)定對系統(tǒng)造成的影響,以及系統(tǒng)的應(yīng)對情況。
背景:網(wǎng)絡(luò)環(huán)境不好,可能會(huì)對業(yè)務(wù)造成比較大的影響,特別是系統(tǒng)依賴較多的外部服務(wù),比如緩存Redis、消息中間件等,因此需要通過網(wǎng)絡(luò)層面的故障注入來考察系統(tǒng)的超時(shí)處理能力。
架構(gòu)弱點(diǎn):1.對第三方系統(tǒng)的調(diào)用超時(shí)設(shè)置不合理;2.缺乏對依賴超時(shí)時(shí)候的重試能力;3.缺乏對依賴超時(shí)問題的兜底策略,比如異常處理、功能降級等措施。
評測:1.系統(tǒng)設(shè)置了合理的超時(shí)時(shí)間,不會(huì)因?yàn)橐蕾囅到y(tǒng)的網(wǎng)絡(luò)不穩(wěn)定導(dǎo)致請求超時(shí);2.針對第三方調(diào)用超時(shí)或者失敗的情況,系統(tǒng)配置了監(jiān)控,并且具備一定的重試能力。
java應(yīng)用發(fā)生oom異常
經(jīng)驗(yàn)描述:1.通過填滿jvm的內(nèi)存空間,來觸發(fā)fullgc和oom異常,使得應(yīng)用的響應(yīng)時(shí)間變長,甚至無響應(yīng),來觀察業(yè)務(wù)的處理效率以及監(jiān)控的發(fā)現(xiàn)情況;2.oom存在一定風(fēng)險(xiǎn)無法自動(dòng)恢復(fù),需要重啟應(yīng)用。
背景:新生代是jvm內(nèi)部一塊重要的內(nèi)存區(qū)域,由于新建對象過多等因素導(dǎo)致該區(qū)域內(nèi)存被占用到一定額度,會(huì)觸發(fā)MiniGc操作進(jìn)行回收,但是如果新建的對象一直被引用,那么會(huì)導(dǎo)致MiniGc無法回收,進(jìn)而上升到老年代,如果老年代也被占用滿,那么就會(huì)觸發(fā)fullgc,頻繁的gc操作會(huì)導(dǎo)致應(yīng)用的cpu以及請求響應(yīng)都變得很高,對業(yè)務(wù)應(yīng)用造成比較大的影響。
架構(gòu)弱點(diǎn):1.監(jiān)控缺失,當(dāng)應(yīng)用發(fā)生fullgc之后,無法及時(shí)定位問題,特別是現(xiàn)在很多的jvm監(jiān)控系統(tǒng)都采用了metric的規(guī)范,通過應(yīng)用提供的http接口來獲取監(jiān)控?cái)?shù)據(jù),一旦應(yīng)用無響應(yīng),那么會(huì)導(dǎo)致監(jiān)控?cái)?shù)據(jù)無法及時(shí)獲取,進(jìn)而不能觸發(fā)報(bào)警;2.不能及時(shí)下線問題機(jī)器,由于頻繁的gc,應(yīng)用已經(jīng)無法響應(yīng)業(yè)務(wù)請求,因此需要及時(shí)下線掉問題機(jī)器。
評測:1.當(dāng)應(yīng)用發(fā)生了fullgc,問題機(jī)器迅速被隔離掉,不再接受業(yè)務(wù)請求。2.當(dāng)應(yīng)用發(fā)生了fullgc,監(jiān)控系統(tǒng)可以迅速報(bào)警并且定位問題。
總結(jié)
故障演練AHAS Chaos作為AHAS的一部分,在其中承擔(dān)了問題發(fā)現(xiàn)、問題驗(yàn)證、高可用經(jīng)驗(yàn)沉淀的作用,并與AHAS其他功能組成了一套完善的高可用保障服務(wù),可以幫助用戶實(shí)現(xiàn)包括架構(gòu)、業(yè)務(wù)、人員的全面高可用提升。
作者:SRE團(tuán)隊(duì)技術(shù)小編-小蘭
原文鏈接
本文為阿里云原創(chuàng)內(nèi)容,未經(jīng)允許不得轉(zhuǎn)載
總結(jié)
以上是生活随笔為你收集整理的阿里云AHAS Chaos:应用及业务高可用提升工具平台之故障演练的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Serverless在SaaS领域的最佳
- 下一篇: 一家化纤工厂的数字化转型之路