《大规模组织DevOps实践》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:陈能技,付勇编著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2018
  • ISBN:9787121351365
  • 页数:302 页
图书介绍:DevOps是开发运维一体化的软件工程思想,DevOps尝试打破部门墙,构建一个协同的IT建设运行环境,通过工具链形成数据关联的规范化、规模化的软件持续交付流水线,从而助力企业业务的敏捷发展。本书用9章内容,结合项目实战案例和业界主流工具,从思想、实践方法、工具技术、案例等方面阐述了DevOps在传统规模化IT组织中实施落地的方法。本书适合IT主管、项目经理、开发、测试、配置管理、运维等IT从业人员阅读。

第一部分 思想篇 2

第1章 软件工厂 2

1.1 软件的生产力 2

1.2 软件工厂——软件的标准化生产 4

1.2.1 标准化生产模式需要一个集成底座——PaaS 4

1.2.2 标准化软件生产流水线 6

第2章 DevOps思想 8

2.1 DevOps思想与生产流水线 8

2.1.1 DevOps的起源 8

2.1.2 DevOps对软件工厂的启发 9

2.1.3 从DevOps实践原则看软件生产工艺化水平的提高 10

2.1.4 软件工厂模式下对生产工具发展的促进作用 10

2.2 从瀑布到敏捷 11

2.2.1 传统项目管理问题 12

2.2.2 向互联网企业学习的“敏捷” 13

2.2.3 敏捷的起源 14

2.2.4 瀑布模型 15

2.2.5 传统企业不可能全盘敏捷化 15

2.2.6 从版本上线过程管理看敏捷与瀑布 16

2.2.7 敏捷的前提是“不敏捷” 17

2.3 敏捷与DevOps核心思想 18

2.3.1 增量开发与测试 18

2.3.2 持续集成与持续交付 19

2.3.3 自动化 21

2.4 规模化的敏捷 22

2.4.1 从敏捷项目管理到敏捷项目集群管理 22

2.4.2 企业规模化敏捷思想 24

2.4.3 规模化敏捷方法——SAFe 25

2.4.4 规模化敏捷开发的最佳实践 28

2.5 企业规模化敏捷与软件工厂 31

2.5.1 软件生产环境 31

2.5.2 软件工厂生产环境管理——开发测试云 33

2.5.3 整合环境仿真 37

2.5.4 不可忽略的办公环境因素 43

2.5.5 软件工厂质量检测——深度自动化测试装置 45

第二部分 实践方法篇 49

第3章 DevOps体系的建立 49

3.1 构建 DevOps流水线,打通开发—测试—运维持续交付通道 49

3.2 敏捷开发知识体系 50

3.3 Scrum框架 51

3.3.1 Scrum的3类角色 52

3.3.2 Scrum的3份工件 52

3.3.3 Scrum的5项活动 53

3.3.4 Scrum的5个价值观 54

3.4 敏捷、DevOps与协作 54

3.5 开发域DevOps实践 55

3.5.1 敏捷需求 55

3.5.2 传统需求分析 55

3.5.3 敏捷需求方法 57

3.5.4 面向敏捷的架构设计 61

3.5.5 向微服务架构迁移的基本做法 63

3.5.6 向微服务架构迁移的低风险演进方法 64

3.5.7 微服务架构设计模式 74

3.5.8 开发敏捷 77

3.5.9 分支策略 77

3.5.10 依赖包管理 79

3.5.11 技术债务 80

3.5.12 技术债务的形成 80

3.5.13 技术债务的分类 83

3.5.14 技术债务与质量投资 84

3.5.15 技术债务处理方法 85

3.5.16 持续集成 88

3.5.17 持续集成最佳实践 91

3.5.18 持续集成最佳实践——持续编译 92

3.5.19 持续集成最佳实践——持续代码检查 92

3.5.20 持续集成最佳实践——持续测试 93

3.5.21 持续集成最佳实践——持续部署 94

3.5.22 持续集成最佳实践——持续报告 94

3.5.23 企业持续集成实施方法 95

3.5.24 持续集成实施案例介绍 96

3.6 测试域DevOps实践 96

3.6.1 敏捷测试环境管理 96

3.6.2 业界关于测试环境管理的实践 98

3.6.3 测试如何纳入持续集成体系中 100

3.6.4 敏捷测试方法与传统测试方法的不同之处 105

3.6.5 敏捷测试人员的定义 106

3.6.6 敏捷测试过程管理 107

3.6.7 敏捷测试团队管理 112

3.7 运维域DevOps实践 113

3.7.1 敏捷基础设施 113

3.7.2 自动化部署 113

3.7.3 自动化部署的要素 114

3.7.4 部署常见场景及问题 115

3.7.5 部署服务工具链 116

3.7.6 资源部署 117

3.7.7 自动化资源部署 117

3.7.8 应用部署 119

3.7.9 应用交付容器化 120

3.7.10 应用容器化改造 121

3.7.11 不中断服务的部署方法 121

3.7.12 敏捷运维 125

第4章 DevOps的有效实践 129

4.1 敏捷模式与传统企业研发模式的结合 129

4.2 敏捷模式与传统ISO、CMMI标准规范的兼容 131

4.2.1 需求获取 131

