本書主要內容包括:DevOps的基本概念,DevOps的工具集,支撐管理,敏捷開發,持續集成和測試,持續部署和持續交付,代碼質量和安全,DevOps的度量體系,持續改進和反饋,DevOps最佳實踐,以及DevOps的后續發展。
顧黃亮,持牌金融機構部門總經理,中國商聯專家智庫入庫專家、江蘇銀行業和保險業金融科技專家委員會候選專家、企業數字化轉型IOMM委員會特聘專家、中國信通院可信云標準特聘專家、中國信通院低代碼/無代碼推進中心特聘專家,騰訊云具有價值專家TVP,阿里云具有價值專家MVP,《研發運營一體化(DEVOPS)能力成熟度模型》和《企業IT運維發展白皮書》核心作者,出版物《企業級DevOps實戰案例-持續交付篇》合著作者,出版物《企業級DevOps□□指南》個人作者,容器云技能大賽課程出品人,多個技術峰會演講嘉賓,擁有豐富的企業級DevOps實戰經驗,專注企業IT數字化的轉型和落地,致力于企業智慧運維體系的打造。
第1章 認識DevOps 1
1.1 DevOps基礎 1
1.1.1 DevOps的概念 1
1.1.2 DevOps與企業和IT組織的關系 2
1.1.3 DevOps究竟是什么 3
1.2 DevOps的發展軌跡和特點 3
1.2.1 DevOps的起源 3
1.2.2 DevOps的發展路徑 6
1.2.3 DevOps的發展特點 8
1.3 DevOps的總體架構和流程 10
1.3.1 DevOps的總體架構 10
1.3.2 DevOps的流程 14
1.4 DevOps文化 15
1.4.1 為什么需要DevOps文化 15
1.4.2 傳統IT組織文化存在的弊端 15
1.4.3 DevOps文化具備的特點 16
1.4.4 DevOps文化的目標 17
1.5 DevOps的工具鏈框架 18
1.5.1 DevOps工具的發展特性 18
1.5.2 DevOps工具的選擇 20
1.5.3 DevOps工具的種類 21
1.5.4 DevOps工具的發展現狀 22
1.5.5 工具鏈簡介 23
1.6 DevOps的實踐和落地 24
1.6.1 DevOps實踐和落地的模型 25
1.6.2 DevOps實踐和落地的基本原則 25
1.6.3 DevOps落地過程中的問題 27
1.7 DevOps的價值 28
1.7.1 提升IT組織中研發管理的價值 28
1.7.2 提升IT組織中服務輸出的價值 30
1.7.3 助力企業進行產品轉型和科技輸出 31
第 2章 DevOps的工具集 32
2.1 工具的種類和選擇 32
2.1.1 工具在DevOps中的定位 32
2.1.2 DevOps工具周期表 33
2.1.3 DevOps工具選擇問題 34
2.1.4 DevOps工具選擇的建議 35
2.1.5 DevOps工具的基本功能和技術要素 36
2.2 容器云的安裝 54
2.2.1 容器云和DevOps的關系 54
2.2.2 Docker的安裝 54
2.2.3 Kubernetes的部署 58
2.3 容器云的API及其使用方式 73
2.3.1 Docker的API 73
2.3.2 Kubernetes API 81
2.4 容器云與DevOps集成的方法 87
2.4.1 容器云的DevOps和傳統的DevOps的區別 87
2.4.2 容器云的DevOps規劃標準 87
2.4.3 容器云的DevOps規劃設計和集成方法 88
2.4.4 以Docker為代表的DevOps平臺體系的運行流程 91
2.5 項目管理工具 92
2.5.1 市場占有率 92
2.5.2 禪道 92
2.5.3 Jira 99
2.6 持續集成和持續交付工具 102
2.6.1 市場占有率 102
2.6.2 GitLab 103
2.6.3 SVN 117
2.6.4 Maven 124
2.6.5 Nexus 129
2.6.6 Jenkins 132
2.6.7 GitLab CI 139
2.7 測試管理和測試自動化工具 142
2.7.1 市場占有率 142
2.7.2 SonarQube 142
2.7.3 JMeter 151
2.8 運維管理工具 154
2.8.1 市場占有率 154
2.8.2 Zabbix 155
2.8.3 Ansible 163
第3章 支撐管理 177
3.1 項目管理 177
3.1.1 傳統項目管理、IT項目管理和DevOps項目管理的區別 177
3.1.2 DevOps在項目管理中的定位 179
3.1.3 DevOps在IT項目管理中的特點和作用 181
3.2 需求管理 184
3.2.1 需求管理的概念和內容 184
3.2.2 需求管理的難點 185
3.2.3 需求管理的工程方法 186
3.2.4 需求管理和DevOps的關系 188
3.3 CMDB集成 189
3.3.1 CMDB概述 189
3.3.2 CMDB的作用 190
3.3.3 CMDB的價值 191
3.3.4 CMDB和DevOps的集成方法 192
3.3.5 CMDB和DevOps的集成場景 194
3.4 運維服務流程的集成 194
3.4.1 創建運維服務流程的原因 195
3.4.2 創建運維服務流程時的目標 196
3.4.3 建立運維服務流程體系 197
3.4.4 運維服務流程和DevOps的集成 198
3.5 云管理平臺集成 198
3.5.1 云管理平臺的定義 198
3.5.2 云管理平臺的種類 199
3.5.3 云管理平臺的定位和邊界 200
3.5.4 云管理平臺和DevOps的集成 202
3.6 面向終態的監控 203
3.6.1 什么是面向終態 203
3.6.2 監控平臺產生的意義 204
3.6.3 現有監控方案的一些問題 205
3.6.4 面向終態的監控設計 205
第4章 敏捷開發 208
4.1 敏捷開發介紹 208
4.1.1 Scrum概述 208
4.1.2 Scrum框架屬性 210
4.2 敏捷開發和DevOps的關系 217
4.2.1 敏捷開發的特點 217
4.2.2 敏捷開發和DevOps的差異 218
4.2.3 敏捷開發和DevOps的交叉關系 219
4.2.4 敏捷開發和DevOps的共性 220
4.2.5 敏捷開發和DevOps的集成方式 221
4.3 敏捷開發看板 222
4.3.1 看板的用途 222
4.3.2 泳道 224
4.3.3 物理看板和電子看板 225
4.3.4 看板和Scrum的關系 226
4.4 用戶故事 227
4.4.1 用戶故事簡介 227
4.4.2 用戶故事的內容 229
4.4.3 用戶故事的價值 230
4.4.4 用戶故事的2佳實踐 231
4.5 敏捷開發的驅動方式 232
4.5.1 敏捷開發和其他能力子域的協同 232
4.5.2 領域驅動敏捷開發 233
4.5.3 特征驅動敏捷開發 234
4.5.4 測試驅動敏捷開發 234
第5章 持續集成和測試 236
5.1 持續集成簡介 236
5.1.1 持續集成的概念 236
5.1.2 持續集成的對象 236
5.1.3 持續集成的流程、要素和原則 238
5.2 持續集成的優點和難點 239
5.2.1 持續集成在敏捷開發中的作用 239
5.2.2 持續集成在DevOps中的作用 240
5.2.3 持續集成的優點 240
5.2.4 持續集成的難點 241
5.3 版本管理 242
5.3.1 版本控制 242
5.3.2 版本控制和DevOps的關系 243
5.3.3 版本控制和開發模式的關系 244
5.4 自動化測試簡介 246
5.4.1 自動化測試和測試自動化的區別 247
5.4.2 自動化測試能夠解決什么問題 247
5.4.3 自動化測試的目的 249
5.4.4 自動化測試的前置條件 249
5.4.5 自動化測試的通用流程 250
5.5 自動化測試框架 251
5.5.1 自動化測試框架的優點 251
5.5.2 自動化測試框架的類型 252
5.5.3 使用自動化測試框架時需要注意的事項 253
5.5.4 常見的自動化測試框架 254
5.5.5 Selenium2佳實踐示范 257
5.6 驅動測試的方式 258
5.6.1 常見的驅動測試方式 259
5.6.2 數據驅動測試 260
5.6.3 DevOps驅動測試 262
5.7 持續集成的2佳實踐 263
5.7.1 基于程序的持續集成 263
5.7.2 基于容器的持續集成 270
5.7.3 基于數據庫的持續集成 272
第6章 持續部署和持續交付 276
6.1 持續部署簡介 276
6.1.1 持續部署的概念 276
6.1.2 持續部署和持續集成、持續交付的區別 277
6.1.3 持續部署的演進 278
6.2 發布策略 280
6.2.1 常見的發布策略 280
6.2.2 特性開關發布 284
6.3 微服務部署 286
6.3.1 微服務架構的概念 286
6.3.2 傳統開發模式和微服務開發模式的區別 287
6.3.3 微服務和DevOps的關系 288
6.3.4 微服務部署策略 289
6.4 制品和制品庫 291
6.4.1 制品庫的作用 291
6.4.2 制品的類型 292
6.4.3 制品庫的建設 293
6.4.4 常見的制品庫 294
6.5 Pipeline的種類和用法 296
6.5.1 Pipeline對DevOps的作用 296
6.5.2 Pipeline的種類 297
6.6 Pipeline的2佳實踐 303
6.6.1 創建流水線的3種方式 303
6.6.2 Jenkinsfile文件的用法 306
6.6.3 Jenkinsfile文件的高階使用場景 308
6.6.4 Pipeline中Docker的使用 312
第7章 代碼質量和安全 314
7.1 技術債務 314
7.2 質量內建 318
7.3 代碼規范和指標 323
7.4 代碼評審 333
7.5 DevOps和安全的集成 337
7.6 DevSecOpsZ佳實踐 342
第8章 DevOps的度量體系 350
8.1 數據思維 350
8.2 DevOps數據體系的建設和管理 354
8.3 DevOps數據在運維領域的使用場景 359
8.4 構建DevOps度量體系 363
8.5 構建DevOps指標體系 368
第9章 持續改進和反饋 376
9.1 DevOps持續反饋原則 376
9.2 DevOps的持續改進 379
9.3 DevOps常見誤區和改進目標 381
2 20章 DevOpsZ佳實踐 386
10.1 阿里云云效的DevOpsZ佳實踐 386
10.2 騰訊云DevOpsZ佳實踐 393
10.3 蘇寧金融DevOpsZ佳實踐 404
2 21章 DevOps的后續發展 409
11.1 DevOps是衡量CMDB是否成功的重要方式 409
11.2 DevOps逐漸回歸本質 410
11.3 DevOps的發展趨勢是成為服務目錄門戶 410
11.4 AI對DevOps的賦能,是“蜜糖”還是“毒藥”? 411
11.5 DevOps也需要依靠數據中臺 411
11.6 DevOps是否爆發式成長取決于企業領導者是否賦予研發人員更多的話語權 412
11.7 自動化已經逐漸脫離DevOps的范疇 412
11.8 沒有度量的DevOps會逐漸淪為“雞肋” 413
11.9 CI/CD流水線已不再是潮流 413
11.10 成本復盤將成為DevOps發展的新方向 413
11.11 SEC成為DevOps爆發式發展的一個阻礙 413