图书介绍

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

持续交付 发布可靠软件的系统方法 英文版
  • (英)亨布尔(JezHumble),(英)法利(DavidFarley)著 著
  • 出版社: 北京:人民邮电出版社
  • ISBN:9787115403759
  • 出版时间:2015
  • 标注页数:444页
  • 文件大小:182MB
  • 文件页数:473页
  • 主题词:软件可靠性-研究-英文

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

持续交付 发布可靠软件的系统方法 英文版PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

Part Ⅰ:基础篇1

Chapter 1:软件交付的问题3

引言3

一些常见的发布反模式4

反模式:手工部署软件5

反模式:开发完成之后才向类生产环境部署7

反模式:生产环境的手工配置管理9

我们能做得更好吗10

如何实现目标11

每次修改都应该触发反馈流程13

必须尽快接收反馈/14

交付团队必须接收反馈并作出反应15

这个流程可以推广吗16

收效17

授权团队17

减少错误18

缓解压力20

部署的灵活性21

多加练习,使其完美22

候选发布版本22

Every Check-in Leads to a Potential Release23

软件交付的原则24

为软件的发布创建一个可重复且可靠的过程24

将几乎所有事情自动化25

把所有的东西都纳入版本控制26

提前并频繁地做让你感到痛苦的事26

内建质量27

“DONE”意味着“已发布”27

交付过程是每个成员的责任28

持续改进28

小结29

Chapter 2:配置管理31

引言31

使用版本控制32

对所有内容进行版本控制33

频繁提交代码到主干35

使用意义明显的提交注释37

依赖管理38

外部库文件管理38

组件管理39

软件配置管理39

配置与灵活性40

配置的分类41

应用程序的配置管理43

跨应用的配置管理47

管理配置信息的原则47

环境管理49

环境管理的工具53

变更过程管理53

小结54

Chapter 3:持续集成55

引言55

实现持续集成56

准备工作56

一个基本的持续集成系统57

持续集成的前提条件59

频繁提交59

创建全面的自动化测试套件60

保持较短的构建和测试过程60

管理开发工作区62

使用持续集成软件63

基本操作63

铃声和口哨63

必不可少的实践66

构建失败之后不要提交新代码66

提交前在本地运行所有的提交测试,或者让持续集成服务器完成此事66

等提交测试通过后再继续工作67

回家之前,构建必须处于成功状态68

时刻准备着回滚到前一个版本69

在回滚之前要规定一个修复时间70

不要将失败的测试注释掉70

为自己导致的问题负责70

测试驱动的开发71

推荐的实践71

极限编程开发实践71

若违背架构原则,就让构建失败72

若测试运行变慢,就让构建失败73

若有编译警告或代码风格问题,就让测试失败73

分布式团队75

对流程的影响75

集中式持续集成76

技术问题76

替代方法77

分布式版本控制系统79

小结82

Chapter 4:测试策略的实现83

引言83

测试的分类84

业务导向且支持开发过程的测试85

技术导向且支持开发过程的测试89

业务导向且评价项目的测试89

技术导向且评价项目的测试91

测试替身91

现实中的情况与应对策略92

新项目92

项目进行中94

遗留系统95

集成测试96

流程99

小结101

Part Ⅱ:部署流水线103

Chapter 5:部署流水线解析105

引言105

什么是部署流水线106

部署流水线的相关实践113

只生成一次二进制包113

对不同环境采用同一部署方式115

对部署进行冒烟测试117

向生产环境的副本中部署117

每次变更都要立即在流水线中传递118

只要有环节失败,就停止整个流水线119

提交阶段120

自动化验收测试之门122

后续的测试阶段126

手工测试128

非功能测试128

发布准备128

自动部署与发布129

变更的撤销131

在成功的基础上构建132

实现一个部署流水线133

对价值流进行建模并创建简单的可工作框架133

构建和部署过程的自动化134

自动化单元测试和代码分析135

自动化验收测试136

部署流水线的演进136

度量137

小结140

Chapter 6:构建与部署的脚本化143

引言143

构建工具概览144

Make146

Ant147

NAnt与MSBuild148

Maven149

Rake150

Buildr151

Psake151

构建部署脚本化的原则与实践152

为部署流水线的每个阶段创建脚本152

使用恰当的技术部署应用程序152

使用同样的脚本向所有环境部署153

使用操作系统自带的包管理工具154

确保部署流程是幂等的155

部署系统的增量式演进157

面向JVM的应用程序的项目结构157

部署脚本化160

多层的部署和测试162

测试环境配置163

小贴士164

总是使用相对路径164

消除手工步骤165

从二进制包到版本控制库的内建可追溯性165

不要把二进制包作为构建的一部分放到版本控制库中166

“test”不应该让构建失败166

用集成冒烟测试来限制应用程序167

.NET小贴士167

小结168

Chapter 7:提交阶段169

引言169

提交阶段的原则和实践170

提供快速有用的反馈171

何时令提交阶段失败172

精心对待提交阶段172

让开发人员也拥有所有权173

在超大项目团队中指定一个构建负责人174

提交阶段的结果174

提交测试套件的原则与实践177

避免用户界面178

使用依赖注入179

避免使用数据库179

在单元测试中避免异步180

