企業級DevOps技術與工具實戰

企業級DevOps技術與工具實戰

《企業級DevOps技術與工具實戰》是2020年1月電子工業出版社出版的圖書,作者是劉淼、張笑梅。

基本介紹

  • 中文名:企業級DevOps技術與工具實戰
  • 作者:劉淼、張笑梅
  • 出版社:電子工業出版社
  • 出版時間:2020年1月
  • 頁數:468 頁
  • 定價:99 元
  • 開本:16 開
  • ISBN:9787121372469
內容簡介,目錄,

內容簡介

本書系統全面地介紹了DevOps 的現狀趨勢、基礎理論和實踐方法,對DevOps 實踐中的架構設計、開發、測試、部署等各階段所需踐行的原則和方法進行了總結,並提出相關建議。以實戰為中心,對DevOps實踐中的常用工具進行了分類介紹和特性分析,並結合相關示例進行了使用說明和演示。

目錄

第1 章 DevOps 概述 ......................................................................................................................... 1
1.1 什麼是DevOps ..................................................................................................................... 2
1.2 DevOps 能帶來什麼 ............................................................................................................. 3
1.3 DevOps 的現狀 ..................................................................................................................... 5
1.4 常見的理解誤區 ................................................................................................................. 10
第2 章 DevOps 基礎理論 ............................................................................................................... 12
2.1 敏捷理論體系解讀 ............................................................................................................. 12
2.1.1 敏捷背景介紹 .............................................................................................................. 12
2.1.2 三大支柱解讀 .............................................................................................................. 13
2.1.3 四大核心價值觀及解讀 ................................................................................................ 14
2.1.4 12 條原則及解讀 .......................................................................................................... 15
2.1.5 Scrum 敏捷框架 ........................................................................................................... 17
2.2 敏捷與DevOps ................................................................................................................... 24
2.3 精益理論體系解讀 ............................................................................................................. 25
2.3.1 精益產生背景 .............................................................................................................. 25
2.3.2 精益IT 及其原則 ......................................................................................................... 25
2.4 精益與DevOps ................................................................................................................... 29
2.4.1 節拍 ........................................................................................................................... 29
2.4.2 交貨時間 ..................................................................................................................... 29
2.4.3 度量指標 ..................................................................................................................... 29
2.4.4 浪費種類 ..................................................................................................................... 30
2.4.5 安燈拉繩 ..................................................................................................................... 31
2.4.6 看板 ........................................................................................................................... 31
2.4.7 改善 ........................................................................................................................... 32
2.4.8 挑戰與對策 ................................................................................................................. 33
2.5 實踐案例分析 ..................................................................................................................... 33
第3 章 構建企業的DevOps 文化 .................................................................................................. 36
3.1 對失敗友好的架構與環境.................................................................................................. 36
3.1.1 對失敗友好的架構與環境的特點 ................................................................................... 37
3.1.2 對失敗友好的架構與環境的設計原則 ............................................................................ 37
3.1.3 當失敗遇見複雜系統 .................................................................................................... 40
3.1.4 保障複雜系統的安全 .................................................................................................... 41
3.2 以高度信任為基石的企業文化 .......................................................................................... 42
3.2.1 傳統製造業的懲罰文化 ................................................................................................ 43
3.2.2 聚焦改善的免責事後分析 ............................................................................................. 44
3.2.3 多角度的知識與經驗分享 ............................................................................................. 45
3.3 持續學習與持續試驗 ......................................................................................................... 49
3.3.1 通過內部與外部會議促進人員技術成長 ......................................................................... 50
3.3.2 向生產環境中引入故障來增強彈性 ............................................................................... 50
3.3.3 持續學習與持續試驗的建議 .......................................................................................... 51
3.4 常見的理解誤區 ................................................................................................................. 52
3.5 實踐經驗研究 ..................................................................................................................... 54
第4 章 設計和最佳化軟體全生命周期相關流程 .............................................................................. 56
4.1 持續評估與DevOps 成熟度模型 ...................................................................................... 56
4.2 持續規劃的評估策略 ......................................................................................................... 57
4.3 持續集成的策略與原則 ..................................................................................................... 58
4.4 持續測試的策略與原則 ..................................................................................................... 58
4.5 持續部署的策略與原則 ..................................................................................................... 59
4.6 持續監控的策略與原則 ..................................................................................................... 59
4.7 持續運維的策略與原則 ..................................................................................................... 60
4.8 持續反饋的策略與機制 ..................................................................................................... 60
4.9 常見的理解誤區和實踐經驗 .............................................................................................. 60
第5 章 DevOps 實踐中的設計與開發 ........................................................................................... 62
5.1 傳統架構的痛點 ................................................................................................................. 62
5.2 DevOps 中的架構設計 ....................................................................................................... 62
5.2.1 康威定律的影響 .......................................................................................................... 63
5.2.2 耦合設計原則 .............................................................................................................. 64
5.2.3 獨立部署原則 .............................................................................................................. 66
5.2.4 自動部署策略 .............................................................................................................. 66
5.2.5 12 要素 ....................................................................................................................... 68
5.2.6 套用擴容機制 .............................................................................................................. 68
5.3 環境一致性 ......................................................................................................................... 69
5.3.1 環境一致性的重要性 .................................................................................................... 69
5.3.2 常用工具介紹 .............................................................................................................. 69
5.4 版本管理實踐 ..................................................................................................................... 71
5.4.1 版本管理的痛點 .......................................................................................................... 71
5.4.2 常用工具介紹 .............................................................................................................. 74
5.4.3 實踐經驗總結 .............................................................................................................. 75
5.5 製品管理實踐 ..................................................................................................................... 75
5.6 代碼質量分析 ..................................................................................................................... 77
第6 章 DevOps 實踐中的測試 ....................................................................................................... 78
6.1 傳統測試及其痛點 ............................................................................................................. 78
6.2 測試驅動開發 ..................................................................................................................... 79
6.3 測試分類 ............................................................................................................................. 81
6.4 測試策略 ............................................................................................................................. 83
6.4.1 測試團隊結構重組策略:測試團隊去中心化的應對策略 ................................................. 84
6.4.2 測試促進架構重構策略:根據測試的反饋不斷最佳化系統架構 .......................................... 84
6.4.3 測試團隊技能提升策略:逐步推動測試團隊知識與技能的重建 ....................................... 84
6.4.4 各階段測試策略:分階段使用不同方式保證系統功能 .................................................... 85
6.5 自動化測試 ......................................................................................................................... 85
6.5.1 自動化測試現狀 .......................................................................................................... 86
6.5.2 做還是不做:決策因素 ................................................................................................ 86
6.5.3 自動化測試推行策略 .................................................................................................... 88
6.5.4 自動化測試工具選型 .................................................................................................... 89
6.6 實踐經驗研究 ..................................................................................................................... 90
6.6.1 常見的實踐誤區 .......................................................................................................... 90
6.6.2 實踐案例 ..................................................................................................................... 91
第7 章 DevOps 實踐中的部署 ..................................................................................................... 101
7.1 部署方式 ........................................................................................................................... 101
7.1.1 藍綠部署 ................................................................................................................... 102
7.1.2 金絲雀部署 ............................................................................................................... 103
7.2 部署依賴 ........................................................................................................................... 104
7.2.1 架構的影響 ............................................................................................................... 104
7.2.2 基礎設施的影響 ........................................................................................................ 104
7.3 常用工具 ........................................................................................................................... 106
7.4 實踐經驗總結 ................................................................................................................... 107
第8 章 DevOps 工具選型:開源與閉源 ..................................................................................... 108
8.1 通用選型指標 ................................................................................................................... 108
8.1.1 系統限制要素 ............................................................................................................ 109
8.1.2 可用性 ...................................................................................................................... 109
8.1.3 互動性 ...................................................................................................................... 110
8.1.4 市場狀況 ................................................................................................................... 110
8.1.5 功能可裁剪度 ............................................................................................................ 111
8.2 開源/閉源選型指標 .......................................................................................................... 111
8.2.1 成本 ......................................................................................................................... 112
8.2.2 更新頻度 ................................................................................................................... 112
8.2.3 改善速度 ................................................................................................................... 113
8.2.4 集成方式 ................................................................................................................... 113
8.2.5 文檔說明 ................................................................................................................... 114
8.3 選型模型介紹 ................................................................................................................... 115
8.4 實踐經驗總結 ................................................................................................................... 115
第9 章 DevOps 工具:需求管理與缺陷追蹤 ............................................................................. 117
9.1 常用工具介紹 ................................................................................................................... 117
9.1.1 JIRA ......................................................................................................................... 117
9.1.2 Redmine .................................................................................................................... 118
9.1.3 Trac .......................................................................................................................... 120
9.1.4 Bugzilla ..................................................................................................................... 121
9.2 詳細介紹:Redmine ......................................................................................................... 121
9.2.1 安裝Redmine ............................................................................................................ 121
9.2.2 設定Redmine ............................................................................................................ 125
9.2.3 REST API 操作 .......................................................................................................... 130
9.3 需求管理工具選型比較 ................................................................................................... 137
第10 章 DevOps 工具:持續集成 ............................................................................................... 139
10.1 常用工具介紹 ................................................................................................................. 139
10.1.1 Jenkins ................................................................................................................... 139
10.1.2 Apache Continuum ................................................................................................... 140
10.1.3 CruiseControl .......................................................................................................... 141
10.2 詳細介紹:Jenkins ......................................................................................................... 141
10.2.1 安裝Jenkins ........................................................................................................... 142
10.2.2 設定Jenkins ........................................................................................................... 144
10.3 持續集成實踐 ................................................................................................................. 146
10.3.1 Jenkins+GitLab ........................................................................................................ 147
10.3.2 Jenkins+Docker ....................................................................................................... 150
10.3.3 Jenkins pipeline ....................................................................................................... 157
第11 章 DevOps 工具:版本管理 ............................................................................................... 169
11.1 常用工具介紹.................................................................................................................. 169
11.1.1 RCS ....................................................................................................................... 169
11.1.2 SVN ....................................................................................................................... 179
11.1.3 Git ......................................................................................................................... 180
11.1.4 GitLab .................................................................................................................... 181
11.2 詳細介紹:GitLab 與開發模型 ..................................................................................... 182
11.2.1 Git Flow 分支模型 ................................................................................................... 182
11.2.2 GitLab+Git Flow ...................................................................................................... 185
11.2.3 GitHub Flow 分支模型 ............................................................................................. 200
11.2.4 GitLab+GitHub Flow ................................................................................................ 201
11.3 實踐經驗總結.................................................................................................................. 205
第12 章 DevOps 工具:構建工具 ............................................................................................... 208
12.1 常用工具介紹 ................................................................................................................. 208
12.1.1 Make ..................................................................................................................... 208
12.1.2 Maven .................................................................................................................... 209
12.1.3 Gradle .................................................................................................................... 209
12.1.4 MSBuild ................................................................................................................. 210
12.2 詳細介紹:Maven .......................................................................................................... 211
12.2.1 安裝Maven ............................................................................................................ 211
12.2.2 Maven 的使用 ......................................................................................................... 211
12.3 詳細介紹:Gradle ........................................................................................................... 214
12.3.1 安裝Gradle ............................................................................................................ 214
12.3.2 Gradle 的使用 ......................................................................................................... 214
12.4 實踐經驗總結 ................................................................................................................. 221
第13 章 DevOps 工具:代碼質量 ............................................................................................... 223
13.1 常用工具介紹 ................................................................................................................. 223
13.1.1 SonarQube .............................................................................................................. 223
13.1.2 Frotify .................................................................................................................... 224
13.1.3 Coverity ................................................................................................................. 225
13.1.4 FindBugs ................................................................................................................ 225
13.2 詳細介紹:SonarQube ................................................................................................... 226
13.2.1 安裝SonarQube ...................................................................................................... 226
13.2.2 SonarQube 基礎 ...................................................................................................... 231
13.2.3 SonarQube 使用方式 ................................................................................................ 239
13.3 代碼質量檢測實踐 ......................................................................................................... 244
13.3.1 代碼掃描與概要信息獲取 ........................................................................................ 245
13.3.2 指標信息的獲取 ...................................................................................................... 249
13.3.3 測試指標與事前準備 ............................................................................................... 259
13.3.4 測試指標實踐 ......................................................................................................... 261
13.3.5 項目與質量規約管理 ............................................................................................... 272
第14 章 DevOps 工具:運維自動化 ........................................................................................... 277
14.1 常用工具介紹 ................................................................................................................. 277
14.1.1 Ansible ................................................................................................................... 277
14.1.2 Chef ....................................................................................................................... 277
14.1.3 Puppet .................................................................................................................... 278
14.1.4 Saltstack ................................................................................................................. 279
14.2 常用工具的使用 ............................................................................................................. 279
14.2.1 Ansible 的安裝與使用 .............................................................................................. 279
14.2.2 Chef 的安裝與使用 .................................................................................................. 280
14.2.3 Puppet 的安裝與使用 ............................................................................................... 287
14.2.4 Saltstack 的安裝與使用 ............................................................................................ 289
第15 章 DevOps 工具:測試自動化 ........................................................................................... 292
15.1 常用工具介紹 ................................................................................................................. 292
15.1.1 xUnit ....................................................................................................................... 292
15.1.2 Selenium .................................................................................................................. 293
15.1.3 Apache JMeter .......................................................................................................... 293
15.1.4 Robot Framework ...................................................................................................... 293
15.2 詳細介紹:Robot Framework ........................................................................................ 294
15.2.1 準備Python ............................................................................................................ 294
15.2.2 安裝PIP ................................................................................................................. 294
15.2.3 安裝Robot Framework ............................................................................................. 295
15.3 自動化測試工具的使用 ................................................................................................. 296
15.3.1 使用Robot Framework 進行測試 ............................................................................... 296
15.3.2 使用Selenium 進行測試 .......................................................................................... 300
第16 章 DevOps 工具:日誌監控 ............................................................................................... 303
16.1 常用工具介紹 ................................................................................................................. 303
16.1.1 ELK ....................................................................................................................... 303
16.1.2 Splunk .................................................................................................................... 306
16.1.3 Hygieia .................................................................................................................. 308
16.2 詳細介紹:Hygieia ......................................................................................................... 311
16.2.1 安裝配置 ................................................................................................................ 311
16.2.2 Hygieia 服務的啟動方式和說明 ................................................................................ 312
16.2.3 使用說明 ................................................................................................................ 314
16.3 實踐經驗總結 ................................................................................................................. 315
第17 章 DevOps 工具:運維監控 ............................................................................................... 316
17.1 常用工具介紹 ................................................................................................................. 316
17.1.1 Zabbix .................................................................................................................... 316
17.1.2 Nagios .................................................................................................................... 319
17.1.3 Grafana .................................................................................................................. 323
17.1.4 InfluxDB ................................................................................................................ 325
17.2 詳細介紹:InfluxDB ...................................................................................................... 326
17.3 實踐中的注意事項及原則 .............................................................................................. 330
第18 章 DevOps 工具:安全監控 ............................................................................................... 331
18.1 常用工具介紹 ................................................................................................................. 331
18.1.1 Clair ...................................................................................................................... 331
18.1.2 Anchore .................................................................................................................. 336
18.1.3 ClamAV ................................................................................................................. 339
18.2 詳細介紹:安全掃描 ..................................................................................................... 344
18.2.1 Clair 鏡像安全掃描 ................................................................................................. 344
18.2.2 Anchore 鏡像掃描 ................................................................................................... 348
18.2.3 ClamAV 病毒掃描 ................................................................................................... 349
18.3 實踐經驗總結 ................................................................................................................. 350
第19 章 DevOps 工具:容器化 ................................................................................................... 352
19.1 常用工具介紹 ................................................................................................................. 352
19.1.1 Docker ................................................................................................................... 352
19.1.2 docker-compose ....................................................................................................... 356
19.1.3 Kubernetes .............................................................................................................. 357
19.2 詳細介紹:Docker .......................................................................................................... 357
19.2.1 問題診斷 ................................................................................................................ 357
19.2.2 鏡像操作與容器操作 ............................................................................................... 365
19.2.3 其他操作 ................................................................................................................ 381
19.3 詳細介紹:Kubernetes ................................................................................................... 384
19.3.1 管理資源 ................................................................................................................ 385
19.3.2 故障排查 ................................................................................................................ 390
19.3.3 故障應對 ................................................................................................................ 397
第20 章 DevOps 工具:鏡像私庫 ............................................................................................... 407
20.1 常用工具介紹 ................................................................................................................. 407
20.1.1 Registry .................................................................................................................. 407
20.1.2 Harbor .................................................................................................................... 409
20.1.3 Nexus ..................................................................................................................... 414
20.2 詳細介紹:Harbor .......................................................................................................... 420
第21 章 DevOps 工具:二進制製品管理 ................................................................................... 422
21.1 常用工具介紹 ................................................................................................................. 424
21.1.1 Apache Archiva ....................................................................................................... 424
21.1.2 Artifactory .............................................................................................................. 424
21.2 詳細介紹:Nexus ........................................................................................................... 425
21.2.1 環境設定:Maven 私庫搭建 ..................................................................................... 425
21.2.2 私庫使用:準備與設定Maven ................................................................................. 427
21.2.3 私庫使用:設定項目的pom 檔案 ............................................................................. 428
21.2.4 私庫使用:執行maven 操作 .................................................................................... 429
21.3 實踐經驗總結 ................................................................................................................. 430
第22 章 DevOps 實踐中的安全機制 ........................................................................................... 431
22.1 安全調查現狀 ................................................................................................................. 431
22.2 設計安全機制的整體策略 .............................................................................................. 432

相關詞條

熱門詞條

聯絡我們