×
暂无评论
图文详情
  • ISBN:9787121422027
  • 装帧:一般胶版纸
  • 册数:暂无
  • 重量:暂无
  • 开本:16开
  • 页数:260
  • 出版时间:2021-10-01
  • 条形码:9787121422027 ; 978-7-121-42202-7

本书特色

√ 系统剖析软件交付思维方式、过程和技术活动,集作者多年工作与研究之大成 √ 面向数字化转型时代,聚焦软件交付过程的标准化、自动化、自助化和可视化。 √ 10大策略,浓缩来自大型互联网及金融企业多年DevOps优化与业务敏捷实践。 √ 少见地针对软件交付多元化发展及企业组织级过程改进提供有益的指导和参考。 √ 不在孤立强调质量和效率,主张一切为了业务的成功,紧扣时间、效果和效率。 √ 内涵深刻、外延宽广,同时适合研发人员、产品经理、质量人员、团队管理者。

内容简介

软件交付过程是指在编程序改代码之后,直到将软件发布给用户使用之前的一系列活动,如提交、集成、构建、部署、测试等。本书作为通识类图书,对软件交付过程的各个方面进行了全面综合的介绍。这包括三部分内容:第1部分,介绍在研究软件交付过程时常见的思路和思考框架;第2部分,梳理软件交付的总体过程;第3部分,考查软件交付过程中的各个具体活动。总的来说,本书提供了一种类似于对人进行体检的方法,对特定软件产品的交付过程进行全方位的调研,可以根据其所在的业务领域、当前采用的技术栈、使用的工具、流程和方法等实际情况,找出当前*突出、*值得改进的问题。

目录


第1部分 思维方式

第1章 本书要解决什么问题 2

1.1 提供一种系统全面的方法 2

1.2 分析软件交付过程 3

1.3 软件交付过程包括三类事情 4

1.4 软件交付不是按时间阶段或角色划分出来的 4

1.5 本书本质上是讲述软件交付这门学科 5

1.6 本书分成三个部分讲述 5

第2章 我们要追求什么 6

2.1 一切为了业务的成功 6

2.2 小步快跑 7

2.3 软件实现侧该追求什么目标 8

2.4 软件交付过程追求的目标 10

第3章 几十年来的探索 12

3.1 软件工程 12

3.1.1 软件危机 12

3.1.2 工程化 13

3.2 敏捷 14

3.2.1 敏捷的理念 14

3.2.2 敏捷的实践 15

3.3 精益 16

3.3.1 起源于制造业的精益思想 16

3.3.2 把精益应用于软件开发 17

3.4 持续集成 18

3.4.1 持续集成是什么 18

3.4.2 为什么要持续集成 19

3.4.3 如何做到持续集成 19

3.5 持续交付 20

3.5.1 包括所有质量验证工作 20

3.5.2 比较频繁地发布上线 21

3.5.3 持续部署 22

3.6 DevOps 22

3.6.1 DevOps的诞生 22

3.6.2 DevOps三步工作法 23

3.6.3 DevOps落地实践 23

3.7 技术方面的演进 24

3.7.1 软件架构 24

3.7.2 部署运行 24

3.8 它们之间是什么关系 25

第4章 做好软件交付的10个策略 27

4.1 细粒度、低耦合、可复用的架构 27

4.1.1 软件架构 27

4.1.2 测试脚本和测试数据的架构 28

4.1.3 组织架构 29

4.2 小批量持续流动的流程 30

4.2.1 大批量带来等待等问题 31

4.2.2 短周期、小颗粒度、减少在制品 31

4.2.3 小批量持续流动的交付过程 32

4.3 运用综合手段保证质量和安全 32

4.3.1 各种各样的测试 32

4.3.2 左移+右移 33

4.3.3 测试人员+开发人员 33

4.3.4 人工测试+自动化测试 33

4.3.5 综合运用 34

4.4 自动化与自助化 34

4.4.1 单项活动的自动化 34

4.4.2 流程的自动化 34

4.4.3 自助化 35

4.4.4 相关支持 35

4.5 加速各项活动 35

4.5.1 为什么要加速 35

4.5.2 加速的通用思路 36

4.6 及时修复 36

4.6.1 为什么要及时修复 37

4.6.2 如何做到及时修复 37

4.7 完备记录,充分展现 38

4.7.1 任务及其执行情况 38

4.7.2 版本和配置信息 39

4.7.3 关联关系 40

4.7.4 单一可信源 40

4.7.5 相关支持 41

4.8 标准化 41

4.8.1 规范可重复 41

4.8.2 方案收敛 41

4.8.3 环境一致性 42

4.9 协调完成完整功能 43

4.9.1 背景 43

4.9.2 开发全过程的协调 43

4.9.3 交付过程的协调 43

4.10 基于度量的持续改进 44

第5章 一个典型的软件交付过程 47

5.1 前传 47

5.2 代码改动累积并*终提交 48

5.3 特性改动累积并*终提交 48

5.4 集成并*终发布 49

第6章 各个细分领域 51

6.1 交付过程 51

6.2 源代码及其构建 52

