持续集成与持续交付实战(用Jenkins\Travis CI和CircleCI构建和发布大规模高质量软件)
- ISBN:9787115584724
- 装帧:一般胶版纸
- 册数:暂无
- 重量:暂无
- 开本:16开
- 页数:280
- 出版时间:2022-05-01
- 条形码:9787115584724 ; 978-7-115-58472-4
本书特色
本书从持续集成(CI)和持续交付(CD)的基础知识以及它们在 DevOps 生态系统中的位置入手,证明利益相关者协作作为 CI/CD 一部分的重要性。随着章节的深入,读者将接触 Jenkins UI,学习在不同平台上安装 Jenkins、添加插件和编写自由风格脚本,获得使用Jenkins UI 开发插件、构建 Jenkins 2.0 流水线和进行 Docker 集成的实践经验,学会安装 Travis CI 和 CircleCI,进行脚本编写、日志记录与调试,通过 Travis CI 和 CircleCI 获得有关 CI/CD 的广泛知识。本书将详细介绍 CI/CD 生态系统的实践并指导读者实施。本书涵盖的主要内容:■ 在不同的操作系统上安装 Jenkins;■ 学习 Jenkins 自由风格脚本、流水线语法和方法论;■ 探索 Travis CI 构建生命周期事件和多种构建编程语言;■ 掌握 Travis CI CLI,并使用 CLI 将任务自动化;■ 使用 CircleCI CLI 作业,学习流水线;■ 使用 CircleCI CLI 将任务自动化,学习调试和故障排除;■ 学习开源工具,如 Git 和 GitHub;■ 安装 Docker,学习 shell 脚本编写中的相关概念。
内容简介
本书是一本持续集成与持续交付(CI CD)实践指南,全书共15章。书中首先介绍持续集成和持续交付的基础知识,并介绍Jenkins用户界面及其安装方式;接下来介绍使用Jenkins UI开发插件、构建Jenkins流水线和运行Docker集成的实际操作;*后介绍Travis CI和CircleCI的安装及脚本运行等,帮助读者通过Travis CI和CircleCI获得有关CI CD的广泛知识。 本书适合系统管理员、DevOps工程师以及构建和发布工程师阅读。通过阅读本书,读者能了解CI CD的概念,并获得使用CI CD生态系统中重要工具的实践经验。
目录
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
作者简介
让-马塞尔.贝尔蒙特(Jean-Marcel Belmont)是一位对自动化和持续集成充满热情的软件工程师。他积极参与开源社区,经常参加各类不同主题的软件开发研讨会。他主持着多个开发小组,提倡整洁代码模式和软件匠艺。
-
有限与无限的游戏:一个哲学家眼中的竞技世界
¥37.4¥68.0 -
全图解零基础word excel ppt 应用教程
¥12.0¥48.0 -
机器学习
¥59.4¥108.0 -
深度学习的数学
¥43.5¥69.0 -
智能硬件项目教程:基于ARDUINO(第2版)
¥37.7¥65.0 -
硅谷之火-人与计算机的未来
¥14.3¥39.8 -
元启发式算法与背包问题研究
¥38.2¥49.0 -
AI虚拟数字人:商业模式+形象创建+视频直播+案例应用
¥62.9¥89.8 -
UNIX环境高级编程(第3版)
¥164.9¥229.0 -
剪映AI
¥52.8¥88.0 -
深度学习高手笔记 卷2:经典应用
¥90.9¥129.8 -
纹样之美:中国传统经典纹样速查手册
¥77.4¥109.0 -
UG NX 12.0数控编程
¥24.8¥45.0 -
MATLAB计算机视觉与深度学习实战(第2版)
¥90.9¥128.0 -
界面交互设计理论研究
¥30.8¥56.0 -
UN NX 12.0多轴数控编程案例教程
¥25.8¥38.0 -
微机组装与系统维护技术教程(第二版)
¥37.8¥43.0 -
明解C语言:实践篇
¥62.9¥89.8 -
Linux服务器架设实战(Linux典藏大系)
¥84.5¥119.0 -
PREMIERE PRO 2023全面精通:视频剪辑+颜色调整+转场特效+字幕制作+案例实战
¥69.3¥99.0