




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、AWS云上混沌工程實踐之對照實驗設(shè)計和實施目錄混沌工程發(fā)展歷程混沌工程實驗設(shè)計方法混沌工程實驗?zāi)繕?biāo)混沌工程觀測指標(biāo)設(shè)計 混沌工程故障注入場景 混沌工程實驗環(huán)境考量 混沌工程實驗工具選型混沌工程實驗示例 - 無服務(wù)器架構(gòu)總結(jié)混沌工程發(fā)展歷程天花天花是一種由天花病毒引起之人類傳染病天花主要透過空氣傳播最早的天花在公元前3世紀(jì)埃及木乃伊中發(fā)現(xiàn)(已死去逾三千年的法老 拉美西斯五世)十八世紀(jì)的歐洲,估計每年有40萬人死亡接種與疫苗最早出現(xiàn)的天花預(yù)防法為接種,成功接種的 人可建立持久的免疫力,因患上天花而死的 機(jī)會亦會降低;若失敗,接種者會染上天花, 并可能將之散播。居住在英格蘭郊區(qū)的愛德華詹納醫(yī)生發(fā)現(xiàn)了
2、 牛痘(一種對人類較為溫和的痘病毒)能用 以預(yù)防天花。世界衛(wèi)生組織于1980年正式宣布撲滅天花, 使之成為首個于世上絕跡的人類傳染病。/wiki/Edward_Jenner疫苗與混沌工程受控實驗,準(zhǔn)備故障注入方式(疫苗)將故障(抗原)注入(人體) 系統(tǒng)了解(人體)系統(tǒng)抵御故障(抗原)的行為(產(chǎn)生抗體)真實故障(病菌)發(fā)生時,已 建立抵御故障(病菌)的能力 和信心(消滅)過去當(dāng)前未來災(zāi)備技術(shù)1978 Sungard 至 Mainframe 系列RPORecovery Point Objective即恢復(fù)時間目標(biāo),主要指當(dāng)發(fā)生災(zāi)難或緊急事件時, 業(yè)務(wù)系統(tǒng)所能容忍的停止服務(wù)的最長時間,也就是從 災(zāi)難
3、發(fā)生到業(yè)務(wù)系統(tǒng)恢復(fù)服務(wù)功能所需要的最短時間周期。RTORecovery Time Objective即數(shù)據(jù)恢復(fù)點(diǎn)目標(biāo),主要指當(dāng)發(fā)生災(zāi)難或緊急事件 時,業(yè)務(wù)系統(tǒng)所能容忍的數(shù)據(jù)丟失量?;煦绻こ?010年 Kolton Andrus 在 Amazon 內(nèi)部開發(fā)了可用性測試工具 Gremlin2010年 Netflix 內(nèi)部開發(fā)了 AWS 云上隨機(jī)終止 EC2 實例的混沌實驗工具 Chaos Monkey2011年 Netflix 釋出了其猴子軍團(tuán)工具集 Simian Army2012年 Netflix 向社區(qū)開源由 Java 構(gòu)建 Simian Army, 其中包括 Chaos Monkey V1
4、版本2014年 Netflix 開始正式公開招聘 Chaos Engineer2014年 Netflix 提出了故障注入測試 FIT, 利用微服務(wù)架構(gòu)的特性,控制混沌實驗的爆炸半徑2015年 Netflix 釋出 Chaos Kong, 模擬AWS區(qū)域中斷的場景2015年 Netflix 和社區(qū)正式提出混沌工程的指導(dǎo)思想 Principles of Chaos Engineering2016年 Kolton Andrus 創(chuàng)立了 Gremlin, 正式將混沌實驗工具商用化2017年 Netflix 開源 Chaos Monkey 由 Golang 重構(gòu)的 V2 版本,集成 CD 工具 Spin
5、naker2017年 Netflix 釋出 ChAP 混沌實驗自動平臺, 可視為應(yīng)用故障注入測試 FIT 的加強(qiáng)版2017年 由 Netflix 前混沌工程師撰寫的新書 “混沌工程” 在網(wǎng)上出版2017年 Russell Miles 創(chuàng)立了 ChaosIQ 公司, 并開源了 chaostoolkit 混沌實驗框架混沌工程實驗的設(shè)計方法混沌工程實驗?zāi)繕?biāo)冗余性擴(kuò)展性不可變基礎(chǔ)設(shè)施無狀態(tài)應(yīng)用基礎(chǔ)設(shè)施即代碼韌性架構(gòu)避免級聯(lián)故障轉(zhuǎn)移重試超時冪等服務(wù)拒絕服務(wù) 切換退避機(jī)制操作降級服務(wù)熔斷實驗需求 和對象(迭代)實驗可行性 評估觀測指標(biāo) 設(shè)計實驗場景環(huán) 境設(shè)計實驗工具 平臺框架 選型實驗計劃 和溝通實驗執(zhí)
6、行指標(biāo) 搜集環(huán)境清理與 恢復(fù)實驗結(jié)果 分析問題追蹤流水線 集成混沌工程 實踐混沌工程可行性評估模型混沌工程實驗成熟度等級成熟度等級1級2級3級4級5級架構(gòu)抵御故障的能力無抵御故障的能力一定的冗余性冗余且可擴(kuò)展已使用可避免級聯(lián)故障的技術(shù)已實現(xiàn)韌性架構(gòu)實驗指標(biāo)設(shè)計無系統(tǒng)指標(biāo)監(jiān)控實驗結(jié)果只反映系統(tǒng)狀 態(tài)指標(biāo)實驗結(jié)果反映應(yīng)用的健 康狀況指標(biāo)實驗結(jié)果反映聚合的業(yè) 務(wù)指標(biāo)可在實驗組和控制組之 間比較業(yè)務(wù)指標(biāo)的差異實驗環(huán)境選擇只敢在開發(fā)和測試環(huán)境中運(yùn)行實驗可在預(yù)生產(chǎn)環(huán)境中運(yùn)行實驗未在生產(chǎn)環(huán)境中,用復(fù) 制的生產(chǎn)流量來運(yùn)行實 驗在生產(chǎn)環(huán)境中運(yùn)行實驗包括生產(chǎn)在內(nèi)的任意環(huán)境都可以運(yùn)行實驗實驗自動化能力全人工流程利用
7、工具進(jìn)行半自動運(yùn) 行實驗自助式創(chuàng)建實驗,自動 運(yùn)行實驗,但需要手動 監(jiān)控和停止實驗自動結(jié)果分析,自動終 止實驗全自動的設(shè)計、執(zhí)行和 終止實驗實驗工具使用無實驗工具采用實驗工具使用實驗框架實驗框架和持續(xù)發(fā)布工 具集成工具支持交互式的比對 實驗組和控制組故障注入場景 爆炸半徑范圍只對實驗對象注入一些 簡單事件,如突發(fā)高CPU高內(nèi)存等等可對實驗對象進(jìn)行一些 較復(fù)雜的故障注入,如 EC2實例終止、可用區(qū) 故障等等對實驗對象注入較高級 的事件,如網(wǎng)絡(luò)延遲對實驗組引入如服務(wù)級 別的影響和組合式的故 障事件可注入如對系統(tǒng)的不同 使用模式、返回結(jié)果和 狀態(tài)的更改等類型的事 件環(huán)境恢復(fù)能力無法恢復(fù)正常環(huán)境可手動
8、恢復(fù)環(huán)境可半自動恢復(fù)環(huán)境部分可自動恢復(fù)環(huán)境韌性架構(gòu)自動恢復(fù)實驗結(jié)果整理沒有生成的實驗結(jié)果, 需要人工整理判斷可通過實驗工具的到實 驗結(jié)果,需要人工整理、 分析和解讀可通過實驗工具持續(xù)收 集實驗結(jié)果,但需要人 工分析和解讀可通過實驗工具持續(xù)收 集實驗結(jié)果和報告,并 完成簡單的故障原因分 析實驗結(jié)果可預(yù)測收入損 失、容量規(guī)劃、區(qū)分出 不同服務(wù)實際的關(guān)鍵程 度混沌工程實驗接納指數(shù)接納指數(shù)描述1級公司重點(diǎn)項目不會進(jìn)行混沌工程實驗; 只覆蓋了少量的系統(tǒng);公司內(nèi)部基本上對混沌工程實驗了解甚少; 極少數(shù)工程師嘗試且偶爾進(jìn)行混沌工程實驗。2級混沌工程實驗獲得正式授權(quán)和批準(zhǔn); 由工程師兼職進(jìn)行混沌工程實驗;公司
9、內(nèi)部有多個項目有興趣參與混沌工程實驗; 極少數(shù)重要系統(tǒng)會不定期進(jìn)行混沌工程實驗。3級成立了專門的混沌工程團(tuán)隊;事件響應(yīng)已經(jīng)集成在混沌工程實驗框架中以創(chuàng)建對應(yīng)的回歸實驗; 大多數(shù)核心系統(tǒng)都會定期進(jìn)行混沌工程實驗;偶爾以Game Day的形式,對實驗中發(fā)現(xiàn)的故障進(jìn)行復(fù)盤驗證。4級公司所有核心系統(tǒng)都會經(jīng)常進(jìn)行混沌工程實驗; 大多數(shù)非核心系統(tǒng)也都會經(jīng)常進(jìn)行混沌工程實驗; 混沌工程實驗是工程師日常工作的一部分;所有系統(tǒng)默認(rèn)都要參與混沌工程實驗,不參與需要特殊說明。具體可行性評估問卷回答可行性評估問題表(基于實驗成熟度等級的8個方面)架構(gòu)抵御故障的能力實驗指標(biāo)設(shè)計實驗環(huán)境選擇實驗自動化能力實驗工具使用故障
10、注入場景(爆炸半徑范圍)環(huán)境恢復(fù)能力實驗結(jié)果整理觀測指標(biāo)的設(shè)計指標(biāo)類型業(yè)務(wù)性指標(biāo):價值最大,探測難度最大 Netflix SPS 業(yè)務(wù)指標(biāo)應(yīng)用層指標(biāo):健康狀況基礎(chǔ)設(shè)施指標(biāo):較易獲取,只反映基礎(chǔ)設(shè)施的運(yùn)行狀況指標(biāo)對照:應(yīng)定義指標(biāo)的穩(wěn)定狀態(tài)進(jìn)行對照如無法準(zhǔn)確定義穩(wěn)定狀態(tài),則使用多個指標(biāo)的閾值聯(lián)合進(jìn)行對照指標(biāo)觀測和記錄系統(tǒng)SPS: Netflix關(guān)鍵業(yè)務(wù)指標(biāo)Audible 關(guān)鍵業(yè)務(wù)指標(biāo)故障注入場景設(shè)計故障注入場景具體描述依賴型故障AWS托管服務(wù)異常:ELBS3 / DynamoDB主機(jī)型故障EC2實例異常終止,EC2實例異常關(guān)閉,EBS磁盤卷異常卸載,RDS數(shù)據(jù)庫 實例故障切換,ElastiCach
11、e實例故障切換,操作系統(tǒng)內(nèi)故障CPU、內(nèi)存、磁盤空間、IOPS 占滿或突發(fā)過高占用,大文件,只讀系統(tǒng), 系統(tǒng)重啟,熵耗散,網(wǎng)絡(luò)故障網(wǎng)絡(luò)延遲,網(wǎng)絡(luò)丟包,DNS解析故障,DNS緩存毒化,VIP移動,網(wǎng)絡(luò)黑 洞,服務(wù)層故障不正常關(guān)閉連接,進(jìn)程被殺死,暫停啟用進(jìn)程,內(nèi)核奔潰,請求攔截型故障異常請求,請求處理延遲,故障注入對象微服務(wù)架構(gòu)無服務(wù)器架構(gòu)單體架構(gòu)調(diào)用鏈可追蹤的單體架構(gòu)高中低實驗工具的選擇工具名稱最新版本項目維護(hù)狀態(tài)主要構(gòu)建語言涉及場景特定依賴ChaosMonkey2.0.22016年后不再 功能開發(fā)Go終止 EC2 實例依賴于SpinnakerSimianArmy2.5.3已退役Java終止E
12、C2實例 關(guān)閉EC2實例 阻斷網(wǎng)絡(luò)流量 卸載磁盤卷CPU/IO/磁盤空間突發(fā)過 高殺進(jìn)程路由失效DNS失效 網(wǎng)絡(luò)丟包 網(wǎng)絡(luò)延遲DynamoDB故障無特定依賴實驗工具的選擇工具名稱最新版本項目維護(hù)狀態(tài)主要構(gòu)建語言涉及場景特定依賴orchestrator3.0.14活躍Go純MySQL集群故障場景無特定依賴kube-monkey0.3.0只發(fā)布了一個正 式版本Go殺K8S Pods針對K8S集群chaostoolkit1.1.0活躍Python實驗框架,可集成多個IaaS或PaaS平臺,可使 用多個故障注入工具定制 場景,可與多個監(jiān)控平臺 合作觀測和記錄指標(biāo)信息通過插件形式支 持多個IaaS/Pa
13、aS 包括AWS/Azure/Google/K8SChaoSlingr無正式版本項目停滯成只讀 狀態(tài)Python安全注入試驗框架,目前 只支持端口變更場景依賴于AWS LambdaPowerfulSeal2.0.1活躍Python殺K8S Pods殺容器 殺虛擬機(jī)支持OpenStack/AWS/本地機(jī)器drax0.4.0停滯Go殺Mesos任務(wù)支持DC/OS實驗工具的選擇工具名稱最新版本項目維護(hù)狀態(tài)主要構(gòu)建語言涉及場景特定依賴pod-reaper2.3.0停滯Go殺K8S Pods針對K8S集群muxy0.0.6停滯Go網(wǎng)絡(luò)代理,模擬網(wǎng)絡(luò)故障無特定要求toxiproxy2.1.4活躍Go網(wǎng)絡(luò)代
14、理,模擬網(wǎng)絡(luò)故障無特定要求Pumba0.6.3活躍Go殺停刪容器暫停容器內(nèi)進(jìn)程 網(wǎng)絡(luò)延遲網(wǎng)絡(luò)丟包網(wǎng)絡(luò)帶寬限流依賴于Dockerblockade0.4.0停滯Python殺容器 網(wǎng)絡(luò)終端 網(wǎng)絡(luò)延遲 網(wǎng)絡(luò)丟包 網(wǎng)絡(luò)分區(qū)依賴于Dockerchaos-lambda0.3.0停滯Python殺自動伸縮組的EC2實例依賴于Lambda實驗工具的選擇工具名稱最新版本項目維護(hù)狀態(tài)主要構(gòu)建語言涉及場景特定依賴namazu0.2.1停滯Go文件系統(tǒng)故障網(wǎng)絡(luò)故障Java功能調(diào)用故障針對類Zookeeper分布式系統(tǒng)chaos-monkey- spring-boot2.0.2活躍Java應(yīng)用延遲 異常處理 內(nèi)存過高依
15、賴于SpringBoot框架byte-monkey1.0.0停滯Java異常處理 應(yīng)用延遲依賴于JavaGomJabbar無正式版本 發(fā)布停滯Java優(yōu)雅粗暴關(guān)閉實例 無害遠(yuǎn)程執(zhí)行命令 流量控制依賴于RunDeck 或Ansibleturbulence0.8停滯Go殺虛擬機(jī)CPU/RAM/IO過高 網(wǎng)絡(luò)分區(qū)網(wǎng)絡(luò)丟包網(wǎng)絡(luò)延遲依賴于BOSHchaosblade0.0.2活躍Go實驗框架,目前支持JVM無特定依賴Gremlin自動化平臺Attack HistoryStep 1 - Select a GremlinWARNING: Gremlins that add latency or packet
16、 loss can cause your hosts to reboot if they are running old Kernel ve sions. To fix this issue, you will have to repurpose your hosts.Dependency GremlinsLatent Dependency GremlinThis Gremlin will add latency to incoming packets from any vips, IPs, or hosts in the list provided.巨Packet Loss Dependen
17、cy GremlinThis Gremlin will drop a configurable percentage of packets coming from or going to any vips, IPs, or hosts in the list provided.巳Hostclass GremlinsLatent Hostclass GremlinThis Gremlin will add latency to incoming packets from any hosts in the list of hostclassesprovided. A common use of t
18、his Gremlin is to test how your service responds to increased latency from SABLE clusters.巨Packet Loss Hostclass GremlinThis Gremlin will drop a configurable percentage of packets coming from or going to any hosts in the list of hostclasses provided. A common use of this Gremlin is to test how your
19、service responds to SABLE being down.巳Network Gremlins Latency Gr e m li nThis gremlin runs on the taget hosts and introduces a set amount of latency into every incoming packet for the configured run time.WARNING: If your hostclass has reboot host actionturned on with external monitoring, this greml
20、in can cause your hosts to reboot! Check you external monitoring configuration here. If your hosts still reboot , you may need to repurpose them due to a kernel bug.己實驗環(huán)境的設(shè)計和準(zhǔn)備風(fēng) 險模擬生產(chǎn)流量真實生產(chǎn)流量分支生產(chǎn)環(huán)境測試環(huán)境開發(fā)環(huán)境混沌工程實驗示例 吐氣,心P 產(chǎn) ,配 ,l.盲叩叩W 沁 .叢 m汗.叩只 ., 司 勸 .掃-1屯1SNM 一.,悶,國可王 n-四 職刃 l 的.,.,喇,時可.,.湟叩. .吶?心心
21、四 J 噸_.,山配,婦 4正 . 它悶它.,沖心- .心戶中改葉-斤J 如_.,.嚇心 啊水孔,心 ,歸,.n盧 ;t 吶 , 心釘.玄勺叫卡啞皿,. .汜心 屯 卸 S 問心0:,尸 為句叩 囚鞏 力戊川“心I陽割. 沁?昂 印加即 -parel/lHIIG Ill.,.,叩 j必III一 P 凹 印心心知心人心j叩 ,勺L勻,女- o巳 芍 n -6匹 心辛丿l心如 丘,妒心。氏切 孔l 凰,口,.切一山。嚇巴燦山心,.,.,.,a, 井忒婦心 6 婦 江.心 雪,必一和 江沺 H山 沁心 中皿人臥山立心lJI,山. .,.,.邑豁山.,.一”田句心,a, ,心.,c,忒印 n.心氣匣山石.,_,心 O 如 迎 出 正 心Id 即 抇 且 心 3盯閭山山 00-門補(bǔ)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 中國磁感應(yīng)閘閥項目投資可行性研究報告
- 教育培訓(xùn)基地建設(shè)項目管理模式
- 2025年計算機(jī)通訊網(wǎng)絡(luò)系統(tǒng)集成項目可行性研究報告
- 2025年橡膠軟化劑MA行業(yè)深度研究分析報告
- 2025年微創(chuàng)傷器械項目可行性研究報告
- 鋪頭租賃合同范本
- 中國棉紡行業(yè)發(fā)展趨勢預(yù)測及投資戰(zhàn)略咨詢報告
- 從內(nèi)打破叫生命
- 初冬的雙重性格
- 產(chǎn)婦的日常護(hù)理有哪些
- 鋰離子電池簡介課件
- 射線數(shù)字成像(DR)技術(shù)課件
- 全介質(zhì)自承式架空光纜(ADSS)-設(shè)計和制造專題研討教學(xué)課件
- 建筑工程質(zhì)量保證體系及措施方案
- 電氣控制線路的設(shè)計和元器件選擇
- 剖宮產(chǎn)術(shù)后子宮瘢痕妊娠診治專家共識
- 注塑一線工資考核方案
- 工程質(zhì)量回訪記錄
- GB/T 18268.1-2010測量、控制和實驗室用的電設(shè)備電磁兼容性要求第1部分:通用要求
- 第三節(jié)對化學(xué)武器的防護(hù)
- 人教版高一物理必修二第六章《圓周運(yùn)動》課后練習(xí)(有答案解析)
評論
0/150
提交評論