描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787302651857
本书主要讲解DevOps方法论中的CI/CD部分。从基础理论到落地实践,分别从持续集成阶段工具和持续部署阶段工具出发和落地。另外本书还融合了笔者多年开发经验与实践的思考,以供读者学习和借鉴。
本书主要围绕DevOps的核心CI/CD,详细讲解了企业级CI/CD的相关技术内容。全书共11章,首先讲解了持续集成系统Jenkins入门知识、Jenkins运维管理、Jenkins流水线的语法与进阶。接着讲解了持续集成阶段的工具平台实践、GitLab版本控制系统实践、Maven等构建工具实践、SonarQube代码质量平台实践、Nexus Repository 3制品库平台实践。持续部署分别基于云主机和Kubernetes环境的持续集成和持续部署实践。最后讲解了使用基础设施即代码工具Terraform管理阿里云平台资源。通过本书的学习,读者将熟练掌握企业级CI/CD的实践方法和思路。
本书适合具有1~3年运维或开发工作经验、或者对DevOps感兴趣的读者学习。
第1章 Jenkins系统入门 1
1.1 Jenkins系统概述 1
1.1.1 Jenkins概述 1
1.1.2 Jenkins应用场景 2
1.2 Jenkins系统安装 3
1.2.1 准备工作 4
1.2.2 安装Jenkins 5
1.2.3 初始化 7
1.2.4 安装Agent节点 11
1.3 Jenkins数据目录 16
1.4 本章小结 18
第2章 Jenkins系统管理 19
2.1 用户管理 19
2.1.1 Jenkins本地用户 19
2.1.2 LDAP认证集成 21
2.2 权限管理 24
2.2.1 准备 24
2.2.2 安装Role-based插件 26
2.2.3 创建角色 27
2.2.4 授权角色 29
2.2.5 测试权限 29
2.3 凭据管理 30
2.3.1 安装凭据插件 30
2.3.2 创建凭据 32
2.4 本章小结 33
第3章 Jenkins Pipeline实战 34
3.1 什么是Pipeline 34
3.1.1 Pipeline简介 34
3.1.2 为什么使用Pipeline 35
3.1.3 什么是Jenkinsfile 36
3.2 Pipeline核心语法 36
3.2.1 agent节点 37
3.2.2 stages阶段 38
3.2.3 post构建后操作 38
3.2.4 environment环境变量 39
3.2.5 options运行选项 40
3.2.6 parameters参数 41
3.2.7 triggers触发器 42
3.2.8 input交互 43
3.2.9 when阶段运行控制 44
3.2.10 parallel并行运行 45
3.3 Pipeline开发工具 46
3.4 共享库实践 49
3.4.1 创建共享库 49
3.4.2 编写共享库代码 50
3.4.3 修改全局设置 50
3.4.4 加载共享库 52
3.5 本章小结 53
第4章 Jenkins Pipeline进阶 54
4.1 Groovy编程语法 54
4.1.1 数据类型 54
4.1.2 控制语句 58
4.1.3 异常处理 61
4.1.4 函数 61
4.2 Jenkins触发器 62
4.2.1 安装触发器 63
4.2.2 配置触发器 63
4.2.3 解析Request参数 65
4.2.4 解析Header参数 68
4.2.5 解析Post参数 70
4.3 常用的DSL语句 73
4.3.1 获取当前触发用户 73
4.3.2 JSON数据解析 75
4.3.3 在Pipeline中使用凭据 76
4.3.4 自定义构建ID和描述 77
4.4 本章小结 78
第5章 项目代码管理 79
5.1 GitLab系统入门 79
5.1.1 GitLab概述 79
5.1.2 GitLab安装部署 80
5.2 GitLab工作流 82
5.2.1 创建项目组和项目 82
5.2.2 生成和提交项目代码 86
5.2.3 分支开发策略 87
5.3 提交流水线实践 89
5.3.1 Jenkins配置 89
5.3.2 GitLab配置 92
5.3.3 编写Pipeline 96
5.3.4 Pipeline优化 100
5.4 项目构建工具 102
5.4.1 Maven构建 102
5.4.2 Gradle构建 104
5.4.3 NPM构建 106
5.5 本章小结 108
第6章 代码质量平台实战 109
6.1 SonarQube系统入门 109
6.1.1 SonarQube概述 109
6.1.2 SonarQube安装 111
6.1.3 插件管理 113
6.2 SonarQube代码扫描 115
6.2.1 SonarQube质量配置 115
6.2.2 SonarQube质量阈 116
6.2.3 Sonar Scanner配置 117
6.3 SonarQube系统集成 121
6.3.1 准备工作 121
6.3.2 命令行方式 122
6.3.3 Jenkins插件 127
6.3.4 多分支代码扫描 130
6.4 本章小结 134
第7章 制品库平台实战 135
7.1 制品库平台入门 135
7.1.1 管理规范 135
7.1.2 Nexus Repository 3概述 136
7.2 Nexus Repository实践 137
7.2.1 Nexus Repository 3安装 137
7.2.2 搭建Maven私服仓库 138
7.2.3 搭建Maven本地仓库 140
7.2.4 制品上传方式 141
7.3 Nexus Repository扩展实践 144
7.3.1 调试REST API 144
7.3.2 上传Raw类型制品 146
7.3.3 Jenkins插件上传制品 147
7.4 本章小结 149
第8章 云主机环境持续部署 150
8.1 项目准备工作 150
8.1.1 分支策略 150
8.1.2 环境准备 151
8.1.3 Ansible配置 152
8.1.4 Pipeline设计 153
8.2 持续集成实践 154
8.2.1 准备工作 154
8.2.2 设置Pipeline 157
8.3 持续部署实践 164
8.3.1 准备工作 164
8.3.2 设置Pipeline 167
8.4 本章小结 173
第9章 Kubernetes基础 175
9.1 Docker容器基础 175
9.1.1 Docker简介 175
9.1.2 Docker镜像构建 176
9.1.3 Docker镜像管理 178
9.2 Kubernetes基础 180
9.2.1 资源对象 181
9.2.2 Kubectl工具发布 183
9.2.3 Helm工具发布 183
9.3 Kubernetes部署策略 184
9.3.1 滚动更新 184
9.3.2 零停机部署 185
9.4 本章小结 186
第10章 Kubernetes持续部署 187
10.1 持续集成流水线 187
10.1.1 准备工作 187
10.1.2 设置Pipeline 190
10.1.3 启用GitOps 196
10.2 基于Kubectl持续部署 205
10.2.1 准备工作 205
10.2.2 设置Pipeline 207
10.3 基于Helm持续部署 211
10.3.1 准备工作 212
10.3.2 设置Pipeline 213
10.4 本章小结 218
第11章 基础设施即代码 219
11.1 Terraform入门 219
11.2 供应商Provider 221
11.3 定义云资源 224
11.4 开通资源 226
11.5 本章小结 229
前 言
创作背景
DevOps是一组实践,由人、工具和文化理念组成。DevOps的核心是实现软件开发团队和IT运维团队之间的流程自动化。自2018年起,笔者参与了大型企业中多个项目的DevOps项目实施和改进,从中积累了丰富的实践经验。于是将实践思考与开发经验整理成一本书分享给同路人共同学习和交流。
DevOps涵盖的范围非常广,本书主要讲解DevOps方法论中的CI/CD部分。从理论到实践,分别从持续集成阶段工具和持续部署阶段工具出发和落地。注意:本书中的工具均采用开源版本。
目标读者
运维工程师。
开发工程师。
DevOps工程师。
路线图
本书共11章:
第1章介绍了持续集成和持续部署的核心工具Jenkins的入门知识,包括Jenkins持续集成工具的安装部署。
第2章分别通过用户管理、权限管理、凭据管理3个方面讲解Jenkins的系统运维管理。读者可以掌握Jenkins运维管理技能。
第3章开始讲解Jenkins的核心特性流水线即代码实践。读者可以学习Pipeline定义、Pipeline核心语法、Pipeline开发工具、共享库实践。
第4章是对Pipeline的进阶实践。读者可以学习基于Groovy扩展流水线、流水线触发器、流水线中常用的DSL方法。
第5章讲解持续集成阶段的代码管理平台实践。读者可以学习GitLab代码管理平台实践和项目构建工具实践,了解从源代码管理到编译构建的过程。
第6章讲解持续集成阶段的代码质量平台实践。读者可以学习SonarQube平台的安装部署、配置管理、与Jenkins集成实践。
第7章讲解持续集成阶段的制品库平台实践。读者可以学习使用Nexus Repository 3集中管理源代码构建制品和依赖,便于一次构建,发布到不同的环境中运行。
第8章讲解持续部署阶段的云主机环境下的持续集成和持续部署流水线案例。读者可以学习使用Jenkins持续集成生成制品,再通过集成Ansible进行批量发布。
第9章讲解Kubernetes环境持续集成和持续部署相关的基础知识。读者可以学习Docker容器、Kubernetes基础知识,以及常用的发布策略原理,这些是对下一章实践的铺垫。
第10章讲解持续部署阶段的Kubernetes环境下的持续集成和持续部署流水线案例。读者可以学习应用从源代码构建生成镜像、集成Helm发布到Kubernetes环境的整个过程。
第11章扩展Terraform基础设施及代码工具的实践,讲解了Terraform工具的实践方式。读者可以学习使用Terraform以代码的方式管理阿里云平台资源。
读者服务
示例代码。
学习视频。
读者可以通过扫码访问本书专享资源官网,获取示例代码、学习视频,加入读者群,下载最新学习资源或反馈书中的问题。
勘误和支持
由于笔者水平有限,书中难免会有疏漏和不妥之处,恳请广大读者批评指正。
致谢
首先,我要感谢我的家人,他们是我最可靠的后盾,一直在背后支持我,给我鼓励和信心,让我能够专注于本书的撰写。感谢清华大学出版社编辑,她为这本书的撰写和出版做出了巨大的贡献。她的专业知识和敏锐的洞察力帮助我不断改进书稿,使其更加出色。此外,我还要感谢那些曾经为我提供帮助的人,包括我的导师、同事、朋友。他们的支持和鼓励是我前进的动力。最后,我想向所有的读者表示感谢,希望你们能够喜欢这本书,并且从中获得更多的知识和技能。
李泽阳
评论
还没有评论。