持续交付实战

持续交付实战
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者: [德] (Eberhard Wolff)
2020-05
版次: 1
ISBN: 9787115534217
装帧: 其他
开本: 16开
纸张: 胶版纸
页数: 171页
2人买过
  • 《持续交付实战》是持续交付实战指南,具体内容包括:持续交付能够解决的问题以及它具体如何解决问题,PaaS云解决方案,用Gradle、Maven和Jenkins实现自动化构建和持续集成,用SonarQube执行静态代码,如何通过容量测试确保性能,探索式测试的新特性和问题,在生产环境中发布版本和运行应用程序,等等。 埃伯哈德·沃尔夫(Eberhard Wolff),德国技术咨询公司innoQ的研究员,一位立足于业务和技术交汇点、拥有超过15年经验的架构师和咨询师。他曾多次在国际会议上做过报告,担任若干会议的委员会成员,并撰写了100多篇文章,出版了多本图书。他的技术关注点是现代架构,主要涉及云计算、持续交付、DevOps、微服务和NoSQL。其著作《微服务:灵活的软件架构》中文版已经由人民邮电出版社出版。 【译者介绍】 夏雪,曾担任功能测试经理、敏捷教练,具有丰富的测试及测试管理经验,在代码静态分析领域获得过国家发明专利。现主要负责质量及过程改进管理,从事CI/CD、DevOps的推进工作,并于2019年通过了EXIN DevOps Master认证。他非常乐于将国外的技术新闻和文章分享到国内,除本书外,另译有《深入敏捷测试》。 第 一部分 基础 

    第 1 章 持续交付:是什么和怎么做 2

    1.1 什么是持续交付 2

    1.2 为什么软件发布如此复杂 2

    1.2.1 持续集成带来希望 2

    1.2.2 过程缓慢且有风险 3

    1.2.3 变快是有可能的 3

    1.3 持续交付的价值 3

    1.3.1 规律性 3

    1.3.2 可追溯性 4

    1.3.3 退化 4

    1.4 持续交付的优势 4

    1.4.1 持续交付可加快上市速度 5

    1.4.2 示例 5

    1.4.3 实现特性并将其发布到生产环境 5

    1.4.4 下一个特性 5

    1.4.5 持续交付能带来竞争优势 5

    1.4.6 如果没有持续交付 6

    1.4.7 持续交付和精益创业 6

    1.4.8 对开发过程的影响 6

    1.4.9 最小化风险 7

    1.4.10 更快的反馈和精益 9

    1.5 持续交付流水线的生成及其结构 10

    1.6 小结 12

    第 2 章 提供基础设施 13

    2.1 概述 13

    2.2 安装脚本 14

    2.3 Chef 16

    2.3.1 对比Chef与Puppet 17

    2.3.2 其他备选方案 18

    2.3.3 技术基础 18

    2.3.4 Chef Solo 23

    2.3.5 Chef Solo总结 24

    2.3.6 Knife和Chef Server 24

    2.3.7 Chef Server总结 27

    2.4 Vagrant 28

    2.4.1 Chef和Vagrant实例 29

    2.4.2 Vagrant总结 30

    2.5 Docker 30

    2.5.1 Docker解决方案 31

    2.5.2 创建Docker容器 32

    2.5.3 使用Docker运行示例应用程序 35

    2.5.4 Docker和Vagrant 36

    2.5.5 Docker Machine 38

    2.5.6 Docker的复杂配置 39

    2.5.7 Docker Compose 41

    2.6 不可变的服务器 43

    2.6.1 幂等性的缺点 43

    2.6.2 不可变服务器和Docker 43

    2.7 基础设施即代码 44

    2.8 平台即服务 45

    2.9 数据和数据库的处理 47

    2.9.1 模式的处理 47

    2.9.2 测试和主数据 48

    2.10 小结 49

    第二部分 持续交付流水线

    第 3 章 构建自动化和持续集成 52

    3.1 概述 52

    3.2 构建自动化和构建工具 52

    3.2.1 Java世界中的构建工具 53

    3.2.2 Ant 54

    3.2.3 Maven 54

    3.2.4 Gradle 58

    3.2.5 其他构建工具 60

    3.2.6 选择合适的工具 60

    3.3 单元测试 61

    3.3.1 编写好的单元测试 62

    3.3.2 测试驱动开发 64

    3.3.3 整洁的代码和软件工艺 65

    3.4 持续集成 65

    3.4.1 Jenkins 66

    3.4.2 持续集成基础设施 70

    3.4.3 结论 71

    3.5 度量代码质量 73

    3.6 工件管理 76

    3.6.1 集成到构建中 78

    3.6.2 仓库的高级特性 79

    3.7 小结 80

    第 4 章 验收测试 81

    4.1 概述 81

    4.2 测试金字塔 82

    4.3 什么是验收测试 84

    4.3.1 自动化验收测试 84

    4.3.2 不仅仅是提升效率 84

    4.3.3 手动测试 85

    4.3.4 客户 85

    4.3.5 对比验收测试与单元测试 86

    4.3.6 测试环境 86

    4.4 基于图形用户界面的验收测试 87

    4.4.1 图形用户界面测试的问题 87

    4.4.2 针对脆弱的图形用户界面测试的抽象 87

    4.4.3 使用Selenium实现自动化 88

    4.4.4 WebDriver API 88

    4.4.5 无须Web浏览器的测试:HtmlUnit 88

    4.4.6 Selenium WebDriver API 88

    4.4.7 Selenium IDE 88

    4.4.8 自动化图形用户界面测试的问题 90

    4.4.9 执行图形用户界面测试 90

    4.4.10 将测试导出为代码 90

    4.4.11 手动修改测试用例 90

    4.4.12 测试数据 91

    4.4.13 Page对象 91

    4.5 图形用户界面测试的替代工具 91

    4.5.1 PhantomJS 92

    4.5.2 Windmill 92

    4.6 文本化验收测试 93

    4.6.1 行为驱动开发 93

    4.6.2 不同的适配器 95

    4.7 其他可选框架 96

    4.8 验收测试策略 97

    4.8.1 合适的工具 97

    4.8.2 快速反馈 97

    4.8.3 测试覆盖率 98

    4.9 小结 98

    第 5 章 容量测试 99

    5.1 概述 99

    5.2 如何进行容量测试 99

    5.2.1 容量测试的目标 100

    5.2.2 数据量与环境 100

    5.2.3 只在实现结束时才进行性能测试吗 100

    5.2.4 容量测试 = 风险管理 100

    5.2.5 用户模拟 101

    5.2.6 记录性能需求 101

    5.2.7 用于容量测试的硬件 101

    5.2.8 云和虚拟化 102

    5.2.9 通过持续测试使风险最小化 102

    5.2.10 容量测试是否明智 102

    5.3 实现容量测试 103

    5.4 使用Gatling实现容量测试 104

    5.5 Gatling的替代工具 108

    5.5.1 Grinder 108

    5.5.2 Apache JMeter 108

    5.5.3 Tsung 109

    5.5.4 商业解决方案 109

    5.6 小结 109

    第 6 章 探索式测试 110

    6.1 概述 110

    6.2 为什么要进行探索式测试 110

    6.2.1 有时手动测试会更好 110

    6.2.2 由客户测试 111

    6.2.3 非功能性需求的手动测试 111

    6.3 该怎么做 111

    6.3.1 测试任务指南 112

    6.3.2 自动化的环境 112

    6.3.3 以展示为依据 112

    6.3.4 示例:电子商务应用程序 112

    6.3.5 Beta测试 112

    6.3.6 基于会话的测试 113

    6.4 小结 114

    第 7 章 部署:在生产环境中发布版本 115

    7.1 概述 115

    7.2 发布和回滚 115

    7.2.1 优点 116

    7.2.2 缺点 116

    7.3 前滚 116

    7.3.1 优点 117

    7.3.2 缺点 117

    7.4 蓝/绿部署 117

    7.4.1 优点 118

    7.4.2 缺点 118

    7.5 金丝雀发布 118

    7.5.1 优点 119

    7.5.2 缺点 119

    7.6 持续部署 120

    7.6.1 优点 120

    7.6.2 缺点 121

    7.7 虚拟化 121

    7.8 Web应用程序之外 122

    7.9 小结 123

    第 8 章 运维 124

    8.1 概述 124

    8.2 运维中的挑战 124

    8.3 日志文件 125

    8.3.1 应该记录什么 126

    8.3.2 处理日志文件的工具 127

    8.3.3 示例应用程序中的日志记录 128

    8.4 示例应用程序的日志分析 129

    8.4.1 用Kibana做分析 131

    8.4.2 ELK——可扩展性 132

    8.5 用于日志的其他技术 134

    8.6 高级日志技术 135

    8.6.1 匿名化 135

    8.6.2 性能 136

    8.6.3 时间 136

    8.6.4 运维数据库 136

    8.7 监控 136

    8.8 Graphite指标 137

    8.9 示例应用程序中的指标 138

    8.10 其他监控解决方案 140

    8.11 运维应用程序时的额外挑战 141

    8.11.1 脚本 141

    8.11.2 客户数据中心内的应用程序 141

    8.12 小结 142

    第三部分 持续交付的管理、组织和架构

    第 9 章 引入持续交付 144

    9.1 概述 144

    9.2 从一开始就引入持续交付 144

    9.3 价值流映射 145

    9.3.1 描述事件序列的价值流映射 145

    9.3.2 优化 145

    9.4 其他优化措施 146

    9.4.1 质量投资 146

    9.4.2 成本 147

    9.4.3 收益 147

    9.4.4 不要在“红色构建”上检入 147

    9.4.5 立即停止 148

    9.4.6 “五个为什么” 148

    9.4.7 DevOps 149

    9.5 小结 149

    第 10 章 持续交付和DevOps 150

    10.1 概述 150

    10.2 什么是DevOps 150

    10.2.1 问题 150

    10.2.2 客户视角 151

    10.2.3 先锋:亚马逊 151

    10.2.4 DevOps 151

    10.3 持续交付和DevOps 152

    10.3.1 DevOps:不只是持续交付 153

    10.3.2 个体责任和自组织 153

    10.3.3 技术决策 154

    10.3.4 减少集中控制 154

    10.3.5 技术多元化 154

    10.3.6 团队间的交流 154

    10.3.7 架构 155

    10.4 没有DevOps的持续交付 156

    10.5 小结 157

    第 11 章 持续交付、DevOps和软件架构 158

    11.1 概述 158

    11.2 软件架构 158

    11.3 针对持续交付优化架构 160

    11.4 接口 161

    11.4.1 伯斯塔尔法则 162

    11.4.2 容错设计 162

    11.4.3 状态 163

    11.5 数据库 163

    11.5.1 保持数据库稳定 163

    11.5.2 数据库 = 组件 164

    11.5.3 视图和存储过程 164

    11.5.4 每个组件一个数据库 165

    11.5.5 NoSQL数据库 165

    11.6 微服务 165

    11.6.1 微服务与持续交付 165

    11.6.2 借助微服务引入持续交付 166

    11.6.3 微服务需要持续交付 166

    11.6.4 组织 166

    11.7 新特性的处理 167

    11.7.1 特性分支 167

    11.7.2 特性开关 167

    11.7.3 优点 167

    11.7.4 特性开关的用例 168

    11.7.5 缺点 168

    11.8 小结 169

    第 12 章 总结:收益是什么 170
  • 内容简介:
    《持续交付实战》是持续交付实战指南,具体内容包括:持续交付能够解决的问题以及它具体如何解决问题,PaaS云解决方案,用Gradle、Maven和Jenkins实现自动化构建和持续集成,用SonarQube执行静态代码,如何通过容量测试确保性能,探索式测试的新特性和问题,在生产环境中发布版本和运行应用程序,等等。
  • 作者简介:
    埃伯哈德·沃尔夫(Eberhard Wolff),德国技术咨询公司innoQ的研究员,一位立足于业务和技术交汇点、拥有超过15年经验的架构师和咨询师。他曾多次在国际会议上做过报告,担任若干会议的委员会成员,并撰写了100多篇文章,出版了多本图书。他的技术关注点是现代架构,主要涉及云计算、持续交付、DevOps、微服务和NoSQL。其著作《微服务:灵活的软件架构》中文版已经由人民邮电出版社出版。 【译者介绍】 夏雪,曾担任功能测试经理、敏捷教练,具有丰富的测试及测试管理经验,在代码静态分析领域获得过国家发明专利。现主要负责质量及过程改进管理,从事CI/CD、DevOps的推进工作,并于2019年通过了EXIN DevOps Master认证。他非常乐于将国外的技术新闻和文章分享到国内,除本书外,另译有《深入敏捷测试》。
  • 目录:
    第 一部分 基础 

    第 1 章 持续交付:是什么和怎么做 2

    1.1 什么是持续交付 2

    1.2 为什么软件发布如此复杂 2

    1.2.1 持续集成带来希望 2

    1.2.2 过程缓慢且有风险 3

    1.2.3 变快是有可能的 3

    1.3 持续交付的价值 3

    1.3.1 规律性 3

    1.3.2 可追溯性 4

    1.3.3 退化 4

    1.4 持续交付的优势 4

    1.4.1 持续交付可加快上市速度 5

    1.4.2 示例 5

    1.4.3 实现特性并将其发布到生产环境 5

    1.4.4 下一个特性 5

    1.4.5 持续交付能带来竞争优势 5

    1.4.6 如果没有持续交付 6

    1.4.7 持续交付和精益创业 6

    1.4.8 对开发过程的影响 6

    1.4.9 最小化风险 7

    1.4.10 更快的反馈和精益 9

    1.5 持续交付流水线的生成及其结构 10

    1.6 小结 12

    第 2 章 提供基础设施 13

    2.1 概述 13

    2.2 安装脚本 14

    2.3 Chef 16

    2.3.1 对比Chef与Puppet 17

    2.3.2 其他备选方案 18

    2.3.3 技术基础 18

    2.3.4 Chef Solo 23

    2.3.5 Chef Solo总结 24

    2.3.6 Knife和Chef Server 24

    2.3.7 Chef Server总结 27

    2.4 Vagrant 28

    2.4.1 Chef和Vagrant实例 29

    2.4.2 Vagrant总结 30

    2.5 Docker 30

    2.5.1 Docker解决方案 31

    2.5.2 创建Docker容器 32

    2.5.3 使用Docker运行示例应用程序 35

    2.5.4 Docker和Vagrant 36

    2.5.5 Docker Machine 38

    2.5.6 Docker的复杂配置 39

    2.5.7 Docker Compose 41

    2.6 不可变的服务器 43

    2.6.1 幂等性的缺点 43

    2.6.2 不可变服务器和Docker 43

    2.7 基础设施即代码 44

    2.8 平台即服务 45

    2.9 数据和数据库的处理 47

    2.9.1 模式的处理 47

    2.9.2 测试和主数据 48

    2.10 小结 49

    第二部分 持续交付流水线

    第 3 章 构建自动化和持续集成 52

    3.1 概述 52

    3.2 构建自动化和构建工具 52

    3.2.1 Java世界中的构建工具 53

    3.2.2 Ant 54

    3.2.3 Maven 54

    3.2.4 Gradle 58

    3.2.5 其他构建工具 60

    3.2.6 选择合适的工具 60

    3.3 单元测试 61

    3.3.1 编写好的单元测试 62

    3.3.2 测试驱动开发 64

    3.3.3 整洁的代码和软件工艺 65

    3.4 持续集成 65

    3.4.1 Jenkins 66

    3.4.2 持续集成基础设施 70

    3.4.3 结论 71

    3.5 度量代码质量 73

    3.6 工件管理 76

    3.6.1 集成到构建中 78

    3.6.2 仓库的高级特性 79

    3.7 小结 80

    第 4 章 验收测试 81

    4.1 概述 81

    4.2 测试金字塔 82

    4.3 什么是验收测试 84

    4.3.1 自动化验收测试 84

    4.3.2 不仅仅是提升效率 84

    4.3.3 手动测试 85

    4.3.4 客户 85

    4.3.5 对比验收测试与单元测试 86

    4.3.6 测试环境 86

    4.4 基于图形用户界面的验收测试 87

    4.4.1 图形用户界面测试的问题 87

    4.4.2 针对脆弱的图形用户界面测试的抽象 87

    4.4.3 使用Selenium实现自动化 88

    4.4.4 WebDriver API 88

    4.4.5 无须Web浏览器的测试:HtmlUnit 88

    4.4.6 Selenium WebDriver API 88

    4.4.7 Selenium IDE 88

    4.4.8 自动化图形用户界面测试的问题 90

    4.4.9 执行图形用户界面测试 90

    4.4.10 将测试导出为代码 90

    4.4.11 手动修改测试用例 90

    4.4.12 测试数据 91

    4.4.13 Page对象 91

    4.5 图形用户界面测试的替代工具 91

    4.5.1 PhantomJS 92

    4.5.2 Windmill 92

    4.6 文本化验收测试 93

    4.6.1 行为驱动开发 93

    4.6.2 不同的适配器 95

    4.7 其他可选框架 96

    4.8 验收测试策略 97

    4.8.1 合适的工具 97

    4.8.2 快速反馈 97

    4.8.3 测试覆盖率 98

    4.9 小结 98

    第 5 章 容量测试 99

    5.1 概述 99

    5.2 如何进行容量测试 99

    5.2.1 容量测试的目标 100

    5.2.2 数据量与环境 100

    5.2.3 只在实现结束时才进行性能测试吗 100

    5.2.4 容量测试 = 风险管理 100

    5.2.5 用户模拟 101

    5.2.6 记录性能需求 101

    5.2.7 用于容量测试的硬件 101

    5.2.8 云和虚拟化 102

    5.2.9 通过持续测试使风险最小化 102

    5.2.10 容量测试是否明智 102

    5.3 实现容量测试 103

    5.4 使用Gatling实现容量测试 104

    5.5 Gatling的替代工具 108

    5.5.1 Grinder 108

    5.5.2 Apache JMeter 108

    5.5.3 Tsung 109

    5.5.4 商业解决方案 109

    5.6 小结 109

    第 6 章 探索式测试 110

    6.1 概述 110

    6.2 为什么要进行探索式测试 110

    6.2.1 有时手动测试会更好 110

    6.2.2 由客户测试 111

    6.2.3 非功能性需求的手动测试 111

    6.3 该怎么做 111

    6.3.1 测试任务指南 112

    6.3.2 自动化的环境 112

    6.3.3 以展示为依据 112

    6.3.4 示例:电子商务应用程序 112

    6.3.5 Beta测试 112

    6.3.6 基于会话的测试 113

    6.4 小结 114

    第 7 章 部署:在生产环境中发布版本 115

    7.1 概述 115

    7.2 发布和回滚 115

    7.2.1 优点 116

    7.2.2 缺点 116

    7.3 前滚 116

    7.3.1 优点 117

    7.3.2 缺点 117

    7.4 蓝/绿部署 117

    7.4.1 优点 118

    7.4.2 缺点 118

    7.5 金丝雀发布 118

    7.5.1 优点 119

    7.5.2 缺点 119

    7.6 持续部署 120

    7.6.1 优点 120

    7.6.2 缺点 121

    7.7 虚拟化 121

    7.8 Web应用程序之外 122

    7.9 小结 123

    第 8 章 运维 124

    8.1 概述 124

    8.2 运维中的挑战 124

    8.3 日志文件 125

    8.3.1 应该记录什么 126

    8.3.2 处理日志文件的工具 127

    8.3.3 示例应用程序中的日志记录 128

    8.4 示例应用程序的日志分析 129

    8.4.1 用Kibana做分析 131

    8.4.2 ELK——可扩展性 132

    8.5 用于日志的其他技术 134

    8.6 高级日志技术 135

    8.6.1 匿名化 135

    8.6.2 性能 136

    8.6.3 时间 136

    8.6.4 运维数据库 136

    8.7 监控 136

    8.8 Graphite指标 137

    8.9 示例应用程序中的指标 138

    8.10 其他监控解决方案 140

    8.11 运维应用程序时的额外挑战 141

    8.11.1 脚本 141

    8.11.2 客户数据中心内的应用程序 141

    8.12 小结 142

    第三部分 持续交付的管理、组织和架构

    第 9 章 引入持续交付 144

    9.1 概述 144

    9.2 从一开始就引入持续交付 144

    9.3 价值流映射 145

    9.3.1 描述事件序列的价值流映射 145

    9.3.2 优化 145

    9.4 其他优化措施 146

    9.4.1 质量投资 146

    9.4.2 成本 147

    9.4.3 收益 147

    9.4.4 不要在“红色构建”上检入 147

    9.4.5 立即停止 148

    9.4.6 “五个为什么” 148

    9.4.7 DevOps 149

    9.5 小结 149

    第 10 章 持续交付和DevOps 150

    10.1 概述 150

    10.2 什么是DevOps 150

    10.2.1 问题 150

    10.2.2 客户视角 151

    10.2.3 先锋:亚马逊 151

    10.2.4 DevOps 151

    10.3 持续交付和DevOps 152

    10.3.1 DevOps:不只是持续交付 153

    10.3.2 个体责任和自组织 153

    10.3.3 技术决策 154

    10.3.4 减少集中控制 154

    10.3.5 技术多元化 154

    10.3.6 团队间的交流 154

    10.3.7 架构 155

    10.4 没有DevOps的持续交付 156

    10.5 小结 157

    第 11 章 持续交付、DevOps和软件架构 158

    11.1 概述 158

    11.2 软件架构 158

    11.3 针对持续交付优化架构 160

    11.4 接口 161

    11.4.1 伯斯塔尔法则 162

    11.4.2 容错设计 162

    11.4.3 状态 163

    11.5 数据库 163

    11.5.1 保持数据库稳定 163

    11.5.2 数据库 = 组件 164

    11.5.3 视图和存储过程 164

    11.5.4 每个组件一个数据库 165

    11.5.5 NoSQL数据库 165

    11.6 微服务 165

    11.6.1 微服务与持续交付 165

    11.6.2 借助微服务引入持续交付 166

    11.6.3 微服务需要持续交付 166

    11.6.4 组织 166

    11.7 新特性的处理 167

    11.7.1 特性分支 167

    11.7.2 特性开关 167

    11.7.3 优点 167

    11.7.4 特性开关的用例 168

    11.7.5 缺点 168

    11.8 小结 169

    第 12 章 总结:收益是什么 170
