“基礎設施即代碼”模式與實踐 Infrastructure as Code, Patterns and Practices: With Examples in Python and Terraform
[美] 羅斯瑪麗·王(Rosemary Wang)著 姚冬 徐磊 陳計節 張揚 譯
- 出版商: 清華大學
- 出版日期: 2024-04-01
- 定價: $768
- 售價: 7.9 折 $606 (限時優惠至 2024-11-30)
- 語言: 簡體中文
- 裝訂: 平裝
- ISBN: 7302658226
- ISBN-13: 9787302658221
- 此書翻譯自: Infrastructure as Code, Patterns and Practices: With Examples in Python and Terraform (Paperback)
立即出貨
買這商品的人也買了...
-
$940$700 -
$352領域專用語言實戰 (DSLs in Action)
-
$599$509 -
$474$450 -
$594$564 -
$806模型檢驗原理
-
$621使用 GitOps 實現 Kubernetes 的持續部署:模式、流程及工具
-
$650$507 -
$600$468 -
$556高效能並行運行時系統:設計與實現
-
$2,760$2,622 -
$510軟件開發珠璣:穿越50年軟件往事的60條戒律
-
$539$512 -
$474$450 -
$390$371 -
$1,188$1,129 -
$2,010$1,910 -
$580$458 -
$539$512 -
$888$844 -
$650$507 -
$250軟件開發的藝術
-
$301最優化理論與智能算法
-
$768$730 -
$1,374$1,305
相關主題
商品描述
主要內容 ● 優化基礎設施,以模塊化並隔離依賴關系 ● 緩解、排除故障並隔離失敗的基礎設施變更 ● 採用藍綠部署策略,以最少的停機時間更新基礎設施 ● 使用模式進行資源置備、配置管理及鏡像構建
目錄大綱
目 錄
第Ⅰ部分 起步
第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