C114通信網(wǎng)  |  通信人家園

技術(shù)
2021/9/16 22:21

關(guān)于混沌工程,你了解多少

移動(dòng)Labs  胡文

Labs 導(dǎo)讀

混沌工程(Chaos Engineering)不是一個(gè)新概念,從Netflix的工程師創(chuàng)建混沌猴子開(kāi)始,已經(jīng)默默發(fā)展了數(shù)年,隨著近年云原生的興起,混沌工程開(kāi)始頻繁地出現(xiàn)在我們面前。作為一種提高技術(shù)架構(gòu)彈性能力的復(fù)雜技術(shù)手段,混沌工程在分布式系統(tǒng)上進(jìn)行隨機(jī)的故障注入實(shí)驗(yàn),和云原生規(guī)模宏大、結(jié)構(gòu)復(fù)雜、可靠性要求高的特點(diǎn)完美匹配,為云原生的發(fā)展提供較強(qiáng)助力。

作者:胡文

單位:中國(guó)移動(dòng)智慧家庭運(yùn)營(yíng)中心

云原生 × 混沌工程

“今年要搞云原生,混沌工程也要考慮了。”

“聽(tīng)說(shuō)某某公司建了個(gè)混沌工程平臺(tái)呢。”

“我最近也在研究混沌工程。”

最近是不是經(jīng)常聽(tīng)到這樣的對(duì)話(huà)?

混沌工程到底是什么?

為什么要實(shí)施混沌工程?

怎么實(shí)施?

如果你還不太了解❓

那就聽(tīng)我給你介紹一下吧👇

Part 01

●  什么是混沌工程 ●

有一只猴子,非常調(diào)皮,上躥下跳地到處搞破壞,不知道什么時(shí)候就把系統(tǒng)內(nèi)哪臺(tái)服務(wù)給搞掛了,可是IT人們不僅不想辦法消滅它,還非常歡迎它,甚至任由它的隊(duì)伍發(fā)展壯大,成立了“猴子軍團(tuán)”!是不是特別匪夷所思?其實(shí),這就是混沌工程的始祖,由Netflix公司開(kāi)發(fā)的Chaos Monkey,讓我們來(lái)了解一下吧。

根據(jù)這只猴子的特性,想必大家也能猜個(gè)幾分了,在系統(tǒng)內(nèi)隨機(jī)搞破壞,制造一些正常手段難以設(shè)計(jì)的故障,驗(yàn)證系統(tǒng)的恢復(fù)能力,提高系統(tǒng)的可靠性,如果給個(gè)定義的話(huà),混沌工程就是一種提高技術(shù)架構(gòu)彈性能力的復(fù)雜技術(shù)手段。是不是感覺(jué)跟我們常說(shuō)的“故障注入”有點(diǎn)像呢?沒(méi)錯(cuò),“故障注入”是混沌工程最重要的組成部分,“故障演練”和混沌工程確實(shí)有一部分重疊,只是混沌工程的內(nèi)涵更豐富,有自己的通用準(zhǔn)則,在實(shí)施層面上看,混沌工程更像是一種實(shí)驗(yàn),并不預(yù)設(shè)實(shí)驗(yàn)結(jié)果。

Part 02

●  為什么要實(shí)施混沌工程 ●

按照目前云原生時(shí)代流行的持續(xù)測(cè)試的理念,測(cè)試人員在軟件生命周期的需求分析階段就介入了,更有自動(dòng)化測(cè)試、測(cè)試左移/后移等手段的保駕護(hù)航,難道還會(huì)有發(fā)現(xiàn)不了的bug?還需要引入混沌工程?答案是肯定的。因?yàn)槟壳暗臏y(cè)試手段都是基于制定好的測(cè)試用例來(lái)執(zhí)行測(cè)試,測(cè)試結(jié)果是有預(yù)期的,對(duì)于復(fù)雜的系統(tǒng),尤其是動(dòng)輒成千上萬(wàn)臺(tái)服務(wù)器的云環(huán)境,我們很難預(yù)計(jì)到系統(tǒng)內(nèi)會(huì)發(fā)生什么故障,更無(wú)法預(yù)期發(fā)生一個(gè)小小的故障對(duì)整個(gè)系統(tǒng)會(huì)產(chǎn)生多大的影響。混沌工程就是為了解決這個(gè)問(wèn)題而產(chǎn)生的,盡可能產(chǎn)生隨機(jī)故障,監(jiān)控系統(tǒng)的表現(xiàn),為加固系統(tǒng)提供參考和建議,這樣就能不斷提高系統(tǒng)的健壯性。

