新书报道
当前位置: 首页 >> 电类优秀教材 >> 正文
Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation
发布日期:2015-12-31  浏览

Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation

[Book Description]

Getting software released to users is often a painful, risky, and time-consuming process.

This groundbreaking new book sets out the principles and technical practices that enable

rapid, incremental delivery of high quality, valuable new functionality to users. Through

automation of the build, deployment, and testing process, and improved collaboration between

developers, testers, and operations, delivery teams can get changes released in a matter of hours—

sometimes even minutes-no matter what the size of a project or the complexity of its code base.

 

Jez Humble and David Farley begin by presenting the foundations of a rapid, reliable, low-risk

delivery process. Next, they introduce the “deployment pipeline, an automated process for

managing all changes, from check-in to release. Finally, they discuss the “ecosystem needed to

support continuous delivery, from infrastructure, data and configuration management to governance.

 

The authors introduce state-of-the-art techniques, including automated infrastructure management

and data migration, and the use of virtualization. For each, they review key issues, identify best

practices, and demonstrate how to mitigate risks. Coverage includes

 

• Automating all facets of building, integrating, testing, and deploying software

• Implementing deployment pipelines at team and organizational levels

• Improving collaboration between developers, testers, and operations

• Developing features incrementally on large and distributed teams

• Implementing an effective configuration management strategy

• Automating acceptance testing, from analysis to implementation

• Testing capacity and other non-functional requirements

• Implementing continuous deployment and zero-downtime releases

• Managing infrastructure, data, components and dependencies

• Navigating risk management, compliance, and auditing

 

Whether you're a developer, systems administrator, tester, or manager, this book will help your

organization move from idea to release faster than ever—so you can deliver value to your business

rapidly and reliably.

 

 

[Table of Contents]
Part I: Foundations / 基础篇 1
Chapter 1: The Problem of Delivering Software / 软件交付的问题 3
Introduction / 引言 3
Some Common Release Antipatterns / 一些常见的发布反模式 4
Antipattern: Deploying Software Manually / 反模式:手工部署软件 5
Antipattern:Deploying to a Production-like Environment Only after Development Is Complete / 反模式:开发完成之后才向类生产环境部署 7
Antipattern: Manual Configuration Management of Production Environments / 反模式:生产环境的手工配置管理 9
Can We Do Better? / 我们能做得更好吗 10
How Do We Achieve Our Goal? / 如何实现目标 11
Every Change Should Trigger the Feedback Process / 每次修改都应该触发反馈流程 13
The Feedback Must Be Received as Soon as Possible /  必须尽快接收反馈/ 14
The Delivery Team Must Receive Feedback and Then Act on It / 交付团队必须接收反馈并作出反应 15
Does This Process Scale? / 这个流程可以推广吗 16
What Are the Benefits? / 收效 17
Empowering Teams / 授权团队 17
Reducing Errors / 减少错误 18
Lowering Stress / 缓解压力 20
Deployment Flexibility / 部署的灵活性 21
Practice Makes Perfect / 多加练习,使其完美 22
The Release Candidate / 候选发布版本 22
Every Check-in Leads to a Potential Release 23
Principles of Software Delivery / 软件交付的原则 24
Create a Repeatable,Reliable Process for Releasing Software / 为软件的发布创建一个可重复且可靠的过程 24
Automate Almost Everything / 将几乎所有事情自动化 25
Keep Everything in Version Control / 把所有的东西都纳入版本控制 26
If It Hurts, Do It More Frequently, and Bring the Pain Forward / 提前并频繁地做让你感到痛苦的事 26
Build Quality In / 内建质量 27
Done Means Released / “DONE”意味着“已发布” 27
Everybody Is Responsible for the Delivery Process / 交付过程是每个成员的责任 28
Continuous Improvement / 持续改进 28
Summary / 小结 29
 
Chapter 2: Configuration Management / 配置管理 31
Introduction / 引言 31
Using Version Control / 使用版本控制 32
Keep Absolutely Everything in Version Control / 对所有内容进行版本控制 33
Check In Regularly to Trunk / 频繁提交代码到主干 35
Use Meaningful Commit Messages / 使用意义明显的提交注释 37
Managing Dependencies / 依赖管理 38
Managing External Libraries / 外部库文件管理 38
Managing Components / 组件管理 39
Managing Software Configuration / 软件配置管理 39
Configuration and Flexibility / 配置与灵活性 40
Types of Configuration / 配置的分类 41
Managing Application Configuration / 应用程序的配置管理 43
Managing Configuration across Applications / 跨应用的配置管理 47
Principles of Managing Application Configuration / 管理配置信息的原则 47
Managing Your Environments / 环境管理 49
Tools to Manage Environments / 环境管理的工具 53
Managing the Change Process / 变更过程管理 53
Summary / 小结 54
 
Chapter 3: Continuous Integration / 持续集成 55
Introduction / 引言 55
Implementing Continuous Integration / 实现持续集成 56
What You Need Before You Start / 准备工作 56
A Basic Continuous Integration System / 一个基本的持续集成系统 57
Prerequisites for Continuous Integration / 持续集成的前提条件 59
Check In Regularly / 频繁提交 59
Create a Comprehensive Automated Test Suite / 创建全面的自动化测试套件 60
Keep the Build and Test Process Short / 保持较短的构建和测试过程 60
Managing Your Development Workspace / 管理开发工作区 62
Using Continuous Integration Software / 使用持续集成软件 63
Basic Operation / 基本操作 63
Bells and Whistles / 铃声和口哨 63
Essential Practices / 必不可少的实践 66
Don’t Check In on a Broken Build / 构建失败之后不要提交新代码 66
Always Run All Commit Tests Locally before Committing, or Get Your CI Server to Do It for You / 提交前在本地运行所有的提交测试,或者让持续集成服务器完成此事 66
Wait for Commit Tests to Pass before Moving On / 等提交测试通过后再继续工作 67
Never Go Home on a Broken Build / 回家之前,构建必须处于成功状态 68
Always Be Prepared to Revert to the Previous Revision / 时刻准备着回滚到前一个版本 69
Time-Box Fixing before Reverting / 在回滚之前要规定一个修复时间 70
Don’t Comment Out Failing Tests / 不要将失败的测试注释掉 70
Take Responsibility for All Breakages That Result from Your Changes /为自己导致的问题负责 70
Test-Driven Development / 测试驱动的开发 71
Suggested Practices / 推荐的实践 71
Extreme Programming (XP) Development Practices / 极限编程开发实践 71
Failing a Build for Architectural Breaches / 若违背架构原则,就让构建失败 72
Failing the Build for Slow Tests / 若测试运行变慢,就让构建失败 73
Failing the Build for Warnings and Code Style Breaches / 若有编译警告或代码风格问题,就让测试失败 73
Distributed Teams / 分布式团队 75
The Impact on Process / 对流程的影响 75
Centralized Continuous Integration / 集中式持续集成 76
Technical Issues /技

 

关闭


版权所有:西安交通大学图书馆      设计与制作:西安交通大学数据与信息中心  
地址:陕西省西安市碑林区咸宁西路28号     邮编710049

推荐使用IE9以上浏览器、谷歌、搜狗、360浏览器;推荐分辨率1360*768以上