“基礎設施即代碼”模式與實踐 Infrastructure as Code, Patterns and Practices: With Examples in Python and Terraform

[美] 羅斯瑪麗·王(Rosemary Wang)著 姚冬 徐磊 陳計節 張揚 譯

  • “基礎設施即代碼”模式與實踐-preview-1
  • “基礎設施即代碼”模式與實踐-preview-2
  • “基礎設施即代碼”模式與實踐-preview-3
“基礎設施即代碼”模式與實踐-preview-1

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

相關主題

商品描述

主要內容 ● 優化基礎設施,以模塊化並隔離依賴關系 ● 緩解、排除故障並隔離失敗的基礎設施變更 ● 採用藍綠部署策略,以最少的停機時間更新基礎設施 ● 使用模式進行資源置備、配置管理及鏡像構建

目錄大綱

目 錄

 

第Ⅰ部分 起步

第1 章 基礎設施即代碼簡介  3

1.1 什麽是基礎設施   5

1.2 什麽是IaC     7

1.2.1 手動配置基礎設施 7

1.2.2 基礎設施即代碼  8

1.2.3 哪種不是基礎設施即代碼    10

1.3 基礎設施即代碼的原則  10

1.3.1 可重建性   10

1.3.2 冪等性    12

1.3.3 可組合性   14

1.3.4 可演進性   15

1.3.5 原則的應用   16

1.4 為什麽使用基礎設施即代碼     17

1.4.1 變更管理   18

1.4.2 時間投資回報  18

1.4.3 知識共享   19

1.4.4 安全    20

1.5 工具      21

1.5.1 本書示例   21

1.5.2 資源置備   23

1.5.3 配置管理   24

1.5.4 鏡像構建   25

1.6 本章小結     26

第2 章 編寫基礎設施代碼  27

2.1 表述基礎設施變更   29

2.2 理解不可變性    31

2.2.1 計劃外手工變更補償 33

2.2.2 遷移到基礎設施即代碼    35

2.3 編寫整潔的基礎設施即代碼     41

2.3.1 把溝通上下文記錄到版本控制   41

2.3.2 風格檢查與格式化 42

2.3.3 為資源命名   43

2.3.4 變量和常量   44

2.3.5 依賴項參數化  45

2.3.6 妥善處理機密信息 49

2.4 本章小結     50

第3 章 基礎設施模塊的模式 51

3.1 單例模式     52

3.2 組合模式     55

3.3 工廠模式     58

3.4 原型模式     61

3.5 生成器模式    65

3.6 模式的選擇    70

3.7 本章小結     73

第4 章 基礎設施依賴模式  75

4.1 關系的單向性    76

4.2 依賴註入     77

4.2.1 控制反轉   77

4.2.2 依賴倒置   80

4.2.3 應用依賴註入  85

4.3 外觀模式     88

4.4 適配器模式    92

4.5 中介者模式    96

4.6 選擇正確的模式   100

4.7 本章小結    102

第Ⅱ部分 團隊規模化實踐

第5 章 模塊的存儲結構與共享     105

5.1 存儲庫組織結構   107

5.1.1 單存儲庫   107

5.1.2 多存儲庫   110

5.1.3 選擇一種存儲庫結構    114

5.2 版本控制    117

5.3 發布     120

5.4 模塊共享    123

5.5 本章小結    125

第6 章 測試     127

6.1 基礎設施測試周期  129

6.1.1 靜態分析   129

6.1.2 動態分析   130

6.1.3 基礎設施測試環境 131

6.2 單元測試    132

6.2.1 測試基礎設施配置 133

6.2.2 測試領域特定語言DSL    135

6.2.3 何時編寫單元測試 138

6.3 契約測試    140

6.4 集成測試    142

6.4.1 模塊測試   142

6.4.2 環境配置測試  145

6.4.3 測試挑戰   146

6.5 端到端測試    148

6.6 其他測試    150

