解析阿里開源混沌工程工具ChaosBlade是什么点晴?

微信公眾號:內(nèi)核小王子
關(guān)注可了解更多關(guān)于數(shù)據(jù)庫妖枚,JVM內(nèi)核相關(guān)的知識;
如果你有任何疑問也可以加我pigpdong[1]

高可用架構(gòu)是保障服務(wù)穩(wěn)定性的核心。

混沌工程

我們可以把混沌工程看作揭示分布式系統(tǒng)中未知的弱點(diǎn)而進(jìn)行的實(shí)驗(yàn)蝗柔。混沌工程師通過應(yīng)用一些經(jīng)驗(yàn)探索的原則民泵,來學(xué)習(xí)觀察系統(tǒng)是如何反應(yīng)的癣丧。這就跟科學(xué)家做實(shí)驗(yàn)去學(xué)習(xí)物理定律一樣,混沌工程師通過做實(shí)驗(yàn)去了解系統(tǒng)栈妆。

混沌工程是在分布式系統(tǒng)上進(jìn)行實(shí)驗(yàn)的學(xué)科, 目的是建立對系統(tǒng)抵御生產(chǎn)環(huán)境中失控條件的能力以及信心胁编,最早由Netflix及相關(guān)團(tuán)隊(duì)提出。

monkey.png

現(xiàn)在大部分的混沌工程項(xiàng)目都叫做 Monkey鳞尔,也就是這只討厭的猴子掏呼,在你的系統(tǒng)里面上蹦下竄,不停搗亂铅檩,直到搞掛你的系統(tǒng)憎夷。通過混沌實(shí)驗(yàn),我們可以了解到系統(tǒng)脆弱的一面昧旨,在還沒出現(xiàn)對用戶造成傷害之前拾给,我們就能主動發(fā)現(xiàn)這些問題,提升整個系統(tǒng)的彈性兔沃。

hundun.png

和故障注入以及故障測試的區(qū)別

混沌工程蒋得、故障注入和故障測試在關(guān)注點(diǎn)和工具中都有很大的重疊。但前者主要側(cè)重通過實(shí)踐產(chǎn)生無法預(yù)知的信息乒疏,幫助我們更好的認(rèn)識系統(tǒng)额衙,有更多的不確定性,而后者更偏重于是否達(dá)到預(yù)期怕吴,就像程序里的Assert斷言一樣窍侧,如果不符合預(yù)期就拋出異常。故障測試以某種預(yù)想的方式破壞系統(tǒng)转绷,但沒有探索更多可能發(fā)生的奇怪場景伟件。本質(zhì)上是實(shí)驗(yàn)和測試的區(qū)別,后者主要用來驗(yàn)證议经,前者用來發(fā)現(xiàn)新知識斧账。

餛飩實(shí)驗(yàn)的輸入示例:

  • 模擬整個 IDC 全部宕機(jī)
  • 針對某個接口調(diào)用延遲5秒返回
  • 讓某個 CPU 全負(fù)載
  • 讓某個函數(shù)拋出某個異常或返回某個固定的值
  • 強(qiáng)制讓 NTP 時間不同步
  • 生產(chǎn) IO 錯誤

混沌工程的原則

cs.png

下圖為可能的故障分類煞肾,我們可以通過Java字節(jié)碼技術(shù)和操作系統(tǒng)層面的工具來分別模擬進(jìn)程內(nèi)和進(jìn)程外的故障咧织。隨著Serverless、Docker等新架構(gòu)籍救、新技術(shù)的出現(xiàn)习绢,故障實(shí)現(xiàn)機(jī)制和承接載體也將會有一些新的變化。

env.png

混沌工程的應(yīng)用場景

  • 提升系統(tǒng)容錯能力以及穩(wěn)定性
  • 評估系統(tǒng)榮災(zāi)紅線
  • 驗(yàn)證云服務(wù)的動態(tài)擴(kuò)展能力
  • 驗(yàn)證監(jiān)控和告警的有效性以及指標(biāo)是否全面
  • 故障突襲钧忽,提升相關(guān)人員定位毯炮,故障問題的能力

ChaosBlade簡單介紹