4.2.2 方案制定(或技术评估) 132

4.2.3 生产任务排期 135

4.2.4 Sprint 0迭代前准备 135

4.2.5 Sprint 0——基础框架搭建 143

4.2.6 迭代实施 143

4.2.7 验收测试 154

4.2.8 投产 155

4.3 敏捷与DevOps基础实践 155

4.3.1 SRE与发布工程 155

4.3.2 配置管理——版本管理 161

4.3.3 配置管理——发布包制作规范 165

4.3.4 缺陷管理 167

4.3.5 缺陷预防 168

4.3.6 迭代周期的时间 169

4.4 敏捷与DevOps反模式 170

4.4.1 急功近利 170

4.4.2 跨部门协作的浪费 172

4.4.3 持续集成“坏味道” 176

4.4.4 手工完成所有部署 178

4.4.5 开发与运维各一套自动化部署系统 178

4.4.6 重建数据库比较困难 179

第三部分 工具技术篇 182

第5章 精准测试技术 182

5.1 什么是精准测试技术 182

5.1.1 传统测试方法面临大型软件时的问题与瓶颈 182

5.1.2 传统白盒测试方法的问题 183

5.1.3 开发团队和测试团队协同工作难 183

5.1.4 精准测试方法解决的问题 184

5.1.5 精准测试的工作模式与工作原理 185

5.2 精准测试云平台 186

5.2.1 测试复杂度分析 186

5.2.2 测试复杂度种类 187

5.2.3 覆盖率分析 188

5.2.4 软件内部逻辑结构可视化 192

5.2.5 函数列表功能说明 196

5.2.6 覆盖率可视化 197

5.2.7 动态实时测试监控 199

5.2.8 缺陷管理系统 199

5.2.9 Bug与崩溃代码级捕获 201

5.2.10 双向追溯 202

5.2.11 多版本与累计覆盖率 205

5.2.12 智能的回归测试用例选取分析算法 206

5.2.13 测试用例的聚类分析算法 207

5.3 精准测试与度量分析 208

5.3.1 获取度量信息 208

5.3.2 项目度量指标 208

5.3.3 项目汇总 211

5.3.4 测试用例——按日趋势图 213

5.3.5 测试用例——测试用例列表 215

5.3.6 测试人、机 218

5.3.7 测试缺陷 ——Bug信息汇总 219

5.3.8 测试缺陷——Bug详细列表 220

5.3.9 覆盖率——按日增长趋势图 221

5.3.10 函数、类、文件覆盖率统计 223

5.3.11 函数、类、文件复杂度和覆盖率关系图 223

5.3.12 覆盖率列表 224

5.3.13 函数、类、包复杂度统计 226

5.3.14 测试覆盖率漏洞的智能分析 227

第6章 双模发布管理平台的设计与应用 229

6.1 产生背景 229

6.1.1 传统企业数字化转型浪潮下的双模挑战 229

6.1.2 双模发布管理平台 230

6.2 双模发布管理平台设计 231

6.2.1 设计思路 231

6.2.2 架构设计 233

6.3 案例及功能说明 234

6.3.1 案例背景介绍 235

6.3.2 痛点诊断及建设目标 236

6.3.3 功能说明 236

第7章 整合环境仿真技术 252

7.1 服务虚拟化技术 252

7.2 Lisa解决方案特色 253

7.3 采用Lisa方案的预期效果 254

7.4 Lisa实施和服务模式举例 256

第8章 容器技术 259

8.1 容器与Docker 259

8.2 应用容器化 261

8.3 Dockerfile命令详解 266

8.4 Dockerfile使用建议 270

8.5 应用上云容器 271

8.5.1 上云应用的场景 271

8.5.2 软件和硬件的限制 272

8.5.3 应用架构的限制 272

8.5.4 应用上云建议 274

8.6 容器化应用开发规范 275

8.6.1 应用预编译 275

8.6.2 热点数据缓存 277

8.6.3 应用无状态化 277

8.6.4 应用上配置的定时任务需与应用分离 278

8.6.5 应用使用固定的服务监听端口 278

8.6.6 主机名和服务端口获取 278

8.6.7 数据库连接池 279

8.6.8 应用日志 279

8.6.9 应用中间件选型 279

8.6.10 应用环境配置规范 280

8.6.11 硬件负载 280

8.6.12 不要在容器中存储数据 281

8.6.13 不要发布两个应用 281

8.6.14 清除不必要的包和文件 281

8.6.15 不要在容器中运行多个进程 281

8.6.16 不要在镜像中存储凭据、使用环境变量 281

8.6.17 使用非root用户运行 281

8.6.18 不要依赖IP地址 282

8.6.19 服务间接口调用使用TCP和HTTP 282

8.7 容器化应用迁移实施方案 282

8.7.1 应用迁移的流程 282

8.7.2 信息收集和业务分析 284

8.7.3 容器镜像制作 289

8.7.4 功能验证 291

第四部分 案例篇 294

第9章 持续集成实践案例 294

9.1 项目背景 294

9.2 解决方案 295

9.2.1 持续集成简介 295

9.2.2 应用持续集成解决某局的开发项目问题 296

9.2.3 持续集成基础技术框架 297

9.2.4 方案优势 302