混沌工程實戰:手把手教你實現系統穩定性

混沌工程實戰:手把手教你實現系統穩定性

《混沌工程實戰:手把手教你實現系統穩定性》是2020年人民郵電出版社出版的圖書。

基本介紹

  • 中文名:混沌工程實戰:手把手教你實現系統穩定性
  • 作者:[英] 拉斯·邁爾斯(Russ Miles)
  • 類別:程式設計
  • 出版社:人民郵電出版社
  • 出版時間:2020年
  • 開本:16 開
  • 裝幀:平裝-膠訂
  • ISBN:9787115542601
內容簡介,圖書目錄,作者簡介,

內容簡介

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

圖書目錄

第 一部分 混沌工程入門
第 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

作者簡介

作者介紹 拉斯·邁爾斯(Russ Miles),ChaosIQ公司聯合創始人兼CEO,擁有近20年的軟體諮詢和培訓經驗,致力於提供更簡單、更有效的解決方案。由他參與創建的開源混沌工程項目Chaos Toolkit擁有活躍的用戶群。 譯者介紹 黃威,HPE公司軟體工程師,專注於雲原生、物聯網、網路通信等領域,擁有十餘年的從業經驗,“踩坑”無數,專業技能積累深厚,尤為秉持開發與測試相輔相成、密不可分的理念。

相關詞條

熱門詞條

聯絡我們