书籍详情

OpenStack CI/CD:原理与实践

OpenStack CI/CD:原理与实践

作者:董文娟 尚小冬 张军 著

出版社:机械工业出版社

出版时间:2018-11-01

ISBN:9787111611912

定价:¥69.00

购买这本书可以去
内容简介
  内容介绍 中兴通讯OPNFV开源团队不仅技术实力雄厚,而且一直致力于为OPNFV团队做贡献,团队的贡献值在社区里排名全球前3。本书由中兴OPNFV开源团队撰写,从系统管理员角度阐述了OpenStack CI/CD系统的组成、架构和原理,涉及从代码提交到测试、部署的各个环节,本书提到的 Gerrit 服务器管理、JJB、Zuul、Nodepool等内容国内都鲜有介绍,本书能让您快速了解这套系统。 全书共11章,在逻辑上分为4个部分: 部分(第1~2章) 基础篇 首先从宏观上对DevOps的发展、文化、工具和转型做了介绍,然后重点介绍了OpenStack CI/CD的概念、功能、工作流程和架构等,这是阅读本书的基础; 第二部分(第3~9章)技术篇 从系统管理员的视角,对OpenStack CI/CD中的每一项关键技术都进行了讲解,包括版本控制系统(Git)、代码评审系统(Gerrit)、持续集成系统(Jenkins)、门控系统(Zuul)、资源管理系统(NodePool)、日志服务器、日志分析系统、公共组件等。 第三部分(第10章) 经验篇 主要总结了团队在OpenStack CI/CD上积累的经验、方法和案例,以及如何进行裁剪、扩展和定制化修改。 第四部分(第11章) 优化篇 总结了当前解决方案中存在的不足和可行的优化方案,以及社区当前经历的变化和未来的演进路线。
作者简介
  作者介绍 董文娟 中兴通讯高级软件工程师,2015年参与开源社区,从事故障管理和根因分析等相关的工作,是OpenStack社区Vitrage项目和OPNFV社区Doctor项目的核心贡献者。一直从事企业内部CI/CD方面的研究,对CI/CD的基础设施搭建有丰富的实践经验,致力于研究构建企业级高性能、高可靠的DevOps平台的解决方案。 尚小冬 中兴通讯系统工程师,近10年通信系统产品平台研发经验,发表多篇专利。2015参与OpenStack、OPNFV和ONAP等开源社区,目前为OPNFV社区Parser项目PTL。对OpenStack各个核心组件和OpenStack CI/CD均有较深入的理解和深度实践,目前聚焦于Cloud Native相关产品的设计和实现。 张军 中兴通讯首席架构师,超过15年的通讯系统的设计和研发经验,发表专利约15篇。2014年起,带领团队进行NFV转型,负责从基于OpenStack的IaaS平台到基于Kubernetes的PaaS平台的架构设计。带领团队积极参与外部OpenStack、OPNFV和CNCF等外部社区贡献,在公司内承担开源布道的工作,推动公司研发转型。目前是中兴通讯在OPNFV的TSC代表和Pharos项目PTL。