查看详情
相关图书 / 更多
您可能感兴趣 / 更多
持续交付实战
传奇小鼠冒险系列:成为阿姆斯特朗
[德]托本·库曼
持续交付实战
韩国流行音乐(西方韩国研究丛书)
[德]迈克尔·富尔(MichaelFuhr) 著;王丹丹 译
持续交付实战
法学中的体系思维与体系概念:以德国私法为例(第2版)法律人进阶译丛 经典阅读系列
[德]克劳斯-威廉·卡纳里斯(Claus-Wilhelm Canaris) 著;陈大创 译
持续交付实战
世界经济通史 (社会学三大奠基人之一,韦伯诞生160周年特别纪念版)
[德]马克斯·韦伯
持续交付实战
为什么只见树木不见森林:从简单现象到复杂系统
[德]迪尔克·布罗克曼(Dirk Brockmann) 著
持续交付实战
悉达多(诺贝尔文学奖得主赫尔曼·黑塞的代表作,一部关于人生信仰的救赎之作)
[德]赫尔曼·黑塞 著;周苇 译
持续交付实战
在轮下(诺奖得主黑塞自传性作品,写给每一个不甘被世俗牵绊的年轻人)
[德]赫尔曼·黑塞 著;王秀莉 译
持续交付实战
艺术与犯罪——艺术市场的掠夺、造假与诈骗
[德]托比亚斯·蒂姆 著;潘南婷 译;[德]史蒂芬·科德霍夫
持续交付实战
德米安:彷徨少年时《黑暗荣耀》推荐, 诺贝尔文学奖得主黑塞代表作
[德]赫尔曼·黑塞 著;周苇 译
持续交付实战
荒原狼(诺贝尔文学奖得主黑塞代表作,一剂反击命运的良方,治愈一个社恐内心的焦虑)
[德]赫尔曼·黑塞 著;周苇 译
持续交付实战
恶行(知名刑事律师将真实案件化为锋利故事,零距离凝视人性深渊。絶版十年,詹青云推荐!)
[德]费迪南德·冯·席拉赫 著 ,新经典 出品
持续交付实战
智慧宫丛书025·人类知识演化史
[德]于尔根·雷恩 后浪