书籍详情
企业级DevOps技术与工具实战
作者:刘淼 张笑梅 编著 著
出版社:电子工业出版社
出版时间:2020-03-01
ISBN:9787121372469
定价:¥99.00
购买这本书可以去
内容简介
本书系统全面地介绍了DevOps 的现状趋势、基础理论和实践方法,对DevOps 实践中的架构设计、开发、测试、部署等各阶段所需践行的原则和方法进行了总结,并提出相关建议。以实战为中心,对DevOps实践中的常用工具进行了分类介绍和特性分析,并结合相关示例进行了使用说明和演示。
作者简介
刘淼 资深架构师,PMP、OCP、CSM、HPE University讲师,EXIN DevOps Professional与DevOps Master认证讲师,曾担任HPE GD China DevOps & Agile Leader,帮助企业级客户提供DevOps咨询培训以及实施指导。熟悉通信和金融领域,有超过10年金融外汇行业的架构设计、开发、维护经验,在十几年的IT从业生涯中拥有了软件开发设计领域接近全生命周期的经验和知识积累。CSDN博客专家,博客地址为https://liumiaocn.blog.csdn.net/。张笑梅 IT从业15年,其中含5年欧美外包经验,10多年国内行业咨询服务与解决方案经验,涉及电信、金融、航空等领域。先后服务于HPE、惠普、毕博等公司,曾负责过大中型项目实施开发与管理工作,担任过产品经理、咨询顾问、培训讲师及教练等职位。目前致力于项目和组织的敏捷与DevOps转型实施和培训。EXIN Agile Master、DevOps Professional、Lean IT、VeriSM、TSP、PSP模型认证讲师,凤凰沙盘/火星沙盘教练,CMMI 2.0 评估员,ISO 9K内审员,拥有CSM、SAFE、SAFE Advance Master、ITIL、SIGMA GB认证。
目录
第1 章 DevOps 概述 1
1.1 什么是DevOps 2
1.2 DevOps 能带来什么 3
1.3 DevOps 的现状 5
1.4 常见的理解误区 10
第2 章 DevOps 基础理论 12
2.1 敏捷理论体系解读 12
2.1.1 敏捷背景介绍 12
2.1.2 三大支柱解读 13
2.1.3 四大核心价值观及解读 14
2.1.4 12 条原则及解读 15
2.1.5 Scrum 敏捷框架 17
2.2 敏捷与DevOps 24
2.3 精益理论体系解读 25
2.3.1 精益产生背景 25
2.3.2 精益IT 及其原则 25
2.4 精益与DevOps 29
2.4.1 节拍 29
2.4.2 交货时间 29
2.4.3 度量指标 29
2.4.4 浪费种类 30
2.4.5 安灯拉绳 31
2.4.6 看板 31
2.4.7 改善 32
2.4.8 挑战与对策 33
2.5 实践案例分析 33
第3 章 构建企业的DevOps 文化 36
3.1 对失败友好的架构与环境 36
3.1.1 对失败友好的架构与环境的特点 37
3.1.2 对失败友好的架构与环境的设计原则 37
3.1.3 当失败遇见复杂系统 40
3.1.4 保障复杂系统的安全 41
3.2 以高度信任为基石的企业文化 42
3.2.1 传统制造业的惩罚文化 43
3.2.2 聚焦改善的免责事后分析 44
3.2.3 多角度的知识与经验分享 45
3.3 持续学习与持续试验 49
3.3.1 通过内部与外部会议促进人员技术成长 50
3.3.2 向生产环境中引入故障来增强弹性 50
3.3.3 持续学习与持续试验的建议 51
3.4 常见的理解误区 52
3.5 实践经验研究 54
第4 章 设计和优化软件全生命周期相关流程 56
4.1 持续评估与DevOps 成熟度模型 56
4.2 持续规划的评估策略 57
4.3 持续集成的策略与原则 58
4.4 持续测试的策略与原则 58
4.5 持续部署的策略与原则 59
4.6 持续监控的策略与原则 59
4.7 持续运维的策略与原则 60
4.8 持续反馈的策略与机制 60
4.9 常见的理解误区和实践经验 60
第5 章 DevOps 实践中的设计与开发 62
5.1 传统架构的痛点 62
5.2 DevOps 中的架构设计 62
5.2.1 康威定律的影响 63
5.2.2 耦合设计原则 64
5.2.3 独立部署原则 66
5.2.4 自动部署策略 66
5.2.5 12 要素 68
5.2.6 应用扩容机制 68
5.3 环境一致性 69
5.3.1 环境一致性的重要性 69
5.3.2 常用工具介绍 69
5.4 版本管理实践 71
5.4.1 版本管理的痛点 71
5.4.2 常用工具介绍 74
5.4.3 实践经验总结 75
5.5 制品管理实践 75
5.6 代码质量分析 77
第6 章 DevOps 实践中的测试 78
6.1 传统测试及其痛点 78
6.2 测试驱动开发 79
6.3 测试分类 81
6.4 测试策略 83
6.4.1 测试团队结构重组策略:测试团队去中心化的应对策略 84
6.4.2 测试促进架构重构策略:根据测试的反馈不断优化系统架构 84
6.4.3 测试团队技能提升策略:逐步推动测试团队知识与技能的重建 84
6.4.4 各阶段测试策略:分阶段使用不同方式保证系统功能 85
6.5 自动化测试 85
6.5.1 自动化测试现状 86
6.5.2 做还是不做:决策因素 86
6.5.3 自动化测试推行策略 88
6.5.4 自动化测试工具选型 89
6.6 实践经验研究 90
6.6.1 常见的实践误区 90
6.6.2 实践案例 91
第7 章 DevOps 实践中的部署 101
7.1 部署方式 101
7.1.1 蓝绿部署 102
7.1.2 金丝雀部署 103
7.2 部署依赖 104
7.2.1 架构的影响 104
7.2.2 基础设施的影响 104
7.3 常用工具 106
7.4 实践经验总结 107
第8 章 DevOps 工具选型:开源与闭源 108
8.1 通用选型指标 108
8.1.1 系统限制要素 109
8.1.2 可用性 109
8.1.3 交互性 110
8.1.4 市场状况 110
8.1.5 功能可裁剪度 111
8.2 开源/闭源选型指标 111
8.2.1 成本 112
8.2.2 更新频度 112
8.2.3 改善速度 113
8.2.4 集成方式 113
8.2.5 文档说明 114
8.3 选型模型介绍 115
8.4 实践经验总结 115
第9 章 DevOps 工具:需求管理与缺陷追踪 117
9.1 常用工具介绍 117
9.1.1 JIRA 117
9.1.2 Redmine 118
9.1.3 Trac 120
9.1.4 Bugzilla 121
9.2 详细介绍:Redmine 121
9.2.1 安装Redmine 121
9.2.2 设定Redmine 125
9.2.3 REST API 操作 130
9.3 需求管理工具选型比较 137
第10 章 DevOps 工具:持续集成 139
10.1 常用工具介绍 139
10.1.1 Jenkins 139
10.1.2 Apache Continuum 140
10.1.3 CruiseControl 141
10.2 详细介绍:Jenkins 141
10.2.1 安装Jenkins 142
10.2.2 设定Jenkins 144
10.3 持续集成实践 146
10.3.1 Jenkins+GitLab 147
10.3.2 Jenkins+Docker 150
10.3.3 Jenkins pipeline 157
第11 章 DevOps 工具:版本管理 169
11.1 常用工具介绍 169
11.1.1 RCS 169
11.1.2 SVN 179
11.1.3 Git 180
11.1.4 GitLab 181
11.2 详细介绍:GitLab 与开发模型 182
11.2.1 Git Flow 分支模型 182
11.2.2 GitLab+Git Flow 185
11.2.3 GitHub Flow 分支模型 200
11.2.4 GitLab+GitHub Flow 201
11.3 实践经验总结 205
第12 章 DevOps 工具:构建工具 208
12.1 常用工具介绍 208
12.1.1 Make 208
12.1.2 Maven 209
12.1.3 Gradle 209
12.1.4 MSBuild 210
12.2 详细介绍:Maven 211
12.2.1 安装Maven 211
12.2.2 Maven 的使用 211
12.3 详细介绍:Gradle 214
12.3.1 安装Gradle 214
12.3.2 Gradle 的使用 214
12.4 实践经验总结 221
第13 章 DevOps 工具:代码质量 223
13.1 常用工具介绍 223
13.1.1 SonarQube 223
13.1.2 Frotify 224
13.1.3 Coverity 225
13.1.4 FindBugs 225
13.2 详细介绍:SonarQube 226
13.2.1 安装SonarQube 226
13.2.2 SonarQube 基础 231
13.2.3 SonarQube 使用方式 239
13.3 代码质量检测实践 244
13.3.1 代码扫描与概要信息获取 245
13.3.2 指标信息的获取 249
13.3.3 测试指标与事前准备 259
13.3.4 测试指标实践 261
13.3.5 项目与质量规约管理 272
第14 章 DevOps 工具:运维自动化 277
14.1 常用工具介绍 277
14.1.1 Ansible 277
14.1.2 Chef 277
14.1.3 Puppet 278
14.1.4 Saltstack 279
14.2 常用工具的使用 279
14.2.1 Ansible 的安装与使用 279
14.2.2 Chef 的安装与使用 280
14.2.3 Puppet 的安装与使用 287
14.2.4 Saltstack 的安装与使用 289
第15 章 DevOps 工具:测试自动化 292
15.1 常用工具介绍 292
15.1.1 xUnit 292
15.1.2 Selenium 293
15.1.3 Apache JMeter 293
15.1.4 Robot Framework 293
15.2 详细介绍:Robot Framework 294
15.2.1 准备Python 294
15.2.2 安装PIP 294
15.2.3 安装Robot Framework 295
15.3 自动化测试工具的使用 296
15.3.1 使用Robot Framework 进行测试 296
15.3.2 使用Selenium 进行测试 300
第16 章 DevOps 工具:日志监控 303
16.1 常用工具介绍 303
16.1.1 ELK 303
16.1.2 Splunk 306
16.1.3 Hygieia 308
16.2 详细介绍:Hygieia 311
16.2.1 安装配置 311
16.2.2 Hygieia 服务的启动方式和说明 312
16.2.3 使用说明 314
16.3 实践经验总结 315
第17 章 DevOps 工具:运维监控 316
17.1 常用工具介绍 316
17.1.1 Zabbix 316
17.1.2 Nagios 319
17.1.3 Grafana 323
17.1.4 InfluxDB 325
17.2 详细介绍:InfluxDB 326
17.3 实践中的注意事项及原则 330
第18 章 DevOps 工具:安全监控 331
18.1 常用工具介绍 331
18.1.1 Clair 331
18.1.2 Anchore 336
18.1.3 ClamAV 339
18.2 详细介绍:安全扫描 344
18.2.1 Clair 镜像安全扫描 344
18.2.2 Anchore 镜像扫描 348
18.2.3 ClamAV 病毒扫描 349
18.3 实践经验总结 350
第19 章 DevOps 工具:容器化 352
19.1 常用工具介绍 352
19.1.1 Docker 352
19.1.2 docker-compose 356
19.1.3 Kubernetes 357
19.2 详细介绍:Docker 357
19.2.1 问题诊断 357
19.2.2 镜像操作与容器操作 365
19.2.3 其他操作 381
19.3 详细介绍:Kubernetes 384
19.3.1 管理资源 385
19.3.2 故障排查 390
19.3.3 故障应对 397
第20 章 DevOps 工具:镜像私库 407
20.1 常用工具介绍 407
20.1.1 Registry 407
20.1.2 Harbor 409
20.1.3 Nexus 414
20.2 详细介绍:Harbor 420
第21 章 DevOps 工具:二进制制品管理 422
21.1 常用工具介绍 424
21.1.1 Apache Archiva 424
21.1.2 Artifactory 424
21.2 详细介绍:Nexus 425
21.2.1 环境设定:Maven 私库搭建 425
21.2.2 私库使用:准备与设定Maven 427
21.2.3 私库使用:设定项目的pom 文件 428
21.2.4 私库使用:执行maven 操作 429
21.3 实践经验总结 430
第22 章 DevOps 实践中的安全机制 431
22.1 安全调查现状 431
22.2 设计安全机制的整体策略 432
22.3 与安全工具的融合 436
22.4 持续评估和改善 438
22.5 实践案例分析 439
第23 章 基于微服务和容器化的高可用架构 440
23.1 高可用架构设计 440
23.2 Kubernetes+微服务+DevOps 的实践思路 443
23.2.1 整体原则 443
23.2.2 多层级的高可用性 444
23.2.3 专注于业务开发的微服务 445
23.2.4 保驾护航的DevOps 446
1.1 什么是DevOps 2
1.2 DevOps 能带来什么 3
1.3 DevOps 的现状 5
1.4 常见的理解误区 10
第2 章 DevOps 基础理论 12
2.1 敏捷理论体系解读 12
2.1.1 敏捷背景介绍 12
2.1.2 三大支柱解读 13
2.1.3 四大核心价值观及解读 14
2.1.4 12 条原则及解读 15
2.1.5 Scrum 敏捷框架 17
2.2 敏捷与DevOps 24
2.3 精益理论体系解读 25
2.3.1 精益产生背景 25
2.3.2 精益IT 及其原则 25
2.4 精益与DevOps 29
2.4.1 节拍 29
2.4.2 交货时间 29
2.4.3 度量指标 29
2.4.4 浪费种类 30
2.4.5 安灯拉绳 31
2.4.6 看板 31
2.4.7 改善 32
2.4.8 挑战与对策 33
2.5 实践案例分析 33
第3 章 构建企业的DevOps 文化 36
3.1 对失败友好的架构与环境 36
3.1.1 对失败友好的架构与环境的特点 37
3.1.2 对失败友好的架构与环境的设计原则 37
3.1.3 当失败遇见复杂系统 40
3.1.4 保障复杂系统的安全 41
3.2 以高度信任为基石的企业文化 42
3.2.1 传统制造业的惩罚文化 43
3.2.2 聚焦改善的免责事后分析 44
3.2.3 多角度的知识与经验分享 45
3.3 持续学习与持续试验 49
3.3.1 通过内部与外部会议促进人员技术成长 50
3.3.2 向生产环境中引入故障来增强弹性 50
3.3.3 持续学习与持续试验的建议 51
3.4 常见的理解误区 52
3.5 实践经验研究 54
第4 章 设计和优化软件全生命周期相关流程 56
4.1 持续评估与DevOps 成熟度模型 56
4.2 持续规划的评估策略 57
4.3 持续集成的策略与原则 58
4.4 持续测试的策略与原则 58
4.5 持续部署的策略与原则 59
4.6 持续监控的策略与原则 59
4.7 持续运维的策略与原则 60
4.8 持续反馈的策略与机制 60
4.9 常见的理解误区和实践经验 60
第5 章 DevOps 实践中的设计与开发 62
5.1 传统架构的痛点 62
5.2 DevOps 中的架构设计 62
5.2.1 康威定律的影响 63
5.2.2 耦合设计原则 64
5.2.3 独立部署原则 66
5.2.4 自动部署策略 66
5.2.5 12 要素 68
5.2.6 应用扩容机制 68
5.3 环境一致性 69
5.3.1 环境一致性的重要性 69
5.3.2 常用工具介绍 69
5.4 版本管理实践 71
5.4.1 版本管理的痛点 71
5.4.2 常用工具介绍 74
5.4.3 实践经验总结 75
5.5 制品管理实践 75
5.6 代码质量分析 77
第6 章 DevOps 实践中的测试 78
6.1 传统测试及其痛点 78
6.2 测试驱动开发 79
6.3 测试分类 81
6.4 测试策略 83
6.4.1 测试团队结构重组策略:测试团队去中心化的应对策略 84
6.4.2 测试促进架构重构策略:根据测试的反馈不断优化系统架构 84
6.4.3 测试团队技能提升策略:逐步推动测试团队知识与技能的重建 84
6.4.4 各阶段测试策略:分阶段使用不同方式保证系统功能 85
6.5 自动化测试 85
6.5.1 自动化测试现状 86
6.5.2 做还是不做:决策因素 86
6.5.3 自动化测试推行策略 88
6.5.4 自动化测试工具选型 89
6.6 实践经验研究 90
6.6.1 常见的实践误区 90
6.6.2 实践案例 91
第7 章 DevOps 实践中的部署 101
7.1 部署方式 101
7.1.1 蓝绿部署 102
7.1.2 金丝雀部署 103
7.2 部署依赖 104
7.2.1 架构的影响 104
7.2.2 基础设施的影响 104
7.3 常用工具 106
7.4 实践经验总结 107
第8 章 DevOps 工具选型:开源与闭源 108
8.1 通用选型指标 108
8.1.1 系统限制要素 109
8.1.2 可用性 109
8.1.3 交互性 110
8.1.4 市场状况 110
8.1.5 功能可裁剪度 111
8.2 开源/闭源选型指标 111
8.2.1 成本 112
8.2.2 更新频度 112
8.2.3 改善速度 113
8.2.4 集成方式 113
8.2.5 文档说明 114
8.3 选型模型介绍 115
8.4 实践经验总结 115
第9 章 DevOps 工具:需求管理与缺陷追踪 117
9.1 常用工具介绍 117
9.1.1 JIRA 117
9.1.2 Redmine 118
9.1.3 Trac 120
9.1.4 Bugzilla 121
9.2 详细介绍:Redmine 121
9.2.1 安装Redmine 121
9.2.2 设定Redmine 125
9.2.3 REST API 操作 130
9.3 需求管理工具选型比较 137
第10 章 DevOps 工具:持续集成 139
10.1 常用工具介绍 139
10.1.1 Jenkins 139
10.1.2 Apache Continuum 140
10.1.3 CruiseControl 141
10.2 详细介绍:Jenkins 141
10.2.1 安装Jenkins 142
10.2.2 设定Jenkins 144
10.3 持续集成实践 146
10.3.1 Jenkins+GitLab 147
10.3.2 Jenkins+Docker 150
10.3.3 Jenkins pipeline 157
第11 章 DevOps 工具:版本管理 169
11.1 常用工具介绍 169
11.1.1 RCS 169
11.1.2 SVN 179
11.1.3 Git 180
11.1.4 GitLab 181
11.2 详细介绍:GitLab 与开发模型 182
11.2.1 Git Flow 分支模型 182
11.2.2 GitLab+Git Flow 185
11.2.3 GitHub Flow 分支模型 200
11.2.4 GitLab+GitHub Flow 201
11.3 实践经验总结 205
第12 章 DevOps 工具:构建工具 208
12.1 常用工具介绍 208
12.1.1 Make 208
12.1.2 Maven 209
12.1.3 Gradle 209
12.1.4 MSBuild 210
12.2 详细介绍:Maven 211
12.2.1 安装Maven 211
12.2.2 Maven 的使用 211
12.3 详细介绍:Gradle 214
12.3.1 安装Gradle 214
12.3.2 Gradle 的使用 214
12.4 实践经验总结 221
第13 章 DevOps 工具:代码质量 223
13.1 常用工具介绍 223
13.1.1 SonarQube 223
13.1.2 Frotify 224
13.1.3 Coverity 225
13.1.4 FindBugs 225
13.2 详细介绍:SonarQube 226
13.2.1 安装SonarQube 226
13.2.2 SonarQube 基础 231
13.2.3 SonarQube 使用方式 239
13.3 代码质量检测实践 244
13.3.1 代码扫描与概要信息获取 245
13.3.2 指标信息的获取 249
13.3.3 测试指标与事前准备 259
13.3.4 测试指标实践 261
13.3.5 项目与质量规约管理 272
第14 章 DevOps 工具:运维自动化 277
14.1 常用工具介绍 277
14.1.1 Ansible 277
14.1.2 Chef 277
14.1.3 Puppet 278
14.1.4 Saltstack 279
14.2 常用工具的使用 279
14.2.1 Ansible 的安装与使用 279
14.2.2 Chef 的安装与使用 280
14.2.3 Puppet 的安装与使用 287
14.2.4 Saltstack 的安装与使用 289
第15 章 DevOps 工具:测试自动化 292
15.1 常用工具介绍 292
15.1.1 xUnit 292
15.1.2 Selenium 293
15.1.3 Apache JMeter 293
15.1.4 Robot Framework 293
15.2 详细介绍:Robot Framework 294
15.2.1 准备Python 294
15.2.2 安装PIP 294
15.2.3 安装Robot Framework 295
15.3 自动化测试工具的使用 296
15.3.1 使用Robot Framework 进行测试 296
15.3.2 使用Selenium 进行测试 300
第16 章 DevOps 工具:日志监控 303
16.1 常用工具介绍 303
16.1.1 ELK 303
16.1.2 Splunk 306
16.1.3 Hygieia 308
16.2 详细介绍:Hygieia 311
16.2.1 安装配置 311
16.2.2 Hygieia 服务的启动方式和说明 312
16.2.3 使用说明 314
16.3 实践经验总结 315
第17 章 DevOps 工具:运维监控 316
17.1 常用工具介绍 316
17.1.1 Zabbix 316
17.1.2 Nagios 319
17.1.3 Grafana 323
17.1.4 InfluxDB 325
17.2 详细介绍:InfluxDB 326
17.3 实践中的注意事项及原则 330
第18 章 DevOps 工具:安全监控 331
18.1 常用工具介绍 331
18.1.1 Clair 331
18.1.2 Anchore 336
18.1.3 ClamAV 339
18.2 详细介绍:安全扫描 344
18.2.1 Clair 镜像安全扫描 344
18.2.2 Anchore 镜像扫描 348
18.2.3 ClamAV 病毒扫描 349
18.3 实践经验总结 350
第19 章 DevOps 工具:容器化 352
19.1 常用工具介绍 352
19.1.1 Docker 352
19.1.2 docker-compose 356
19.1.3 Kubernetes 357
19.2 详细介绍:Docker 357
19.2.1 问题诊断 357
19.2.2 镜像操作与容器操作 365
19.2.3 其他操作 381
19.3 详细介绍:Kubernetes 384
19.3.1 管理资源 385
19.3.2 故障排查 390
19.3.3 故障应对 397
第20 章 DevOps 工具:镜像私库 407
20.1 常用工具介绍 407
20.1.1 Registry 407
20.1.2 Harbor 409
20.1.3 Nexus 414
20.2 详细介绍:Harbor 420
第21 章 DevOps 工具:二进制制品管理 422
21.1 常用工具介绍 424
21.1.1 Apache Archiva 424
21.1.2 Artifactory 424
21.2 详细介绍:Nexus 425
21.2.1 环境设定:Maven 私库搭建 425
21.2.2 私库使用:准备与设定Maven 427
21.2.3 私库使用:设定项目的pom 文件 428
21.2.4 私库使用:执行maven 操作 429
21.3 实践经验总结 430
第22 章 DevOps 实践中的安全机制 431
22.1 安全调查现状 431
22.2 设计安全机制的整体策略 432
22.3 与安全工具的融合 436
22.4 持续评估和改善 438
22.5 实践案例分析 439
第23 章 基于微服务和容器化的高可用架构 440
23.1 高可用架构设计 440
23.2 Kubernetes+微服务+DevOps 的实践思路 443
23.2.1 整体原则 443
23.2.2 多层级的高可用性 444
23.2.3 专注于业务开发的微服务 445
23.2.4 保驾护航的DevOps 446
猜您喜欢