隨著越來(lái)越多的公司轉(zhuǎn)向構(gòu)建微服務(wù)及其他形式的分布式系統(tǒng),這些系統(tǒng)的復(fù)雜性也與日俱增。雖然無(wú)法消除復(fù)雜性,但通過(guò)實(shí)踐混沌工程,可以發(fā)現(xiàn)系統(tǒng)中的漏洞,并防患于未然。本書(shū)向工程師展示了如何在優(yōu)化系統(tǒng)滿(mǎn)足業(yè)務(wù)目標(biāo)的同時(shí)應(yīng)對(duì)復(fù)雜的系統(tǒng)。
兩位作者是該領(lǐng)域的杰出人物,他們?cè)贜etflix公司合作期間開(kāi)創(chuàng)了“混沌工程”這一學(xué)科。在本書(shū)中,他們不僅闡述了混沌工程的目標(biāo)、方法和價(jià)值,還促進(jìn)了各行業(yè)的從業(yè)者針對(duì)該主題展開(kāi)交流。本書(shū)內(nèi)容豐富,立足于發(fā)展史,面向未來(lái),是打開(kāi)混沌工程之門(mén)的黃金之鑰。
通過(guò)閱讀本書(shū),你將:
* 了解混沌工程如何使組織能夠應(yīng)對(duì)復(fù)雜性。
* 探索一種方法論來(lái)避免應(yīng)用程序、網(wǎng)絡(luò)和基礎(chǔ)設(shè)施出現(xiàn)故障。
* 通過(guò)谷歌、微軟、Slack和LinkedIn等行業(yè)專(zhuān)家的真實(shí)故事,學(xué)習(xí)如何將理論應(yīng)用于實(shí)踐。
* 建立思考軟件系統(tǒng)內(nèi)部復(fù)雜性的框架。
* 圍繞Game Day設(shè)計(jì)一個(gè)混沌工程實(shí)施計(jì)劃,并朝著目標(biāo)明確的自動(dòng)化實(shí)驗(yàn)方向發(fā)展。
* 了解如何設(shè)計(jì)能夠?qū)崿F(xiàn)持續(xù)協(xié)作的混沌實(shí)驗(yàn)。
前言 1
導(dǎo)言:混沌工程的誕生 5
第一部分 搭建舞臺(tái) 13
第1章 遇到復(fù)雜系統(tǒng) 15
1.1 思考復(fù)雜性 15
1.2 遇到復(fù)雜性 17
1.3 面對(duì)復(fù)雜性 26
1.4 接納復(fù)雜性 29
第2章 應(yīng)對(duì)復(fù)雜系統(tǒng) 30
2.1 動(dòng)態(tài)安全模型 30
2.2 復(fù)雜性的經(jīng)濟(jì)支柱模型 33
2.3 系統(tǒng)化視角 36
第3章 原則概述 37
3.1 混沌工程是什么 37
3.2 混沌工程不是什么 39
3.3 高級(jí)原則 41
3.4 原則的未來(lái) 45
第二部分 投入實(shí)戰(zhàn) 47
第4章 Slack的災(zāi)難劇場(chǎng) 49
4.1 舊系統(tǒng)的混沌工程改造 49
4.2 災(zāi)難劇場(chǎng) 52
4.3 混沌工程的過(guò)程 53
4.4 過(guò)程如何演化 59
4.5 獲得管理層支持 60
4.6 結(jié)果 60
4.7 總結(jié) 62
第5章 谷歌DiRT:災(zāi)難恢復(fù)測(cè)試 63
5.1 DiRT測(cè)試的生命周期 65
5.2 谷歌的測(cè)試范圍 77
5.3 總結(jié) 79
第6章 微軟的多樣化故障和實(shí)驗(yàn)優(yōu)先級(jí) 81
6.1 為什么一切都如此復(fù)雜 81
6.2 實(shí)驗(yàn)結(jié)果的類(lèi)別 83
6.3 故障優(yōu)先級(jí) 86
6.4 多樣化的程度 87
6.5 大規(guī)模部署實(shí)驗(yàn) 90
6.6 總結(jié) 91
第7章 LinkedIn心中有會(huì)員 92
7.1從災(zāi)難中學(xué)習(xí) 93
7.2 細(xì)化實(shí)驗(yàn)?zāi)繕?biāo) 93
7.3 安全地進(jìn)行大規(guī)模實(shí)驗(yàn) 95
7.4 LinkedOut實(shí)戰(zhàn) 96
7.5 總結(jié) 105
第8章 采納并演進(jìn)混沌工程的第一資本金融公司 106
8.1 第一資本金融公司案例研究 107
8.2 設(shè)計(jì)實(shí)驗(yàn)時(shí)需要注意的事項(xiàng) 109
8.3 工具鏈 110
8.4 團(tuán)隊(duì)結(jié)構(gòu) 111
8.5 傳播 112
8.6 總結(jié) 113
第三部分 人為因素 115
第9章 先見(jiàn)之明 117
9.1 混沌工程與韌性 118
9.2 混沌工程的步驟 118
9.3 混沌工程實(shí)驗(yàn)的工具支持 120
9.4 有效的內(nèi)部合作 122
9.5 總結(jié) 127
第10章 人類(lèi)系統(tǒng)的混沌 128
10.1 系統(tǒng)中的人 128
10.2 工程師團(tuán)隊(duì)的適應(yīng)能力 130
10.3 付諸實(shí)踐 132
第11章 決策圈中的人 144
11.1 實(shí)驗(yàn)的原因、方法和時(shí)機(jī) 145
11.2 總結(jié) 151
第12章 實(shí)驗(yàn)選擇問(wèn)題及解決方案 152
12.1 選擇實(shí)驗(yàn) 152
12.2 可觀(guān)測(cè)性:機(jī)會(huì)來(lái)了 158
12.3 總結(jié) 160
第四部分 商業(yè)因素 163
第13章 混沌工程的投資回報(bào)率 165
13.1 減少事故所帶來(lái)的好處轉(zhuǎn)瞬即逝 165
13.2 Kirkpatrick模型 166
13.3 投資回報(bào)率替代方案示例 168
13.4 附帶投資回報(bào)率 169
13.5 總結(jié) 170
第14章 將心態(tài)、科學(xué)和混沌開(kāi)放 171
14.1 協(xié)作心態(tài) 171
14.2 開(kāi)放科學(xué)與開(kāi)放源代碼 173
14.3 總結(jié) 176
第15章 混沌成熟度模型 177
15.1 采用度 177
15.2 復(fù)雜性 182
15.3 總結(jié) 186
第五部分 持續(xù)演進(jìn) 189
第16章 持續(xù)驗(yàn)證 191
16.1 持續(xù)驗(yàn)證從何而來(lái) 191
16.2 持續(xù)驗(yàn)證系統(tǒng)的類(lèi)型 193
16.3 持續(xù)驗(yàn)證示例:ChAP 194
16.4 持續(xù)驗(yàn)證的未來(lái)用例 197
第17章 介入信息物理系統(tǒng) 199
17.1 信息物理系統(tǒng)的興起 200
17.2 功能安全遇上混沌工程 200
17.3 信息物理系統(tǒng)的軟件 203
17.4 混沌工程超越FMEA 204
17.5 探針效應(yīng) 206
17.6 總結(jié) 208
第18章 當(dāng)HOP遇上混沌工程 210
18.1 什么是HOP 210
18.2 HOP的主要原則 210
18.3 HOP遇上混沌工程 212
18.4 總結(jié) 215
第19章 數(shù)據(jù)庫(kù)的混沌工程 216
19.1 為什么我們需要混沌工程 216
19.2 應(yīng)用混沌工程 218
19.3 檢測(cè)故障 222
19.4 自動(dòng)化混沌工程 223
19.5 總結(jié) 226
第20章 安全混沌工程的案例 227
20.1 現(xiàn)代安全手段 228
20.2 安全混沌工程與現(xiàn)有方法 231
20.3 安全Game Day 233
20.4 安全混沌工程工具示例:ChaoSlingr 234
20.5 總結(jié) 236
第21章 結(jié)語(yǔ) 238
作者簡(jiǎn)介 241
譯者簡(jiǎn)介 241
封面簡(jiǎn)介 242