混沌工程實戰 手把手教你實現系統穩定性 Learning Chaos Engineering Discovering and Overcoming System Weaknesses through Experimentation

[英] 拉斯·邁爾斯(Russ Miles) 黃威譯

  • 出版商: 人民郵電
  • 出版日期: 2020-08-01
  • 定價: $354
  • 售價: 8.5$301
  • 語言: 簡體中文
  • 頁數: 131
  • 裝訂: 平裝
  • ISBN: 7115542600
  • ISBN-13: 9787115542601
  • 相關分類: DevOps
  • 此書翻譯自: Learning Chaos Engineering
  • 立即出貨(限量) (庫存=1)

  • 混沌工程實戰 手把手教你實現系統穩定性-preview-1
  • 混沌工程實戰 手把手教你實現系統穩定性-preview-2
混沌工程實戰 手把手教你實現系統穩定性-preview-1

買這商品的人也買了...

商品描述

混沌工程是在分佈式系統上進行實驗的學科,旨在通過實驗提前發現系統的缺陷,
然後加以修復,從而讓系統有能力應對生產環境中的各種失控情況。
本書作者是資深的混沌工程師,有著豐富的從業經驗,他將帶領讀者係統學習混沌工程,
瞭解如何運用這一新興技術手動開展成功的混沌工程實驗遊戲日,
並通過自動化實現系統的高可用性和反脆弱性。

作者簡介

Russ Miles
ChaosIQ公司聯合創始人兼CEO,擁有近20年的軟件諮詢和培訓經驗,致力於提供更簡單、更有效的解決方案。
由他參與創建的開源混沌工程項目Chaos Toolkit擁有活躍的用戶群。
 

黃威
HPE公司軟件工程師,專注於雲原生、物聯網、網絡通信等領域,
擁有十餘年的從業經驗,“踩坑”無數,專業技能積累深厚,
尤為秉持開發與測試相輔相成、密不可分的理念。

目錄大綱

第一部分混沌工程入門

第1章混沌工程精粹3
1.1混沌工程的定義3
1.1.1混沌工程涉及整個社會技術系統5
1.1.2暗債何處尋6
1.2混沌工程的流程7
1.3混沌工程的實踐7
1.4混沌工程和可觀察性9
1.5有所謂的“混沌工程師”嗎9
1.6小結9

第2章構建假說待辦集11
2.1先做實驗?12
2.2收集假說12
2.2.1事故分析13
2.2.2描述系統13
2.2.3找到“可能出錯的地方” 14
2.3引入可能性和影響15
2.3.1繪製可能性與影響關係圖15
2.3.2添加關注點17
2.4構建假說待辦集19
2.5小結20

第3章規劃並手動開展遊戲日21
3.1何謂遊戲日22
3. 2規劃遊戲日22
3.2.1選擇一個假說22
3.2.2選擇遊戲日風格23
3.2.3決定誰做參與者,誰做觀察者24
3.2.4確定開展遊戲日的位置24
3.2.5確定遊戲日開始及持續的時間25
3.2.6描述遊戲日實驗25
3.2.7獲得批准27
3.3開展遊戲日27
3.4小結29

第二部分混沌工程自動化

第4章為自動化混沌工程準備工具33
4.1安裝Python 3 34
4.2安裝Chaos Toolkit的命令行界面34
4.3小結36

第5章編寫並運行自動化混沌工程實驗37
5.1建立示例目標系統37
5.2探索並發現缺陷的跡象40
5. 2.1開展實驗42
5.2.2 chaos run的內在機制43
5.2.3穩態偏差可能表示“有改進空間” 44
5.3改進系統46
5.4驗證改進47
5.5小結49

第6章混沌工程全流程51
6.1目標系統51
6.1.1平台:三節點Kubernetes集群52
6.1.2應用程序:單一服務,複製三次52
6.1.3人員:集群管理團隊和應用程序團隊54
6.2尋找缺陷55
6.2.1命名實驗56
6.2.2定義穩態假說56
6.2.3引入實驗操作方法中的混亂條件58
6.2.4在操作方法中使用Kubernetes驅動程序58
6.3成為會還原的好公民60
6.4整合所有步驟並運行實驗61
6.5小結63

第7章合作的混沌工程65
7.1共享實驗定義65
7.1.1將配置值移入配置塊67
7.1.2將配置屬性指定為環境變量68
7.1.3將密鑰移到外部69
7.1.4劃定密鑰範圍70
7.2指定作用模型72
7.3創建並共享具有可讀性的混沌工程實驗報告73
7.3.1生成實驗的單次運行報告73
7.3.2生成並共享實驗的多次運行報告74
7.4小結74

第8章創建混沌工程實驗驅動程序75
8.1無須額外代碼即創建自定義驅動程序76
8.1.1用HTTP調用實現probe和action 76
8.1.2用進程調用實現probe和action 78
8.2用Python創建自定義混沌工程驅動程序79
8.2.1為Chaos Toolkit擴展項目新建Python模塊80
8.2.2添加probe 81
8.3小結86

第三部分混沌工程操作

第9章混沌與操作89
9.1實驗中的操控90
9.2啟用control 92
9.2.1在實驗代碼中啟用control 93
9.2.2全局啟用control 93
9.3小結93

第10章實現混沌工程的可觀察性95
10.1為混沌工程實驗加入日誌96
10.2追踪混沌工程實驗98
10.2.1引入OpenTracing 98
10.2.2應用OpenTracing control 98
10.3小結100

第11章人為乾預自動化混沌工程實驗101
11.1為control新建Chaos Toolkit擴展模塊102
11.2加入非常簡單的人機交互控制102
11.3跳過或執行實驗中的activity 109
11.4小結111

第12章持續混沌113
12.1何謂持續混沌114
12.2使用cron安排持續混沌115
12.2.1創建腳本執行混沌測試115
12.2.2將混沌測試腳本添加到cron 117
12.3用Jenkins調度持續混沌117
12.3.1下載Jenkins 117
12.3. 2將混沌測試添加到Jenkins構建中118
12.3.3使用構建觸發器調度Jenkins中的混沌測試121
12.4小結122

附錄A混沌工程工具包Chaos Toolkit 123
附錄B Chaos Toolkit社區遊樂場129
關於作者131
關於封面131