DevOps 權威指南 : IT 效能新基建
內容描述
DevOps已在互聯網、金融和製造等領域落地實踐。
本書主要內容包括DevOps的基本概念,DevOps的工具集,支撐管理,
敏捷開發,持續集成和測試,持續部署和持續交付,
代碼質量和安全,DevOps的度量體系,持續改進和反饋,
DevOps最佳實踐,以及DevOps的後續發展。
本書適合企業級DevOps項目中不同角色、
不同參與模式下的用戶閱讀,
也適合作為大專院校和相關培訓機構的教學用書。
目錄大綱
目 錄
第 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 用戶故事的實踐 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 Selenium實踐示範 257
5.6 驅動測試的方式 258
5.6.1 常見的驅動測試方式 259
5.6.2 數據驅動測試 260
5.6.3 DevOps驅動測試 262
5.7 持續集成的實踐 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的實踐 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.1.1 技術債務的來源 314
7.1.2 技術債務的分類 314
7.1.3 技術債務的處理方式 316
7.1.4 通過DevOps管理技術債務 317
7.2 質量內建 318
7.2.1 質量內建的含義 319
7.2.2 沒有質量內建的後果 320
7.2.3 如何進行質量內建 321
7.3 代碼規範和指標 323
7.3.1 代碼規範的重要性 323
7.3.2 代碼規範案例 324
7.3.3 約束代碼規範的手段 329
7.3.4 SonarQube指標 330
7.4 代碼評審 333
7.4.1 代碼評審的重要性 333
7.4.2 代碼評審的誤區 334
7.4.3 代碼評審的實踐 335
7.5 DevOps和安全的集成 337
7.5.1 DevSecOps的概念 338
7.5.2 DevOps和SDL的矛盾 338
7.5.3 DevOps和SDL的初步融合 340
7.5.4 DevSecOps的起源 340
7.5.5 DevSecOps的原則 341
7.6 DevSecOps實踐 342
7.6.1 實踐過程 343
7.6.2 實踐案例 347
第8章 DevOps的度量體系 350
8.1 數據思維 350
8.1.1 DevOps數據的發展歷程 350
8.1.2 數據思維的含義 351
8.1.3 數據思維的落地方式 352
8.2 DevOps數據體系的建設和管理 354
8.2.1 DevOps數據體系的建設思路 354
8.2.2 DevOps數據體系的建設過程 355
8.3 DevOps數據在運維領域的使用場景 359
8.3.1 DevOps數據在運維領域使用時的難點 359
8.3.2 適合使用的高階場景 360
8.4 構建DevOps度量體系 363
8.4.1 度量體系的重要性 363
8.4.2 DevOps度量體系的建設過程 364
8.5 構建DevOps指標體系 368
8.5.1 指標體系的作用 368
8.5.2 數據指標體系的5個關鍵要素 369
8.5.3 數據指標體系的準則 371
8.5.4 常見的數據指標體系 371
第9章 持續改進和反饋 376
9.1 DevOps持續反饋原則 376
9.1.1 流水線反饋 376
9.1.2 持續改進反饋 377
9.2 DevOps的持續改進 379
9.2.1 研發組織的持續改進 379
9.2.2 測試組織的持續改進 380
9.2.3 度量的持續改進 381
9.3 DevOps常見誤區和改進目標 381
9.3.1 實踐過程中常見的誤區 381
9.3.2 DevOps的改進指標 383
第 10章 DevOps實踐 386
10.1 阿里云云效的DevOps實踐 386
10.1.1 雲效平台簡介 386
10.1.2 DevOps實踐背景和推進策略 387
10.1.3 阿里云云效一站式DevOps解決方案 388
10.2 騰訊雲DevOps實踐 393
10.2.1 CODING平台簡介 393
10.2.2 敏捷開發實踐 394
10.2.3 持續集成實踐 397
10.2.4 測試管理實踐 400
10.2.5 持續部署實踐 401
10.2.6 質量與安全實踐 402
10.2.7 過程度量實踐 404
10.3 蘇寧金融DevOps實踐 404
10.3.1 實踐總體思路 404
10.3.2 研發迭代活動實踐 406
第 11章 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
作者介紹
顧黃亮
持牌金融機構部門總經理,中國商聯專家智庫入庫專家、江蘇銀行業和保險業金融科技專家委員會候選專家、
企業數字化轉型IOMM委員會特聘專家、中國信通院可信雲標準特聘專家、中國信通院低代碼/無代碼推進中心特聘專家,
騰訊雲價值專家TVP,阿里云有價值專家MVP,《研發運營一體化(DEVOPS)能力成熟度模型》
和《企業IT運維發展白皮書》核心作者,出版物《企業級DevOps實戰案例-持續交付篇》合著作者,
出版物《企業級DevOps權威指南》個人作者,容器雲技能大賽課程出品人,多個技術峰會演講嘉賓,
擁有豐富的企業級DevOps實戰經驗,專注企業IT數字化的轉型和落地,致力於企業智慧運維體系的打造。