猜你喜欢
持续集成与持续部署实践

持续集成与持续部署实践

书籍作者:陈志勇 ISBN:9787115506818
书籍语言:简体中文 连载状态:全集
电子书格式:pdf,txt,epub,mobi,azw3 下载次数:2676
创建日期:2021-02-14 发布日期:2021-02-14
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板
内容简介
本书结合实例介绍持续集成与持续部署过程中的相关知识,包括从源代码管理(版本管理、代码扫描、代码审核)到集成部署(编译打包、流水线、容器化部署),再到自动化测试(单元测试、接口测试),最后到生产发布(镜像仓库、镜像管理、日志管理、网络管理、持久化方案、服务发现、服务编排等)的整个过程。参照书中内容即可在企业中落地持续集成与持续部署。
本书适合有志于投身运维的读者,以及还处在手工部署环境中的测试团队、运维团队、开发团队。由于可操作性较强,本书也适合作为大专院校相关专业师生的学习用书和培训学校的教材。
作者简介
钱琪,曾任职于AMD、思科、中国电信、VMWare等企业,擅长测试开发、自动化测试、性能测试,拥有丰富的持续集成、持续部署实践经验。

孙金飞,万达网科质量管理部技术专家,曾担任平安付、挖财等公司测试总监,服务过腾讯、淘宝、百度、平安、挖财等企业,擅长测试开发、自动化测试、测试管理、性能测试,拥有丰富的持续集成、持续部署实践经验。

陈志勇(天胜),曾任职于诺亚舟、上汽通用、平安集团、中国电信等企业,从事DevOps开发、性能测试工作,拥有丰富的开发、项目管理、性能测试经验,著有《全栈性能测试修炼宝典JMeter实战》。

李诚诚,翼支付消费金融事业群自动化测试专家,曾任职于平安付、挖财,擅长性能测试、自动化测试、测试开发,拥有丰富的持续集成、性能测试经验。
编辑推荐

腾讯研发总监leo fan,阿里巴巴高级技术专家吴毓雄,滴滴出行高级技术专家任杨,飞谷云创始人大数据实战专家平安壹钱包前大数据架构师张粤磊联合推荐

来自一线的实践经验,深入呈现技术细节;详实的实操示例,即学即用的实战技术

讲解了持续集成中引人入胜的内容:CI/CD到底要解决什么问题?它与DevOps之间的关系是怎样的?程序员如何用工具化的系统持续进行代码的版本管理、构建、打包、集成、测试和部署?利用云平台和容器技术实现弹性伸缩价值等

目录
目录
第 一部分 价值驱动

第 1章 为什么要CI&CD 2
1.1 CI&CD的价值 2
1.2 CI&CD带来的变化 3
1.3 CI&CD实施现状 4
1.4 CI&CD技术栈 5
1.5 大规模部署的烦恼 6
1.6 实施云平台化 7
1.7 本章小结 11

第二部分 持续集成

第 2章 代码管理 14
2.1 代码版本管理工具GitLab 14
2.1.1 安装GitLab CE 14
2.1.2 配置GitLab 24
2.1.3 GitLab的使用说明 33
2.2 代码扫描和管理平台
SonarQube 42
2.2.1 SonarQube平台的组成
结构和集成 42
2.2.2 SonarQube服务器 44
2.2.3 SonarQube扫描器 52
2.2.4 SonarQube服务器的
界面 56
2.3 代码审核工具Gerrit 65
2.3.1 Gerrit 65
2.3.2 Gerrit的安装和配置 66
2.3.3 GitWeb的安装和配置 75
2.3.4 在Gerrit中集成LDAP
认证 78
2.3.5 Gerrit和GitLab的
集成 79
2.3.6 Gerrit的基本用法 86
2.4 本章小结 92
第3章 Jenkins基础知识 93
3.1 Jenkins 93
3.2 Jenkins的安装 94
3.2.1 使用Docker安装
Jenkins 94
3.2.2 为CentOS虚拟机安装
Jenkins 106
3.3 Jenkins Home目录 108
3.4 Jenkins的升级以及备份和
还原 111
3.4.1 升级Jenkins 111
3.4.2 备份和还原Jenkins 111
3.5 Jenkins的分布式构建模式 114
3.6 Jenkins配置 120
3.6.1 Jenkins界面 120
3.6.2 Jenkins系统配置 125
3.6.3 Jenkins全局安全配置 130
3.6.4 Jenkins全局工具配置 136
3.6.5 Jenkins CLI 140
3.7 Jenkins插件的配置和使用 144
3.7.1 强大的插件功能 144
3.7.2 安装和更新插件 145
3.8 本章小结 150
第4章 持续集成实战 151
4.1 源码下拉和管理 152
4.1.1 创建任务 152
4.1.2 Git源码管理 153
4.1.3 凭据 154
4.1.4 分支管理 158
4.1.5 Git源码管理的附加
操作 159
4.1.6 拉取多个Git仓库 161
4.2 Maven源码构建 162
4.2.1 构建一个Maven
项目 162
4.2.2 配置Build模块 164
4.3 集成SonarQube进行代码
扫描 167
4.3.1 对Sonar和Jenkins进行
集成 167
4.3.2 为Maven任务配置Sonar
扫描 169
4.4 触发设定 173
4.4.1 定时构建 173
4.4.2 远程构建 174
4.4.3 GitLab触发构建 175
4.4.4 Gerrit触发构建 178
4.4.5 其他工程构建后触发 184
4.5 邮件提醒 184
4.5.1 Jenkins全局配置 184
4.5.2 在Jenkins任务中配置
邮件提醒 185
4.5.3 邮件模板配置 187
4.6 任务参数化配置 197
4.6.1 Jenkins自带常用
参数 198
4.6.2 Node参数 199
4.6.3 Git参数 201
4.6.4 动态选择参数 203
4.7 上下游任务设定 207
4.8 执行条件设定 209
4.8.1 设置Conditional step
(single) 210
4.8.2 设置Conditional steps
(multiple) 214
4.9 实例一:Git代码提交触发+Maven构建+代码扫描+邮件通知 214
4.9.1 Build部分配置 215
4.9.2 Artifactory构建仓库
配置 215
4.10 实例二:Git源码下拉+参数化
构建+多环境部署 219
4.10.1 任务参数化 220
4.10.2 多项目代码下拉 222
4.10.3 配置多阶段子任务 223
4.10.4 在子任务之间传递部署
执行文件 225
4.11 Pipeline和Blue Ocean 227
4.11.1 Jenkins Pipeline 227
4.11.2 多分支流水线任务 239
4.11.3 通过Blue Ocean展示和
创建任务 242
4.12 在Jenkins中集成Kubernetes 245
4.12.1 基于Kubernetes集群的
Jenkins 245
4.12.2 安装Jenkins Master 246
4.12.3 配置Jenkins Master 252
4.12.4 通过Pipeline脚本创建
动态Slave节点 256
4.13 本章小结 258
第5章 自动化测试集成 259
5.1 Jenkins+Maven+JMeter 259
5.1.1 环境准备 259
5.1.2 Maven+JMeter执行 260
5.1.3 Jenkins+Maven+JMeter
任务构建 270
5.2 Jenkins+Robot Framework 270
5.2.1 Robot Framework介绍和
安装 270
5.2.2 在Robot Framework中
集成Jenkins 275
5.3 本章小结 283