6.3 部署运行 54

6.4 静态测试 54

6.5 动态测试 55

第7章 各个关注角度 58

7.1 执行时机 58

7.2 执行效果 60

7.3 执行效率 61

7.4 问题处理效率 62

7.5 避免引入问题 64

第2部分 总体过程

第8章 代码改动累积 68

8.1 导论 68

8.1.1 考查范围 68

8.1.2 关注重点 68

8.2 执行时机 68

8.2.1 包含改动的颗粒度:实时进行的测试 68

8.2.2 包含改动的颗粒度:随时进行的测试 69

8.3 执行效率 70

第9章 代码改动提交 71

9.1 导论 71

9.1.1 考查范围 71

9.1.2 关注重点 71

9.2 执行时机 72

9.2.1 包含改动的颗粒度:提交的颗粒度 72

9.2.2 包含改动的颗粒度:提交时进行的测试 72

9.3 执行效果 73

9.4 执行效率 73

9.4.1 执行效率度量:从发起提交到提交完成的时间 73

9.4.2 工具辅助记录和展现:代码改动提交说明 73

9.4.3 工具间集成:代码改动提交与工作项关联 74

第10章 特性改动累积 75

10.1 导论 75

10.1.1 特性的概念 75

10.1.2 特性隔离 76

10.1.3 考查范围 76

10.1.4 关注重点 76

10.2 执行时机 76

10.2.1 包含改动的颗粒度:代码改动提交触发的测试 76

10.2.2 包含改动的颗粒度:随时进行的测试 77

10.2.3 流程顺序和卡点:适当并行 78

10.2.4 管理并发:控制在研的特性数量 78

10.2.5 整体协调:完整的特性 79

10.3 执行效果 79

10.4 执行效率 81

10.4.1 自动执行:构建流水线 81

10.4.2 工具辅助记录和展现:流水线执行情况 81

10.4.3 方案收敛 82

10.5 问题处理效率 83

10.5.1 问题处理效率度量 83

10.5.2 适当通知 83

10.5.3 记录版本:流水线配置的修改历史 83

10.6 避免引入问题 84

第11章 特性改动提交 86

11.1 导论 86

11.1.1 考查范围 86

11.1.2 关注重点 86

11.2 执行时机 86

11.2.1 包含改动的颗粒度:特性的颗粒度 86

11.2.2 包含改动的颗粒度:当特性做不到既小又独立时 87

11.2.3 包含改动的颗粒度:特性提交时进行的测试 88

11.2.4 流程顺序和卡点:特性提交门禁 89

11.2.5 整体协调:完整的特性 89

11.3 执行效果 90

11.4 执行效率 90

11.4.1 执行效率度量:从发起提交到提交完成的时间 90

11.4.2 自动执行:合并请求 91

11.4.3 工具辅助记录和展现:特性内容说明 91

11.4.4 工具间集成:特性的代码改动与工作项之间的关联 92

11.5 问题处理效率 92

11.5.1 问题处理效率度量 92

11.5.2 适当通知 93

11.5.3 便捷回退:特性摘除 93

第12章 集成 94

12.1 导论 94

12.1.1 考查范围 94

12.1.2 关注重点 94

12.2 执行时机 94

12.2.1 包含改动的颗粒度:持续接收特性改动提交 94

12.2.2 包含改动的颗粒度:特性合入触发的测试 95

12.2.3 包含改动的颗粒度:针对新特性的测试 95

12.2.4 流程顺序和卡点:制品晋级 96

12.2.5 管理并发:适当交叠 97

12.2.6 管理并发:管理变体 98

12.3 执行效率 99

12.3.1 自动执行:部署流水线 99

12.3.2 工具间集成:版本的特性列表 100

12.3.3 工具间集成:特性状态信息 101

12.3.4 工具间集成:自动维护说明文档 102

12.3.5 自主完成:各项活动 102

12.3.6 自主完成:工具的配置 103

12.3.7 便捷配置 103

12.4 问题处理效率 103

12.4.1 问题处理效率度量:红灯修复时长 103

12.4.2 问题处理效率度量:缺陷修复时长 104

12.4.3 及时发现 104

12.4.4 适当通知 105

12.4.5 及时处理 105

12.4.6 快速定位 106

12.5 避免引入问题 106

第13章 发布 107

13.1 导论 107

13.1.1 考查范围 107

13.1.2 关注重点 107

13.2 执行时机 108

13.2.1 包含改动的颗粒度:发布的颗粒度 108

13.2.2 包含改动的颗粒度:发布前的测试 109

13.2.3 包含改动的颗粒度:生产环境的测试 109

13.2.4 减少等待:发布时间窗口 109

13.2.5 操作对象的颗粒度 110

13.2.6 整体协调:按一定顺序发布 111

13.2.7 整体协调:当在特性分支上完成全部测试时 112

13.2.8 整体协调:当每个微服务都有自己的迭代节奏时 113

13.2.9 整体协调:静态库典型情况之公共基础库 114

13.2.10 整体协调:静态库典型情况之整体应用的组成部分 115

