混沌工程實(shí)戰(zhàn) 手把手教你實(shí)現(xiàn)系統(tǒng)穩(wěn)定性(圖靈出品)
定 價(jià):59 元
叢書(shū)名:圖靈程序設(shè)計(jì)叢書(shū)
- 作者:拉斯·邁爾斯(Russ Miles) 著,黃威 譯
- 出版時(shí)間:2020/8/1
- ISBN:9787115542601
- 出 版 社:人民郵電出版社
- 中圖法分類(lèi):TP338.8
- 頁(yè)碼:131
- 紙張:膠版紙
- 版次:1
- 開(kāi)本:16開(kāi)
混沌工程是在分布式系統(tǒng)上進(jìn)行實(shí)驗(yàn)的學(xué)科,旨在通過(guò)實(shí)驗(yàn)提前發(fā)現(xiàn)系統(tǒng)的缺陷,然后加以修復(fù),從而讓系統(tǒng)有能力應(yīng)對(duì)生產(chǎn)環(huán)境中的各種失控情況。本書(shū)作者是資深的混沌工程師,有著豐富的從業(yè)經(jīng)驗(yàn),他將帶領(lǐng)讀者系統(tǒng)學(xué)習(xí)混沌工程,了解如何運(yùn)用這一新興技術(shù)手動(dòng)開(kāi)展成功的混沌工程實(shí)驗(yàn)游戲日,并通過(guò)自動(dòng)化實(shí)現(xiàn)系統(tǒng)的高可用性和反脆弱性。
適讀人群 :本書(shū)適合對(duì)生產(chǎn)環(huán)境中的代碼負(fù)責(zé)的人員閱讀,如開(kāi)發(fā)人員、運(yùn)維人員、DevOps工程師等。
1.本書(shū)是寫(xiě)給軟件工程師的混沌工程實(shí)踐指南;
2.作者從基本概念出發(fā),逐漸展開(kāi)混沌工程的整體流程;
3.提供配套代碼示例和真實(shí)案例說(shuō)明。
作者介紹
拉斯·邁爾斯(Russ Miles),ChaosIQ公司聯(lián)合創(chuàng)始人兼CEO,擁有近20年的軟件咨詢(xún)和培訓(xùn)經(jīng)驗(yàn),致力于提供更簡(jiǎn)單、更有效的解決方案。由他參與創(chuàng)建的開(kāi)源混沌工程項(xiàng)目Chaos Toolkit擁有活躍的用戶(hù)群。
譯者介紹
黃威,HPE公司軟件工程師,專(zhuān)注于云原生、物聯(lián)網(wǎng)、網(wǎng)絡(luò)通信等領(lǐng)域,擁有十余年的從業(yè)經(jīng)驗(yàn),“踩坑”無(wú)數(shù),專(zhuān)業(yè)技能積累深厚,尤為秉持開(kāi)發(fā)與測(cè)試相輔相成、密不可分的理念。
第 一部分 混沌工程入門(mén)
第 1章 混沌工程精粹 3
1.1 混沌工程的定義 3
1.1.1 混沌工程涉及整個(gè)社會(huì)技術(shù)系統(tǒng) 5
1.1.2 暗債何處尋 6
1.2 混沌工程的流程 7
1.3 混沌工程的實(shí)踐 7
1.4 混沌工程和可觀察性 9
1.5 有所謂的“混沌工程師”嗎 9
1.6 小結(jié) 9
第 2章 構(gòu)建假說(shuō)待辦集 11
2.1 先做實(shí)驗(yàn)? 12
2.2 收集假說(shuō) 12
2.2.1 事故分析 13
2.2.2 描述系統(tǒng) 13
2.2.3 找到“可能出錯(cuò)的地方” 14
2.3 引入可能性和影響 15
2.3.1 繪制可能性與影響關(guān)系圖 15
2.3.2 添加關(guān)注點(diǎn) 17
2.4 構(gòu)建假說(shuō)待辦集 19
2.5 小結(jié) 20
第3章 規(guī)劃并手動(dòng)開(kāi)展游戲日 21
3.1 何謂游戲日 22
3.2 規(guī)劃游戲日 22
3.2.1 選擇一個(gè)假說(shuō) 22
3.2.2 選擇游戲日風(fēng)格 23
3.2.3 決定誰(shuí)做參與者,誰(shuí)做觀察者 24
3.2.4 確定開(kāi)展游戲日的位置 24
3.2.5 確定游戲日開(kāi)始及持續(xù)的時(shí)間 25
3.2.6 描述游戲日實(shí)驗(yàn) 25
3.2.7 獲得批準(zhǔn) 27
3.3 開(kāi)展游戲日 27
3.4 小結(jié) 29
第二部分 混沌工程自動(dòng)化
第4章 為自動(dòng)化混沌工程準(zhǔn)備工具 33
4.1 安裝Python 3 34
4.2 安裝Chaos Toolkit的命令行界面 34
4.3 小結(jié) 36
第5章 編寫(xiě)并運(yùn)行自動(dòng)化混沌工程實(shí)驗(yàn) 37
5.1 建立示例目標(biāo)系統(tǒng) 37
5.2 探索并發(fā)現(xiàn)缺陷的跡象 40
5.2.1 開(kāi)展實(shí)驗(yàn) 42
5.2.2 chaos run的內(nèi)在機(jī)制 43
5.2.3 穩(wěn)態(tài)偏差可能表示“有改進(jìn)空間” 44
5.3 改進(jìn)系統(tǒng) 46
5.4 驗(yàn)證改進(jìn) 47
5.5 小結(jié) 49
第6章 混沌工程全流程 51
6.1 目標(biāo)系統(tǒng) 51
6.1.1 平臺(tái):三節(jié)點(diǎn)Kubernetes集群 52
6.1.2 應(yīng)用程序:?jiǎn)我环⻊?wù),復(fù)制三次 52
6.1.3 人員:集群管理團(tuán)隊(duì)和應(yīng)用程序團(tuán)隊(duì) 54
6.2 尋找缺陷 55
6.2.1 命名實(shí)驗(yàn) 56
6.2.2 定義穩(wěn)態(tài)假說(shuō) 56
6.2.3 引入實(shí)驗(yàn)操作方法中的混亂條件 58
6.2.4 在操作方法中使用Kubernetes驅(qū)動(dòng)程序 58
6.3 成為會(huì)還原的好公民 60
6.4 整合所有步驟并運(yùn)行實(shí)驗(yàn) 61
6.5 小結(jié) 63
第7章 合作的混沌工程 65
7.1 共享實(shí)驗(yàn)定義 65
7.1.1 將配置值移入配置塊 67
7.1.2 將配置屬性指定為環(huán)境變量 68
7.1.3 將密鑰移到外部 69
7.1.4 劃定密鑰范圍 70
7.2 指定作用模型 72
7.3 創(chuàng)建并共享具有可讀性的混沌工程實(shí)驗(yàn)報(bào)告 73
7.3.1 生成實(shí)驗(yàn)的單次運(yùn)行報(bào)告 73
7.3.2 生成并共享實(shí)驗(yàn)的多次運(yùn)行報(bào)告 74
7.4 小結(jié) 74
第8章 創(chuàng)建混沌工程實(shí)驗(yàn)驅(qū)動(dòng)程序 75
8.1 無(wú)須額外代碼即創(chuàng)建自定義驅(qū)動(dòng)程序 76
8.1.1 用HTTP調(diào)用實(shí)現(xiàn)probe和action 76
8.1.2 用進(jìn)程調(diào)用實(shí)現(xiàn)probe和action 78
8.2 用Python創(chuàng)建自定義混沌工程驅(qū)動(dòng)程序 79
8.2.1 為Chaos Toolkit擴(kuò)展項(xiàng)目新建Python模塊 80
8.2.2 添加probe 81
8.3 小結(jié) 86
第三部分 混沌工程操作
第9章 混沌與操作 89
9.1 實(shí)驗(yàn)中的操控 90
9.2 啟用control 92
9.2.1 在實(shí)驗(yàn)代碼中啟用control 93
9.2.2 全局啟用control 93
9.3 小結(jié) 93
第 10章 實(shí)現(xiàn)混沌工程的可觀察性 95
10.1 為混沌工程實(shí)驗(yàn)加入日志 96
10.2 追蹤混沌工程實(shí)驗(yàn) 98
10.2.1 引入OpenTracing 98
10.2.2 應(yīng)用OpenTracing control 98
10.3 小結(jié) 100
第 11章 人為干預(yù)自動(dòng)化混沌工程實(shí)驗(yàn) 101
11.1 為control新建Chaos Toolkit擴(kuò)展模塊 102
11.2 加入非常簡(jiǎn)單的人機(jī)交互控制 102
11.3 跳過(guò)或執(zhí)行實(shí)驗(yàn)中的activity 109
11.4 小結(jié) 111
第 12章 持續(xù)混沌 113
12.1 何謂持續(xù)混沌 114
12.2 使用cron安排持續(xù)混沌 115
12.2.1 創(chuàng)建腳本執(zhí)行混沌測(cè)試 115
12.2.2 將混沌測(cè)試腳本添加到cron 117
12.3 用Jenkins調(diào)度持續(xù)混沌 117
12.3.1 下載Jenkins 117
12.3.2 將混沌測(cè)試添加到Jenkins構(gòu)建中 118
12.3.3 使用構(gòu)建觸發(fā)器調(diào)度Jenkins中的混沌測(cè)試 121
12.4 小結(jié) 122
附錄A 混沌工程工具包Chaos Toolkit 123
附錄B Chaos Toolkit社區(qū)游樂(lè)場(chǎng) 129
關(guān)于作者 131
關(guān)于封面 131