ChaosBlade 是一款遵循混沌工程實(shí)驗(yàn)原理逼肯,提供豐富故障場景實(shí)現(xiàn),幫助分布式系統(tǒng)提升容錯性和可恢復(fù)性的混沌工程工具桃煎,可實(shí)現(xiàn)底層故障的注入篮幢,特點(diǎn)是操作簡潔、無侵入为迈、擴(kuò)展性強(qiáng)三椿。
Github 地址為 (https://github.com/chaosblade-io/) 和其他阿里開源的工具不同,不在 /alibaba 下葫辐,而是放在 chaosblade-io 下

chaos [?ke??s] 意思為餛飩的搜锰,混亂的 blade [ble?d] 意思為 刀片 刀身 刀刃 連起來讀就是 cosplay

logo.png

下圖為ChaosBlade發(fā)展歷程,其中 ahas 為基于 ChaosBlade 的一個云上故障演練的產(chǎn)品耿战。

blade.png

ChaosBlade 組件和生態(tài)

c1.png

ChaosBlade提供命令行的方式對實(shí)驗(yàn)進(jìn)行管理蛋叼,例如 create 創(chuàng)建一個實(shí)驗(yàn), destroy 銷毀一個實(shí)驗(yàn)剂陡,以及查詢等狈涮。目前針對進(jìn)程內(nèi)的實(shí)驗(yàn),針對JAVA環(huán)境主要通過javaagent字節(jié)碼注入的方式進(jìn)行 (這一點(diǎn)和另一款故障排查工具arthas一樣) 鸭栖,針對機(jī)器層面主要通過shell(包括docket 和 k8s)

c2.png

ChaosBlade 特點(diǎn)

  • 場景豐富度高
  • 使用簡單歌馍,易于理解
  • 動態(tài)加載,無侵入
  • 場景擴(kuò)展方便
  • 支持運(yùn)行時長設(shè)置

ChaosBlade 支持的實(shí)驗(yàn)

  • CPU 滿載
  • 網(wǎng)絡(luò)丟包 延遲 屏蔽
  • 域名屏蔽
  • 磁盤填充晕鹊,磁盤 IO 讀寫負(fù)載
  • 殺進(jìn)程
  • 刪容器松却,POD
  • RPC 調(diào)用延遲
  • JAVA 方法注入指定異常和設(shè)置返回值

使用舉例

docker pull registry.cn-hangzhou.aliyuncs.com/chaosblade/chaosblade-demo:latest
docker run -it registry.cn-hangzhou.aliyuncs.com/chaosblade/chaosblade-demo:latest

1.gif
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市溅话,隨后出現(xiàn)的幾起案子晓锻,更是在濱河造成了極大的恐慌,老刑警劉巖公荧,帶你破解...
    沈念sama閱讀 218,941評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件带射,死亡現(xiàn)場離奇詭異同规,居然都是意外死亡循狰,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評論 3 395
  • 文/潘曉璐 我一進(jìn)店門券勺,熙熙樓的掌柜王于貴愁眉苦臉地迎上來绪钥,“玉大人,你說我怎么就攤上這事关炼〕谈梗” “怎么了?”我有些...
    開封第一講書人閱讀 165,345評論 0 356
  • 文/不壞的土叔 我叫張陵儒拂,是天一觀的道長寸潦。 經(jīng)常有香客問我色鸳,道長,這世上最難降的妖魔是什么见转? 我笑而不...
    開封第一講書人閱讀 58,851評論 1 295
  • 正文 為了忘掉前任命雀,我火速辦了婚禮,結(jié)果婚禮上斩箫,老公的妹妹穿的比我還像新娘吏砂。我一直安慰自己,他們只是感情好乘客,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,868評論 6 392
  • 文/花漫 我一把揭開白布狐血。 她就那樣靜靜地躺著,像睡著了一般易核。 火紅的嫁衣襯著肌膚如雪匈织。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,688評論 1 305
  • 那天牡直,我揣著相機(jī)與錄音报亩,去河邊找鬼。 笑死井氢,一個胖子當(dāng)著我的面吹牛弦追,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播花竞,決...
    沈念sama閱讀 40,414評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼劲件,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了约急?” 一聲冷哼從身側(cè)響起零远,我...
    開封第一講書人閱讀 39,319評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎厌蔽,沒想到半個月后牵辣,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,775評論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡奴饮,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年纬向,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片戴卜。...
    茶點(diǎn)故事閱讀 40,096評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡逾条,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出投剥,到底是詐尸還是另有隱情师脂,我是刑警寧澤,帶...
    沈念sama閱讀 35,789評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站吃警,受9級特大地震影響糕篇,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜酌心,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,437評論 3 331
  • 文/蒙蒙 一娩缰、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧谒府,春花似錦拼坎、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至壳鹤,卻和暖如春盛龄,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背芳誓。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評論 1 271
  • 我被黑心中介騙來泰國打工余舶, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人锹淌。 一個月前我還...
    沈念sama閱讀 48,308評論 3 372
  • 正文 我出身青樓匿值,卻偏偏與公主長得像,于是被迫代替她去往敵國和親赂摆。 傳聞我的和親對象是個殘疾皇子挟憔,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,037評論 2 355