使用测试替身180

最少化测试中的状态183

最少化测试中的状态184

蛮力185

小结185

Chapter 8:自动化验收测试187

引言187

为什么验收测试是至关重要的188

如何创建可维护的验收测试套件190

GUI上的测试192

创建验收测试193

分析人员和测试人员的角色193

迭代开发项目中的分析工作193

将验收条件变成可执行的规格说明书195

应用程序驱动层198

如何表述验收条件200

窗口驱动器模式:让测试与GUI解耦201

实现验收测试204

验收测试中的状态204

过程边界、封装和测试206

管理异步与超时问题207

使用测试替身对象210

验收测试阶段213

确保验收测试一直处于通过状态214

部署测试217

验收测试的性能218

重构通用任务219

共享昂贵资源219

并行测试220

使用计算网格220

小结222

Chapter 9:非功能需求的测试225

引言225

非功能需求的管理226

如何为容量编程228

容量度量231

容量测试环境234

自动化容量测试238

通过UI的容量测试240

基于服务或公共API来录制交互操作241

使用录制的交互模板241

使用容量测试桩开发测试244

将容量测试加入到部署流水线中244

容量测试系统的附加价值247

小结248

Chapter 10:应用程序的部署与发布249

引言249

创建发布策略250

发布计划251

发布产品252

应用程序的部署和晋级253

首次部署253

对发布过程进行建模并让构建晋级254

配置的晋级257

联合环境258

部署到试运行环境258

部署回滚和零停机发布259

通过重新部署原有的正常版本来进行回滚260

零停机发布260

蓝绿部署261

金丝雀发布263

紧急修复265

持续部署266

小贴士和窍门270

真正执行部署操作的人应该参与部署过程的创建270

记录部署活动271

不要删除旧文件,而是移动到别的位置271

部署是整个团队的责任271

服务器应用程序不应该有GUI271

为新部署留预热期272

快速失败273

不要直接对生产环境进行修改273

小结273

Part Ⅲ:交付生态圈275

Chapter 11:基础设施和环境管理277

引言277

理解运维团队的需要279

文档与审计280

异常事件的告警281

保障IT服务持续性的计划282

使用运维团队熟悉的技术282

基础设施的建模和管理283

基础设施的访问控制285

对基础设施进行修改287

服务器的准备及其配置的管理288

服务器的准备288

服务器的持续管理290

中间件的配置管理295

管理配置项296

产品研究298

考查中间件是如何处理状态的298

查找用于配置的API299

使用更好的技术299

基础设施服务的管理300

虚拟化303

虚拟环境的管理305

虚拟环境和部署流水线308

用虚拟环境做高度的并行测试310

云计算312

云中基础设施313

云中平台314

没有普适存在315

对云计算的批评316

基础设施和应用程序的监控317

收集数据318

记录日志320

建立信息展示板321

行为驱动的监控323

小结323

Chapter 12:数据管理325

引言325

数据库脚本化326

增量式修改327

对数据库进行版本控制328

联合环境中的变更管理329

数据库回滚和无停机发布331

保留数据的回滚331

将应用程序部署与数据库迁移解耦333

测试数据的管理334

为单元测试进行数据库模拟335

管理测试与数据之间的耦合336

测试独立性337

建立和销毁337

连贯的测试场景337

数据管理和部署流水线338

提交阶段的测试数据338

验收测试中的数据339

容量测试的数据341

其他测试阶段的数据342

小结343

Chapter 13:组件和依赖管理345

引言345

保持应用程序可发布346

将新功能隐蔽起来,直到它完成为止347

所有修改都是增量式的349

通过抽象来模拟分支349

依赖351

依赖地狱352

库管理354

组件356

如何将代码库分成多个组件356

将组件流水线化360

集成流水线361

管理依赖关系图363

构建依赖图363

为依赖图建立流水线365

什么时候要触发构建369

谨慎乐观主义370

循环依赖372

管理二进制包373

制品库是如何运作的373

部署流水线如何与制品库相结合374

用Maven管理依赖375

小结379

Chapter 14:版本控制进阶381

引言381

版本控制的历史382

C VS/CVS382

S VN383

商业版本控制系统385

放弃悲观锁386

分支与合并388

合并389

分支、流和持续集成390

DVCS393

什么是DVCS393

DVCS简史395

企业环境中的DVCS396

使用DVCS397

基于流的版本控制系统399

什么是基于流的版本控制系统399

使用流的开发模型400

静态视图和动态视图403

使用基于流的版本控制系统做持续集成403

主干开发405

按发布创建分支408

按功能特性分支410

按团队分支412

小结415

Chapter 15:持续交付管理417

引言417

配置与发布管理成熟度模型419

项目生命周期421

识别阶段422

启动阶段423

初始阶段424

开发与发布425

运营阶段428

风险管理流程429

风险管理基础篇429

风险管理时间轴430

如何做风险管理的练习431

常见的交付问题、症状和原因432

不频繁的或充满缺陷的部署433

较差的应用程序质量434

缺乏管理的持续集成工作流程435

较差的配置管理436

符合度与审计436

文档自动化437

加强可跟踪性438

在筒仓中工作439

变更管理440

小结442

参考文献443

热门推荐