目录
推荐序一
推荐序二
前言
第1章 DevOps 1
1.1 DevOps简介 1
1.1.1 软件开发模型 2
1.1.2 DevOps发展历史 2
1.1.3 DevOps循环 3
1.1.4 DevOps价值 4
1.2 DevOps与团队文化 4
1.3 DevOps工具链 6
1.4 DevOps转型 7
1.5 本章小结 8
第2章 CI/CD 9
2.1 CI/CD介绍 9
2.1.1 持续集成 9
2.1.2 持续交付 11
2.1.3 持续部署 12
2.1.4 CI/CD工作流 12
2.2 OpenStack CI/CD 14
2.2.1 当前CI/CD系统的形态 14
2.2.2 OpenStack CI/CD架构 15
2.2.3 CI/CD系统工作流程 18
2.3 本章小结 19
第3章 版本控制(Git)与代码评审 (Gerrit) 20
3.1 版本控制系统(Git) 20
3.1.1 Git仓库(repository) 21
3.1.2 Git分支(branch) 21
3.1.3 Git提交(commit) 21
3.1.4 Git标签(tag) 22
3.1.5 Git引用(refs) 22
3.2 代码评审工具(Gerrit) 23
3.2.1 架构 24
3.2.2 安装 25
3.2.3 项目配置 27
3.2.4 CI/CD系统对接 32
3.3 本章小结 33
第4章 持续集成系统(Jenkins) 34
4.1 Jenkins介绍 34
4.1.1 Jenkins是什么 34
4.1.2 Jenkins工作原理 35
4.1.3 部署Jenkins 37
4.1.4 插件管理 39
4.1.5 安全管理 44
4.1.6 创建Slave 46
4.1.7 创建Job 49
4.2 Jenkins Job Builder 57
4.2.1 安装JJB 57
4.2.2 配置JJB 57
4.2.3 使用JJB 58
4.2.4 JJB语法详解 58
4.3 Python Jenkins 70
4.3.1 安装python-jenkins 70
4.3.2 使用python-jenkins 70
4.4 本章小结 71
第5章 门控系统(Zuul) 72
5.1 Zuul组件介绍 73
5.1.1 Zuul工作原理 75
5.1.2 Zuul Server 76
5.1.3 Zuul Merger 79
5.1.4 Zuul Cloner 80
5.1.5 Zuul客户端 83
5.2 pipeline 83
5.2.1 并行测试 83
5.2.2 跨项目测试 85
5.2.3 跨项目依赖 87
5.3 连接器 88
5.3.1 Gerrit 89
5.3.2 SMTP 89
5.4 触发器 90
5.4.1 Gerrit 90
5.4.2 Timer 91
5.4.3 Zuul内部事件 92
5.5 报告器 92
5.5.1 Gerrit 92
5.5.2 SMTP 92
5.6 配置指导 93
5.6.1 pipeline 95
5.6.2 Jobs 101
5.6.3 Projects 103
5.6.4 Project Templates 104
5.7 本章小结 106
第6章 资源管理系统(Nodepool) 107
6.1 Nodepool简介 107
6.1.1 Nodepool引入的背景 107
6.1.2 Nodepool的功能 108
6.2 安装Nodepool 110
6.2.1 准备外部依赖服务 110
6.2.2 安装Nodepool 113
6.3 Nodepool的设计原理 113
6.3.1 资源管理(Nodepoold) 115
6.3.2 镜像管理(Nodepool-builder) 117
6.3.3 客户端(Nodepool Client) 119
6.4 配置Nodepool 129
6.4.1 云相关配置 129
6.4.2 Jenkins相关配置 137
6.4.3 镜像配置(diskimages) 140
6.4.4 其他配置 142
6.5 镜像管理系统 144
6.5.1 DIB介绍 145
6.5.2 DIB原理 146
6.5.3 定制镜像 155
6.6 本章小结 156
第7章 日志服务器 157
7.1 日志服务器的作用 157
7.2 安装和验证 158
7.3 使用方法 159
7.3.1 在Jenkins中使用日志服务器 159
7.3.2 如何获取日志文件 160
7.3.3 日志文件定期归档和清理 161
7.4 本章小结 161
第8章 日志分析系统 162
8.1 ELK Stack概况 162
8.2 日志分析系统架构 163
8.3 Log Pusher 165
8.3.1 处理流程 165
8.3.2 配置 165
8.4 Logstash Indexer 166
8.4.1 hello world 166
8.4.2 Logstash管道 167
8.4.3 管道配置 167
8.4.4 管道配置实例 169
8.5 Elasticsearch 171
8.5.1 面向文档的数据库 171
8.5.2 索引、检索和搜索 172
8.5.3 节点和集群 178
8.5.4 索引分片和索引副本 180
8.5.5 分布式特性 180
8.5.6 配置Elasticsearch 181
8.6 Kibana 183
8.6.1 让Kibana连接到
 Elasticsearch 183
8.6.2 Index Pattern 184
8.7 部署 186
8.8 本章小结 186
第9章 公共组件详解 187
9.1 任务分发系统(Gearman) 187
9.1.1 Gearman介绍 187
9.1.2 Gearman架构和工作原理 188
9.1.3 安装 189
9.1.4 利用Gearman实现Jenkins
 的HA 192
9.2 消息队列(ZeroMQ) 194
9.2.1 ZeroMQ介绍 194
9.2.2 ZeroMQ的特点 194
9.2.3 ZeroMQ的工作模式 195
9.2.4 安装 196
9.2.5 应用示例 196
9.2.6 ZeroMQ在OpenStack CI/CD
 系统中的作用 199
9.3 分布式协调服务(ZooKeeper) 199
9.3.1 ZooKeeper介绍 199
9.3.2 ZooKeeper架构和工作原理 200
9.3.3 ZooKeeper的安装和配置 203
9.3.4 ZooKeeper典型应用 205
9.3.5 Nodepool中使用ZooKeeper示例 208
9.4 本章小结 209
第10章 社区CI/CD实践 210
10.1 Puppet简介 210
10.1.1 概述 210
10.1.2 基础架构 214
10.2 单机部署 216
10.2.1 前期准备 216
10.2.2 安装部署 217
10.3 多节点部署 231
10.3.1 IaC 23
猜您喜欢

读书导航