第三部分 持续部署

第6章 持续部署设计 286
6.1 持续部署的问题 286
6.2 解决方案 288
6.2.1 Rancher 289
6.2.2 Rancher运行机理 291
6.2.3 Rancher如何解决持续
部署的问题 293
6.3 持续部署场景 295
6.3.1 单系统部署结构 295
6.3.2 普通集群部署结构 296
6.3.3 微服务系统部署结构 296
6.3.4 租户隔离结构 297
6.4 本章小结 297
第7章 安装环境 298
7.1 准备工作 298
7.2 安装Docker 301
7.3 安装Rancher 302
7.3.1 安装Rancher HA
环境 302
7.3.2 添加本地账户 306
7.3.3 设置环境 308
7.3.4 添加主机 309
7.4 集成Harbor镜像仓库 311
7.4.1 下拉镜像 311
7.4.2 配置 312
7.4.3 启动容器 313
7.4.4 修改默认的HTTP
端口 315
7.4.5 集成Harbor到
Rancher中 315
7.4.6 测试连通 316
7.4.7 查看Harbor日志 319
7.4.8 从Rancher商店集成
Harbor 319
7.5 Rancher名词约定 321
7.6 本章小结 324
第8章 持续部署 325
8.1 单系统部署 325
8.1.1 源码扫描、编译、
打包 326
8.1.2 制作镜像并上传到
Harbor中 327
8.1.3 通过rancher-compose启动
容器 329
8.1.4 在Jenkins中访问
Rancher 332
8.2 集群部署 333
8.2.1 部署多个实例 334
8.2.2 建立Load Balancer 335
8.2.3 持续部署 339
8.2.4 用nginx作为
Load Balancer 340
8.3 微服务部署 343
8.3.1 微服务部署需求 343
8.3.2 在Docker中实现日志
统一收集 345
8.3.3 filebeat与ELK的
集成 348
8.3.4 将Docker日志传递到
ELK 352
8.3.5 通过Docker日志收集
log-pilot 353
8.4 租户隔离 356
8.5 同一镜像的多环境发布 357
8.6 本章小结 360
第9章 网络方案 361
9.1 Docker网络 361
9.1.1 Host网络 361
9.1.2 Bridge网络 362
9.1.3 Container网络 363
9.1.4 none网络 363
9.2 Rancher网络方案 364
9.3 IPSec网络 366
9.3.1 IPSec的定义 366
9.3.2 Rancher的IPSec网络 367
9.4 VXLAN 368
9.4.1 什么是VXLAN 368
9.4.2 Rancher的VXLAN
驱动 369
9.5 本章小结 371
第 10章 服务管理 372
10.1 服务编排 372
10.1.1 Add Service 372
10.1.2 Command 373
10.1.3 Volumes 374
10.1.4 Networking 375
10.1.5 Security/Host 376
10.2 健康检查 379
10.3 蓝绿发布 380
10.4 灰度发布 381
10.5 本章小结 381
第 11章 镜像仓库规划 382
11.1 镜像仓库的需求 382
11.2 镜像仓库规划 382
11.3 复制Harbor镜像 383
11.3.1 分别准备好测试与生产
环境的镜像仓库 384
11.3.2 设置复制策略 384
11.4 本章小结 386
第 12章 存储方案 387
12.1 存储需求 387
12.1.1 文件存储需求 387
12.1.2 对象存储需求 387
12.1.3 块存储需求 388
12.1.4 分布式存储需求 388
12.2 常用方案 389
12.3 Rancher NFS示例 390
12.4 本章小结 394
第 13章 服务编排工具 395
13.1 Rancher 2.0 395
13.2 Rancher 2.0体验 397
13.3 本章小结 398