持續集成與持續交付實戰:用 Jenkins、Travis CI 和 CircleCI 構建和發布大規模高質量軟件 Hands-On Continuous Integration and Delivery: Build and release quality software at scale with Jenkins, TravisCI and CircleCI
[美]讓-馬塞爾·貝爾蒙特(Jean-Marcel Belmont)
- 出版商: 人民郵電
- 出版日期: 2022-05-01
- 售價: $539
- 貴賓價: 9.5 折 $512
- 語言: 簡體中文
- 頁數: 300
- ISBN: 7115584729
- ISBN-13: 9787115584724
-
相關分類:
CI/CD
- 此書翻譯自: Hands-On Continuous Integration and Delivery: Build and release quality software at scale with Jenkins, TravisCI and CircleCI
立即出貨
買這商品的人也買了...
-
$474$450 -
$301Cloudera Hadoop 大數據平臺實戰指南
-
$580$493 -
$654$621 -
$294$279 -
$690$587 -
$780$608 -
$1,000$790 -
$505WebRTC 技術詳解:從0到1構建多人視頻會議系統
-
$720$612 -
$690$538 -
$534$507 -
$473Spark和Python機器學習實戰:預測分析核心方法(第2版)
-
$620$490 -
$600$474 -
$620$490 -
$680$578 -
$580$458 -
$880$695 -
$720$612 -
$880$695 -
$556高並發系統實戰派:集群、Redis 緩存、海量存儲、Elasticsearch、RocketMQ、微服務、持續集成等
-
$650$507 -
$980$774 -
$520$411
相關主題
商品描述
本書是一本持續集成與持續交付(CI/CD)實踐指南,全書共15章。書中首先介紹持續集成和持續交付的基礎知識,並介紹Jenkins用戶界面及其安裝方式;接下來介紹使用Jenkins UI開發插件、構建Jenkins流水線和運行Docker集成的實際操作;最後介紹Travis CI和CircleCI的安裝及腳本運行等,幫助讀者通過Travis CI和CircleCI獲得有關CI/CD的廣泛知識。
本書適合系統管理員、DevOps工程師以及構建和發布工程師閱讀。通過閱讀本書,讀者能瞭解CI/CD的概念,並獲得使用CI/CD生態系統中重要工具的實踐經驗。
作者簡介
让-马塞尔·贝尔蒙特(Jean-Marcel Belmont)是一位对自动化和持续集成充满热情的软件工程师。他积极参与开源社区,经常参加各类不同主题的软件开发研讨会。他主持着多个开发小组,提倡整洁代码模式和软件匠艺。
目錄大綱
第 1 章 具有自動測試功能的 CI/CD 1
1.1 業務場景 1
1.1.1 手動流程——討論一種假設場景 2
1.1.2 雇員的困境 4
1.1.3 引入自動化 6
1.1.4 開發人員生產力 10
1.1.5 打破溝通障礙 12
1.1.6 創造合作環境 15
1.2 小結 16
1.3 問題 16
第 2 章 持續集成基礎 17
2.1 技術要求 17
2.2 什麽是持續集成 18
2.2.1 什麽是軟件構建 18
2.2.2 持續集成流程步驟概述 18
2.2.3 持續集成的價值 18
2.2.4 利用持續集成降低風險 19
2.2.5 源碼簽入時的軟件構建 21
2.2.6 小型構建和大型構建故障 30
2.2.7 CI 構建實踐 30
2.3 小結 32
2.4 問題 32
第 3 章 持續交付基礎 33
3.1 技術要求 33
3.2 軟件交付問題 33
3.2.1 軟件交付的含義 34
3.2.2 常見的版本發布反模式 34
3.2.3 如何進行軟件發布 35
3.2.4 軟件交付自動化的好處 36
3.3 配置管理 36
3.3.1 配置管理的含義 37
3.3.2 版本控制 37
3.3.3 依賴管理 38
3.3.4 軟件配置管理 40
3.3.5 環境管理 41
3.4 部署流水線 43
3.4.1 什麽是部署流水線 43
3.4.2 部署流水線實踐 43
3.4.3 測試門 44
3.4.4 發布準備 45
3.5 部署腳本編寫 46
3.5.1 構建工具概述 46
3.5.2 部署腳本編寫概念 46
3.5.3 部署腳本編寫最佳實踐 47
3.6 部署生態系統 48
3.6.1 基礎設施工具 48
3.6.2 雲提供商和工具 48
3.7 小結 49
3.8 問題 49
第 4 章 CI/CD 的業務價值 50
4.1 技術要求 50
4.2 溝通問題 50
4.2.1 需求傳達不當 51
4.2.2 缺乏適當的文檔 51
4.2.3 時區差異 52
4.2.4 缺乏信任和相互尊重 52
4.2.5 文化差異和語言障礙 52
4.2.6 反饋周期長 53
4.3 與團隊成員溝通痛點 53
4.3.1 等待需求信息 53
4.3.2 部署流水線中未記錄的步驟 54
4.3.3 王國鑰匙的持有者過多 54
4.3.4 溝通渠道過多 54
4.3.5 疼痛驅動開發 55
4.4 不同團隊間分擔責任 55
4.4.1 輪換團隊成員 55
4.4.2 尋求有關開發實踐的反饋 56
4.4.3 建立跨職能團隊 57
4.5 瞭解利益相關者 57
4.5.1 項目經理 57
4.5.2 行政領導團隊 58
4.5.3 終端用戶 58
4.6 證明 CI/CD 的重要性 59
4.6.1 指標和報告 59
4.6.2 幫助領導者瞭解自動化的重要性 59
4.7 獲得利益相關者對 CI/CD 的批準 60
4.7.1 開始一個臭鼬工廠項目 60
4.7.2 在本地電腦上啟動 CI/CD 60
4.7.3 公司內部展示 60
4.7.4 午餐交流會 61
4.8 小結 61
4.9 問題 61
第 5 章 Jenkins 的安裝與基礎 62
5.1 技術要求 62
5.2 在 Windows 上安裝 62
5.2.1 安裝 Jenkins 的先決條件 62
5.2.2 Windows 安裝程序 63
5.2.3 在 Windows 上安裝 Jenkins 64
5.2.4 在 Windows 上運行安裝程序 65
5.2.5 在 Windows 上用命令提示符啟動和停止 Jenkins 66
5.3 在 Linux 上安裝 67
5.3.1 在 Ubuntu 上安裝 Jenkins 67
5.3.2 在 Ubuntu 上啟動 Jenkins 服務 67
5.3.3 打開網絡流量防火牆 68
5.3.4 首次登錄時解鎖 Jenkins 68
5.4 在 macOS 上安裝 70
5.4.1 下載 Jenkins 程序包 71
5.4.2 首次登錄時解鎖 Jenkins 73
5.4.3 通過 Homebrew 安裝 Jenkins 75
5.5 在本地運行 Jenkins 76
5.5.1 創建一個新項目 76
5.5.2 控制台輸出 79
5.6 管理 Jenkins 80
5.6.1 配置環境變量及工具 82
5.6.2 配置作業以輪詢 GitHub 版本控制存儲庫 83
5.7 小結 85
5.8 問題 85
第 6 章 編寫自由風格腳本 86
6.1 技術要求 86
6.2 創建簡單的自由風格腳本 86
6.2.1 Jenkins 儀表盤指南 86
6.2.2 添加新的構建作業項 87
6.2.3 構建配置選項 88
6.3 配置自由風格作業 89
6.3.1 General 標簽頁 89
6.3.2 Source Code Management 標簽頁 90
6.3.3 Build Triggers 標簽頁 92
6.3.4 Build Environment 標簽頁 93
6.3.5 Build 標簽頁 93
6.3.6 Post-build Actions 標簽頁 94
6.4 添加環境變量 95
6.4.1 全局環境變量的配置 95
6.4.2 EnvInject 插件 97
6.5 用自由風格作業調試問題 98
6.5.1 歷史構建總覽 98
6.5.2 用自由風格腳本調試問題 100
6.6 小結 101
6.7 問題 101
第 7 章 開發插件 102
7.1 技術要求 102
7.2 Jenkins 插件的說明 102
7.2.1 插件為什麽有用 102
7.2.2 Jenkins 插件文檔 103
7.2.3 在 Jenkins 中安裝插件 103
7.3 構建簡單的 Jenkins 插件 103
7.3.1 安裝 Java 103
7.3.2 Maven 安裝指南 104
7.4 Jenkins 插件的開發 107
7.4.1 Maven 設置文件 108
7.4.2 HelloWorld Jenkins 插件 109
7.4.3 目錄結構說明 110
7.4.4 Jenkins 插件源碼說明 111
7.4.5 構建 Jenkins 插件 113
7.4.6 安裝 Jenkins 插件 114
7.5 Jenkins 插件生態系統 115
7.6 小結 116
7.7 問題 116
第 8 章 使用 Jenkins 構建流水線 118
8.1 技術要求 118
8.2 Jenkins 2.0 118
8.2.1 為什麽要使用 Jenkins 2.0 119
8.2.2 在現有軟件上安裝 Blue Ocean 插件 119
8.2.3 通過 Jenkins Docker 鏡像來安裝 Blue Ocean 插件 119
8.2.4 查看 Blue Ocean 界面 122
8.3 Jenkins 流水線 123
8.3.1 創建 Jenkins 流水線 123
8.3.2 用流水線編輯器創建流水線 127
8.4 Jenkins Blue Ocean 操作說明 130
8.4.1 流水線視圖 130
8.4.2 流水線細節視圖 130
8.4.3 流水線構建視圖 131
8.4.4 流水線階段視圖 132
8.4.5 Jenkins 流水線中的其他視圖 132
8.5 流水線語法 133
8.5.1 流水線編輯器 133
8.5.2 流水線語法文檔 134
8.6 小結 134
8.7 問題 134
第 9 章 Travis CI 的安裝與基礎 135
9.1 技術要求 135
9.2 Travis CI 的介紹 135
9.3 使用 Travis CI 的先決條件 136
9.3.1 創建 GitHub 賬號 136
9.3.2 創建 Travis CI 賬號 138
9.3.3 為新 GitHub 賬號添加 SSH 密鑰 140
9.4 添加簡單的 Travis YAML 配置腳本 142
9.4.1 Travis YML 腳本內容 142
9.4.2 為 Travis CI 賬號添加 GitHub 存儲庫 142
9.5 Travis CI 腳本各部分解析 145
9.5.1 選擇編程語言 145
9.5.2 選擇基礎設施 146
9.5.3 定製構建 147
9.6 小結 152
9.7 問題 153
第 10 章 Travis CI 命令行命令及自動化 154
10.1 技術要求 154
10.2 Travis CLI 的安裝 154
10.2.1 在 Windows 上安裝 155
10.2.2 在 Linux 上安裝 156
10.2.3 在 macOS 上安裝 157
10.3 Travis CLI 命令 158
10.3.1 非 API 命令 158
10.3.2 API 命令 160
10.3.3 存儲庫命令 170
10.3.4 Travis Pro 和 Travis Enterprise 版本的 Travis CI 選項 179
10.4 小結 180
10.5 問題 180
第 11 章 Travis CI UI 日誌記錄與調試 181
11.1 技術要求 181
11.2 Travis Web 客戶端概述 181
11.2.1 主控儀表盤概述 182
11.2.2 作業日誌概述 183
11.3 用 Docker 在本地調試構建 185
11.4 在調試模式下運行構建 187
11.4.1 從配置頁面獲取 API 令牌 187
11.4.2 從構建日誌獲取作業 ID 188
11.4.3 從視圖配置按鈕的鏈接中獲取作業 ID 188
11.4.4 通過直達/build 端點的 API 請求獲取作業 ID 188
11.4.5 在調試模式下調用 API 來開始構建作業 189
11.4.6 在調試模式下啟用 SSH 會話 190
11.4.7 Travis 調試模式中的便捷 Bash 函數 190
11.4.8 tmate shell 會話操作 192
11.5 Travis Web UI 日誌 193
11.6 Travis CI 部署概述與調試 194
11.6.1 支持 Travis CI 的服務提供商 194
11.6.2 在 Travis CI 中設置 Heroku 195
11.6.3 調試 Travis YML 腳本中的錯誤 196
11.7 小結 198
11.8 問題 198
第 12 章 CircleCI 的安裝與基礎 199
12.1 技術要求 199
12.2 CircleCI 簡介 200
12.3 比較 CircleCI 和 Jenkins 200
12.4 使用 CircleCI 的先決條件 200
12.4.1 創建 GitHub 賬號 200
12.4.2 創建 Bitbucket 賬號 200
12.4.3 創建 CircleCI 賬號 203
12.5 在 GitHub 中設置 CircleCI 206
12.6 在 Bitbucket 中設置 CircleCI 212
12.7 CircleCI 配置概述 218
12.7.1 CircleCI 配置概念概述 218
12.7.2 向新存儲庫中添加源文件 219
12.7.3 新存儲庫的 CircleCI 構建作業 220
12.8 小結 221
12.9 問題 221
第 13 章 CircleCI 命令行命令與自動化 222
13.1 技術要求 222
13.2 CircleCI CLI 的安裝 222
13.2.1 在 macOS / Linux 上安裝 CircleCI CLI 223
13.2.2 通過 GitHub 安裝 CircleCI CLI 的每夜構建版本 223
13.3 CircleCI CLI 命令 224
13.3.1 version 命令 225
13.3.2 help 命令 226
13.3.3 config 命令 226
13.3.4 build 命令 228
13.3.5 step 命令 230
13.3.6 configure 命令 230
13.3.7 tests 命令 232
13.4 在 CircleCI 中使用工作流 232
13.4.1 CircleCI Web UI 中的實際工作流 233
13.4.2 順序工作流示例 234
13.5 使用 CircleCI API 236
13.5.1 測試 CircleCI API 連接 236
13.5.2 用 CircleCI API 獲取單個 Git 存儲庫的構建摘要 237
13.5.3 用 jq 實用程序計算 CircleCI 構建的某些指標 237
13.6 小結 238
13.7 問題 238
第 14 章 CircleCI UI 日誌記錄與調試 239
14.1 技術要求 239
14.2 作業日誌概述 239
14.2.1 用默認構建作業運行作業中的步驟 239
14.2.2 用工作流運行作業中的步驟 246
14.2.3 用 CircleCI API 查找最新的構建 URL 249
14.3 在 CircleCI 中調試慢速構建 252
14.4 日誌記錄和故障排除技術 256
14.5 小結 260
14.6 問題 261
第 15 章 最佳實踐 262
15.1 技術要求 262
15.2 CI/CD 中不同類型測試的最佳實踐 262
15.2.1 冒煙測試 263
15.2.2 單元測試 264
15.2.3 集成測試 266
15.2.4 系統測試 269
15.2.5 驗收測試 269
15.2.6 在 CI/CD 流水線中運行不同類型測試的最佳實踐 271
15.3 密碼和機密存儲中的最佳實踐 271
15.3.1 Vault 的安裝 272
15.3.2 機密管理的最佳實踐概述 275
15.4 部署中的最佳實踐 275
15.4.1 創建部署檢查清單 276
15.4.2 自動化發布 276
15.4.3 部署腳本示例 276
15.4.4 部署腳本的最佳實踐 279
15.5 小結 280
15.6 問題 280