Part 03

●  怎么實(shí)施混沌工程 ●

作為混沌工程的基礎(chǔ),肯定要先了解下故障注入,其實(shí)業(yè)界已經(jīng)有了相對(duì)通用的按照等級(jí)劃分的故障畫(huà)像了。

有了故障畫(huà)像,混沌工程的實(shí)施就有了基礎(chǔ),Netflix也給出了混沌工程的實(shí)施步驟以及設(shè)計(jì)原則,經(jīng)過(guò)多年的發(fā)展,阿里巴巴、亞馬遜等巨頭公司都有了自己的混沌工程平臺(tái),同時(shí)開(kāi)源了很多故障注入工具,站在巨人的肩膀上,我們?cè)賮?lái)實(shí)施混沌工程就容易了很多。

目前比較受歡迎的開(kāi)源工具見(jiàn)下表,大部分的工具是在chaos monkey的基礎(chǔ)上衍生出來(lái)的:

我們研究了部分開(kāi)源工具,并在項(xiàng)目上進(jìn)行了實(shí)踐。不管是在虛擬機(jī)環(huán)境還是容器環(huán)境,這些工具的使用都非常簡(jiǎn)單,覆蓋的故障場(chǎng)景也相對(duì)比較全面,從底層服務(wù)器級(jí)別,到代碼的方法級(jí)別,常規(guī)的故障都可以模擬。當(dāng)然了,目前支持的故障場(chǎng)景比較簡(jiǎn)單,很多常用的中間件也暫不支持,留給我們很大的二次開(kāi)發(fā)空間。

這些開(kāi)源工具存在的通用問(wèn)題整理如下:

1、功能分散、單薄。每種工具在功能上都有局限性,只具備模擬部分故障的能力;

2、重點(diǎn)都在故障注入,在混沌工程的其他設(shè)計(jì)原則方面比較欠缺。不能自動(dòng)化執(zhí)行,沒(méi)有可視化管理界面,對(duì)實(shí)驗(yàn)的爆炸半徑控制不夠等。

那什么樣的才是完整的混沌工程平臺(tái)呢?除了故障類(lèi)型的支持,權(quán)限管理、資源管理、演練推薦、流程編排等   都是一個(gè)成熟的混沌工程平臺(tái)的必要組成部分,甚至可以提供攻防演練等上層能力。所以說(shuō),搭建一個(gè)成熟的混沌工程平臺(tái)不是一件容易的事情。

●  總結(jié) ●

混沌工程發(fā)展了這么多年,前人已經(jīng)在故障畫(huà)像、故障注入工具、混沌工程平臺(tái)搭建思路等方面打好了堅(jiān)實(shí)的基礎(chǔ),進(jìn)而推動(dòng)混沌工程技術(shù)持續(xù)進(jìn)步與完善,隨著云原生技術(shù)的發(fā)展,混沌工程的價(jià)值也將更加顯現(xiàn)。

給作者點(diǎn)贊
0 VS 0
寫(xiě)得不太好

免責(zé)聲明:本文僅代表作者個(gè)人觀點(diǎn),與C114通信網(wǎng)無(wú)關(guān)。其原創(chuàng)性以及文中陳述文字和內(nèi)容未經(jīng)本站證實(shí),對(duì)本文以及其中全部或者部分內(nèi)容、文字的真實(shí)性、完整性、及時(shí)性本站不作任何保證或承諾,請(qǐng)讀者僅作參考,并請(qǐng)自行核實(shí)相關(guān)內(nèi)容。

熱門(mén)文章
    最新視頻
    為您推薦

      C114簡(jiǎn)介 | 聯(lián)系我們 | 網(wǎng)站地圖 | 手機(jī)版

      Copyright©1999-2024 c114 All Rights Reserved | 滬ICP備12002291號(hào)

      C114 通信網(wǎng) 版權(quán)所有 舉報(bào)電話(huà):021-54451141