6.7 測試的選擇    151

6.7.1 模塊測試策略  153

6.7.2 配置測試策略  154

6.7.3 識別有用的測試 155

6.8 本章小結    156

第7 章 持續交付與分支模型 159

7.1 交付變更至生產   161

7.1.1 持續集成   161

7.1.2 持續交付   162

7.1.3 持續部署   164

7.1.4 交付方式的選擇 165

7.1.5 模塊    169

7.2 分支模型    170

7.2.1 基於特性的開發 171

7.2.2 基於主乾的開發 176

7.2.3 分支模型的選擇 178

7.3 同行評審    182

7.4 GitOps      186

7.5 本章小結    188

第8 章 安全與合規   189

8.1 管理訪問與機密   190

8.1.1 最小權限原則  190

8.1.2 保護配置中的機密 193

8.2 標記基礎設施   194

8.3 策略即代碼    197

8.3.1 策略引擎和標準 198

8.3.2 安全測試   200

8.3.3 策略測試   202

8.3.4 實踐和模式  204

8.4 本章小結    208

第Ⅲ部分 管理生產環境復雜性

第9 章 執行變更    211

9.1 變更前實踐    212

9.1.1 按工作清單行事 213

9.1.2 增加可靠性  214

9.2 藍綠部署    219

9.2.1 部署綠色分組的基礎設施    221

9.2.2 部署綠色分組基礎設施的高層級依賴 222

9.2.3 金絲雀部署  225

9.2.4 開展回歸測試  230

9.2.5 刪除藍色版本的基礎設施    232

9.2.6 其他註意事項  234

9.3 有狀態基礎設施   235

9.3.1 藍綠部署   235

9.3.2 修改交付流水線 236

9.3.3 金絲雀部署  237

9.4 本章小結    239

第10 章 重構     241

10.1 最小化重構的影響  242

10.1.1 通過滾動更新減小影響範圍  243

10.1.2 在重構中使用特性開關   244

10.2 拆分單體應用   250

10.2.1 對高級別資源進行重構   251

10.2.2 重構具有依賴項的資源   262

10.2.3 重復重構工作流 265

10.3 本章小結    268

第11 章 修復故障    269

11.1 恢復功能    270

11.1.1 前滾以還原變更 270

11.1.2 新變更的前滾 272

11.2 故障診斷    273

11.2.1 檢查漂移  273

11.2.2 檢查依賴  275

11.2.3 檢查環境差異 277

11.3 解決問題    278

11.3.1 解決漂移  279

11.3.2 解決環境差異 281

11.3.3 推進最初的變更 282

11.4 本章小結    284

第12 章 管理雲服務費用  285

12.1 管理成本驅動因素  286

12.1.1 實施測試以控製成本   288

12.1.2 將成本估算自動化  291

12.2 降低雲浪費    298

12.2.1 停止未標註和未使用的資源  298

12.2.2 按計劃啟動和停止資源   299

“基礎設施即代碼”模式與實踐XVI

12.2.3 選擇正確的資源類型和大小   301

12.2.4 使用自動縮放 302

12.2.5 為資源添加過期時間標簽   304

12.3 成本優化    308

12.3.1 按需構建環境 309

12.3.2 使用多雲環境 309

12.3.3 對多雲和多區域之間的數據傳輸進行評估  310

12.3.4 在生產中測試 312

12.4 本章小結    313

第13 章 工具管理    315

13.1 使用開源的工具和模塊     316

13.1.1 功能性   317

13.1.2 安全性   318

13.1.3 生命周期  319

13.2 工具升級    321

13.2.1 升級前檢查清單 321

13.2.2 向後兼容性  322

13.2.3 升級中的破壞性變更   324

13.3 工具替換    327

13.3.1 新工具支持導入 327

13.3.2 不支持導入能力 329

13.4 事件驅動的IaC    330

13.5 本章小結    332

附錄A 示例運行說明   335

附錄B 練習題答案   349