13.2.11 整体协调:静态库典型情况之服务接口定义 116

13.3 执行效果 117

13.4 执行效率 117

13.4.1 执行效率度量 117

13.4.2 自主完成:精简发布审批流程 118

13.5 问题处理效率 118

13.5.1 问题处理效率度量:故障恢复与缺陷修复的时长 118

13.5.2 及时发现 118

13.5.3 适当通知 119

13.5.4 及时处理 119

13.5.5 快速定位 119

13.5.6 便捷回退:发布回滚 119

13.5.7 紧急改动的生效方式:紧急发布 120

第3部分 具体活动

第14章 源代码版本控制 122

14.1 导论 122

14.1.1 考查范围 122

14.1.2 关注重点 122

14.2 执行时机 123

14.2.1 管理并发:晚分叉模式支持交叠 123

14.2.2 管理并发:早分叉模式支持交叠 124

14.2.3 管理并发:用主干代表*新已发布版本 125

14.2.4 管理并发:特性分支的管理 126

14.2.5 操作对象的颗粒度:代码库的尺寸 127

14.3 执行效果 127

14.4 执行效率 128

14.4.1 执行效率度量 128

14.4.2 快速执行:分布式版本控制工具 128

14.4.3 快速执行:便捷的页面操作 129

14.4.4 规范可重复:管理众多代码库 129

14.4.5 规范可重复:明确代码库内的目录结构和内容 129

14.4.6 规范可重复:规范版本号 130

14.4.7 规范可重复:标识源代码版本 131

14.5 问题处理效率 132

14.5.1 便捷回退:特性摘除 132

14.5.2 便捷回退:发布回滚 132

14.5.3 紧急改动的生效方式:已提交特性的修改 133

14.5.4 紧急改动的生效方式:紧急发布 133

14.6 避免引入问题 134

第15章 构建 135

15.1 导论 135

15.1.1 构建的概念 135

15.1.2 考查范围 136

15.1.3 关注重点 136

15.2 执行时机 136

15.3 执行效率 137

15.3.1 工具辅助记录和展现:构建遇到的问题 137

15.3.2 快速执行:从全局视角提速构建 138

15.3.3 规范可重复:构建的可重复性 140

第16章 构建环境管理 142

16.1 导论 142

16.1.1 考查范围 142

16.1.2 关注重点 142

16.2 执行效率 142

16.2.1 规范可重复:构建环境标准化 142

16.2.2 资源复用:构建环境资源池化 143

16.2.3 快速执行:保障随时有构建资源可分配 144

16.2.4 快速执行:保障构建所需的缓存 145

第17章 制品管理 146

17.1 导论 146

17.1.1 制品的概念 146

17.1.2 考查范围 147

17.1.3 关注重点 147

17.2 执行时机 147

17.3 执行效果 148

17.3.1 覆盖范围:外来制品 148

17.3.2 覆盖范围:工具和基础软件 148

17.4 执行效率 149

17.4.1 执行效率度量 149

17.4.2 工具辅助记录和展现:制品的属性信息 149

17.4.3 工具间集成:源代码、构建、制品之间的关联 150

17.4.4 快速执行:快速存取 150

17.4.5 资源复用:不重复存储 151

17.4.6 规范可重复:管理众多制品 151

17.4.7 规范可重复:标识制品版本 152

17.4.8 规范可重复:标识静态库版本 152

17.4.9 规范可重复:制品清理策略 153

17.5 问题处理效率 154

17.6 避免引入问题 154

第18章 部署 155

18.1 导论 155

18.1.1 部署单元的概念 155

18.1.2 考查范围 156

18.1.3 关注重点 156

18.2 执行效果 156

18.3 执行效率 157

18.3.1 自动执行:完全自动化 157

18.3.2 工具间集成:以部署单元为核心对象 157

18.3.3 自主完成 158

18.3.4 便捷配置:避免重复配置 159

18.3.5 快速执行 159

18.4 问题处理效率 160

18.4.1 及时发现 160

18.4.2 便捷回退 160

18.5 避免引入问题 160

18.5.1 业务连续性:生产环境的部署策略 160

18.5.2 业务连续性:测试环境的部署策略 161

18.5.3 业务连续性:客户端的部署策略 162




展开全部

作者简介

董越,DevOps 资深专家,阿里巴巴集团前研发效能事业部架构、高级产品专家等职,从事 Aone&云效 DevOps 产品设计、阿里云专有云集成与交付解决方案设计等工作。在加入阿里之前,他还曾就职于西门子、摩托罗拉、雅虎、索尼、去哪儿网等大型企业,一直从事软件配置管理、软件集成与交付、DevOps 相关的工作。当前主要从事企业级DevOps体系建设与咨询工作,帮助众多企业提升软件研发交付效能。已服务过的客户有华为、工商银行、交通银行、招商银行、中信银行、中国移动、中国联通、中国电信、华泰证券、泰康人寿等。

预估到手价 ×

预估到手价是按参与促销活动、以最优惠的购买方案计算出的价格(不含优惠券部分),仅供参考,未必等同于实际到手价。

确定
快速
导航