图书介绍
持续交付 发布可靠软件的系统方法2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载

- (英)亨布尔,(英)法利著 著
- 出版社: 北京:人民邮电出版社
- ISBN:7115264596
- 出版时间:2011
- 标注页数:362页
- 文件大小:80MB
- 文件页数:386页
- 主题词:
PDF下载
下载说明
持续交付 发布可靠软件的系统方法PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第一部分 基础篇2
第1章 软件交付的问题2
1.1引言2
1.2一些常见的发布反模式3
1.2.1反模式:手工部署软件4
1.2.2反模式:开发完成之后才向类生产环境部署5
1.2.3反模式:生产环境的手工配置管理7
1.2.4我们能做得更好吗8
1.3如何实现目标9
1.3.1每次修改都应该触发反馈流程10
1.3.2必须尽快接收反馈11
1.3.3交付团队必须接收反馈并作出反应12
1.3.4这个流程可以推广吗12
1.4收效12
1.4.1授权团队13
1.4.2减少错误13
1.4.3缓解压力15
1.4.4部署的灵活性16
1.4.5多加练习,使其完美17
1.5候选发布版本17
1.6软件交付的原则19
1.6.1为软件的发布创建一个可重复且可靠的过程19
1.6.2将几乎所有事情自动化19
1.6.3把所有的东西都纳入版本控制20
1.6.4提前并频繁地做让你感到痛苦的事20
1.6.5内建质量21
1.6.6“DONE”意味着“已发布”21
1.6.7交付过程是每个成员的责任22
1.6.8持续改进22
1.7小结23
第2章 配置管理24
2.1引言24
2.2使用版本控制25
2.2.1对所有内容进行版本控制26
2.2.2频繁提交代码到主干28
2.2.3使用意义明显的提交注释29
2.3依赖管理30
2.3.1外部库文件管理30
2.3.2组件管理30
2.4软件配置管理31
2.4.1配置与灵活性31
2.4.2配置的分类33
2.4.3应用程序的配置管理33
2.4.4跨应用的配置管理36
2.4.5管理配置信息的原则37
2.5环境管理38
2.5.1环境管理的工具41
2.5.2变更过程管理41
2.6小结42
第3章 持续集成43
3.1引言43
3.2实现持续集成44
3.2.1准备工作44
3.2.2一个基本的持续集成系统45
3.3持续集成的前提条件46
3.3.1频繁提交46
3.3.2创建全面的自动化测试套件47
3.3.3保持较短的构建和测试过程47
3.3.4管理开发工作区49
3.4使用持续集成软件49
3.4.1基本操作49
3.4.2铃声和口哨50
3.5必不可少的实践52
3.5.1构建失败之后不要提交新代码52
3.5.2提交前在本地运行所有的提交测试,或者让持续集成服务器完成此事53
3.5.3等提交测试通过后再继续工作54
3.5.4回家之前,构建必须处于成功状态54
3.5.5时刻准备着回滚到前一个版本55
3.5.6在回滚之前要规定一个修复时间56
3.5.7不要将失败的测试注释掉56
3.5.8为自己导致的问题负责56
3.5.9测试驱动的开发57
3.6推荐的实践57
3.6.1极限编程开发实践57
3.6.2若违背架构原则,就让构建失败58
3.6.3若测试运行变慢,就让构建失败58
3.6.4若有编译警告或代码风格问题,就让浏试失败59
3.7分布式团队60
3.7.1对流程的影响60
3.7.2集中式持续集成61
3.7.3技术问题61
3.7.4替代方法62
3.8分布式版本控制系统63
3.9小结66
第4章 测试策略的实现67
4.1引言67
4.2 测试的分类68
4.2.1业务导向且支持开发过程的测试69
4.2.2技术导向且支持开发过程的测试72
4.2.3业务导向且评价项目的测试72
4.2.4技术导向且评价项目的测试73
4.2.5 测试替身74
4.3现实中的情况与应对策略75
4.3.1新项目75
4.3.2项目进行中76
4.3.3遗留系统77
4.3.4集成测试78
4.4流程80
4.5小结82
第二部分部署流水线84
第5章 部署流水线解析84
5.1引言84
5.2什么是部署流水线85
5.3部署流水线的相关实践91
5.3.1只生成一次二进制包91
5.3.2对不同环境采用同一部署方式93
5.3.3对部署进行冒烟测试94
5.3.4向生产环境的副本中部署94
5.3.5每次变更都要立即在流水线中传递95
5.3.6只要有环节失败,就停止整个流水线96
5.4提交阶段96
5.5自动化验收测试之门99
5.6后续的测试阶段102
5.6.1手工测试103
5.6.2非功能测试103
5.7发布准备104
5.7.1自动部署与发布104
5.7.2变更的撤销106
5.7.3在成功的基础上构建107
5.8实现一个部署流水线107
5.8.1对价值流进行建模并创建简单的可工作框架107
5.8.2构建和部署过程的自动化108
5.8.3自动化单元测试和代码分析109
5.8.4自动化验收测试109
5.8.5部署流水线的演进110
5.9度量111
5.10小结113
第6章 构建与部署的脚本化115
6.1引言115
6.2构建工具概览116
6.2.1 Make118
6.2.2 Ant118
6.2.3 NAnt与MSBuild119
6.2.4 Maven120
6.2.5 Rake121
6.2.6 Buildr121
6.2.7 Psakc121
6.3构建部署脚本化的原则与实践122
6.3.1为部署流水线的每个阶段创建脚本122
6.3.2使用恰当的技术部署应用程序122
6.3.3使用同样的脚本向所有环境部署123
6.3.4使用操作系统自带的包管理工具124
6.3.5确保部署流程是幂等的(Idempotent)125
6.3.6部署系统的增量式演进126
6.4面向JVM的应用程序的项目结构126
6.5部署脚本化129
6.5.1多层的部署和测试130
6.5.2测试环境配置131
6.6小贴士132
6.6.1总是使用相对路径132
6.6.2消除手工步骤132
6.6.3从二进制包到版本控制库的内建可追溯性133
6.6.4不要把二进制包作为构建的一部分放到版本控制库中133
6.6.5“test”不应该让构建失败134
6.6.6用集成冒烟测试来限制应用程序134
6.6.7NET小贴士135
6.7小结135
第7章 提交阶段137
7.1引言137
7.2提交阶段的原则和实践138
7.2.1提供快速有用的反馈138
7.2.2何时令提交阶段失败139
7.2.3精心对待提交阶段140
7.2.4让开发人员也拥有所有权140
7.2.5在超大项目团队中指定一个构建负责人141
7.3提交阶段的结果141
7.4提交测试套件的原则与实践144
7.4.1避免用户界面145
7.4.2使用依赖注入145
7.4.3避免使用数据库145
7.4.4在单元测试中避免异步146
7.4.5使用测试替身146
7.4.6最少化测试中的状态149
7.4.7时间的伪装150
7.4.8蛮力150
7.5小结151
第8章 自动化验收测试152
8.1引言152
8.2为什么验收测试是至关重要的153
8.2.1如何创建可维护的验收测试套件155
8.2.2 GUI上的测试156
8.3创建验收测试157
8.3.1分析人员和测试人员的角色157
8.3.2迭代开发项目中的分析工作157
8.3.3将验收条件变成可执行的规格说明书158
8.4应用程序驱动层161
8.4.1如何表述验收条件163
8.4.2窗口驱动器模式:让测试与GUI解耦164
8.5实现验收测试166
8.5.1验收测试中的状态166
8.5.2过程边界、封装和测试168
8.5.3管理异步与超时问题169
8.5.4使用测试替身对象171
8.6验收测试阶段174
8.6.1确保验收测试一直处于通过状态175
8.6.2部署测试177
8.7验收测试的性能178
8.7.1重构通用任务178
8.7.2共享昂贵资源179
8.7.3并行测试180
8.7.4使用计算网格180
8.8小结181
第9章 非功能需求的测试183
9.1引言183
9.2非功能需求的管理184
9.3如何为容量编程186
9.4容量度量188
9.5容量测试环境191
9.6自动化容量测试194
9.6.1通过UI的容量测试195
9.6.2基于服务或公共API来录制交互操作196
9.6.3使用录制的交互模板197
9.6.4使用容量测试桩开发测试198
9.7将容量测试加入到部署流水线中199
9.8容量测试系统的附加价值201
9.9小结202
第10章 应用程序的部署与发布203
10.1引言203
10.2创建发布策略204
10.2.1发布计划205
10.2.2发布产品205
10.3应用程序的部署和晋级206
10.3.1首次部署206
10.3.2对发布过程进行建模并让构建晋级207
10.3.3配置的晋级209
10.3.4联合环境209
10.3.5部署到试运行环境210
10.4部署回滚和零停机发布211
10.4.1通过重新部署原有的正常版本来进行回滚211
10.4.2零停机发布212
10.4.3蓝绿部署212
10.4.4金丝雀发布213
10.5紧急修复216
10.6持续部署216
10.7小贴士和窍门219
10.7.1真正执行部署操作的人应该参与部署过程的创建219
10.7.2记录部署活动220
10.7.3不要删除旧文件,而是移动到别的位置220
10.7.4部署是整个团队的责任220
10.7.5服务器应用程序不应该有GUI220
10.7.6为新部署留预热期221
10.7.7快速失败221
10.7.8不要直接对生产环境进行修改222
10.8小结222
第三部分 交付生态圈224
第11章 基础设施和环境管理224
11.1 引言224
11.2理解运维团队的需要225
11.2.1文档与审计226
11.2.2异常事件的告警227
11.2.3保障IT服务持续性的计划227
11.2.4使用运维团队熟悉的技术228
11.3基础设施的建模和管理229
11.3.1基础设施的访问控制230
11.3.2对基础设施进行修改231
11.4服务器的准备及其配置的管理232
11.4.1服务器的准备233
11.4.2服务器的持续管理234
11.5中间件的配置管理239
11.5.1管理配置项239
11.5.2产品研究241
11.5.3考查中间件是如何处理状态的242
11.5.4查找用于配置的API242
11.5.5使用更好的技术243
11.6基础设施服务的管理243
11.7虚拟化245
11.7.1虚拟环境的管理247
11.7.2虚拟环境和部署流水线249
11.7.3用虚拟环境做高度的并行测试251
11.8云计算252
11.8.1云中基础设施253
11.8.2云中平台254
11.8.3没有普适存在255
11.8.4对云计算的批评256
11.9基础设施和应用程序的监控256
11.9.1收集数据257
11.9.2记录日志259
11.9.3建立信息展示板259
11.9.4行为驱动的监控261
11.10小结261
第12章 数据管理263
12.1引言263
12.2数据库脚本化264
12.3增量式修改265
12.3.1对数据库进行版本控制265
12.3.2联合环境中的变更管理267
12.4数据库回滚和无停机发布268
12.4.1保留数据的回滚268
12.4.2将应用程序部署与数据库迁移解耦269
12.5测试数据的管理270
12.5.1为单元测试进行数据库模拟271
12.5.2管理测试与数据之间的耦合272
12.5.3测试独立性272
12.5.4建立和销毁273
12.5.5连贯的测试场景273
12.6数据管理和部署流水线274
12.6.1提交阶段的测试数据274
12.6.2验收测试中的数据275
12.6.3容量测试的数据276
12.6.4其他测试阶段的数据277
12.7小结278
第13章 组件和依赖管理280
13.1 引言280
13.2保持应用程序可发布281
13.2.1将新功能隐蔽起来,直到它完成为止282
13.2.2所有修改都是增量式的283
13.2.3通过抽象来模拟分支284
13.3依赖285
13.3.1依赖地狱286
13.3.2库管理287
13.4组件289
13.4.1如何将代码库分成多个组件289
13.4.2将组件流水线化292
13.4.3集成流水线293
13.5管理依赖关系图295
13.5.1构建依赖图295
13.5.2为依赖图建立流水线297
13.5.3什么时候要触发构建299
13.5.4谨慎乐观主义300
13.5.5循环依赖302
13.6管理二进制包303
13.6.1制品库是如何运作的303
13.6.2部署流水线如何与制品库相结合304
13.7用Maven管理依赖304
13.8小结308
第14章 版本控制进阶309
14.1引言309
14.2版本控制的历史310
14.2.1 CVS310
14.2.2 SVN311
14.2.3商业版本控制系统312
14.2.4放弃悲观锁313
14.3分支与合并314
14.3.1合并316
14.3.2分支、流和持续集成317
14.4 DVCS319
14.4.1什么是D VCS319
14.4.2 DVCS简史321
14.4.3企业环境中的DVCS321
14.4.4使用DVCS322
14.5基于流的版本控制系统324
14.5.1什么是基于流的版本控制系统324
14.5.2使用流的开发模型326
14.5.3静态视图和动态视图327
14.5.4使用基于流的版本控制系统做持续集成328
14.6主干开发329
14.7按发布创建分支332
14.8按功能特性分支333
14.9按团队分支335
14.10小结338
第15章 持续交付管理340
15.1引言340
15.2配置与发布管理成熟度模型341
15.3项目生命周期343
15.3.1识别阶段344
15.3.2启动阶段345
15.3.3初始阶段346
15.3.4开发与发布347
15.3.5运营阶段349
15.4风险管理流程350
15.4.1风险管理基础篇350
15.4.2风险管理时间351
15.4.3如何做风险管理的练习352
15.5常见的交付问题、症状和原因353
15.5.1不频繁的或充满缺陷的部署353
15.5.2较差的应用程序质量354
15.5.3缺乏管理的持续集成工作流程355
15.5.4较差的配置管理355
15.6符合度与审计356
15.6.1文档自动化356
15.6.2加强可跟踪性357
15.6.3在筒仓中工作358
15.6.4变更管理358
15.7小结360
参考书目361
热门推荐
- 177767.html
- 3580435.html
- 715211.html
- 2099849.html
- 1437878.html
- 1824135.html
- 199912.html
- 1136087.html
- 3789342.html
- 2286022.html
- http://www.ickdjs.cc/book_828128.html
- http://www.ickdjs.cc/book_1248274.html
- http://www.ickdjs.cc/book_423214.html
- http://www.ickdjs.cc/book_1488083.html
- http://www.ickdjs.cc/book_3459643.html
- http://www.ickdjs.cc/book_629489.html
- http://www.ickdjs.cc/book_3425023.html
- http://www.ickdjs.cc/book_1021640.html
- http://www.ickdjs.cc/book_1449109.html
- http://www.ickdjs.cc/book_3058193.html