𝔖 Scriptorium
✦   LIBER   ✦

πŸ“

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

✍ Scribed by Jez Humble, David Farley


Publisher
Addison-Wesley Professional
Year
2010
Tongue
English
Leaves
497
Series
Addison-Wesley Signature Series Fowler
Edition
1
Category
Library

⬇  Acquire This Volume

No coin nor oath required. For personal study only.

✦ Synopsis


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


Contents......Page 9
Foreword......Page 21
Preface......Page 23
Acknowledgments......Page 31
About the Authors......Page 33
Part I: Foundations......Page 35
Introduction......Page 37
Some Common Release Antipatterns......Page 38
How Do We Achieve Our Goal?......Page 45
What Are the Benefits?......Page 51
The Release Candidate......Page 56
Principles of Software Delivery......Page 58
Summary......Page 63
Introduction......Page 65
Using Version Control......Page 66
Managing Dependencies......Page 72
Managing Software Configuration......Page 73
Managing Your Environments......Page 83
Summary......Page 88
Introduction......Page 89
Implementing Continuous Integration......Page 90
Prerequisites for Continuous Integration......Page 93
Using Continuous Integration Software......Page 97
Essential Practices......Page 100
Suggested Practices......Page 105
Distributed Teams......Page 109
Distributed Version Control Systems......Page 113
Summary......Page 116
Introduction......Page 117
Types of Tests......Page 118
Real-Life Situations and Strategies......Page 126
Process......Page 133
Summary......Page 135
Part II: The Deployment Pipeline......Page 137
Introduction......Page 139
What Is a Deployment Pipeline?......Page 140
Deployment Pipeline Practices......Page 147
The Commit Stage......Page 154
The Automated Acceptance Test Gate......Page 156
Subsequent Test Stages......Page 160
Preparing to Release......Page 162
Implementing a Deployment Pipeline......Page 167
Metrics......Page 171
Summary......Page 174
Introduction......Page 177
An Overview of Build Tools......Page 178
Principles and Practices of Build and Deployment Scripting......Page 186
Project Structure for Applications That Target the JVM......Page 191
Deployment Scripting......Page 194
Tips and Tricks......Page 198
Summary......Page 202
Introduction......Page 203
Commit Stage Principles and Practices......Page 204
The Results of the Commit Stage......Page 208
Commit Test Suite Principles and Practices......Page 211
Summary......Page 219
Introduction......Page 221
Why Is Automated Acceptance Testing Essential?......Page 222
Creating Acceptance Tests......Page 227
The Application Driver Layer......Page 232
Implementing Acceptance Tests......Page 238
The Acceptance Test Stage......Page 247
Acceptance Test Performance......Page 252
Summary......Page 256
Introduction......Page 259
Managing Nonfunctional Requirements......Page 260
Programming for Capacity......Page 262
Measuring Capacity......Page 265
The Capacity-Testing Environment......Page 268
Automating Capacity Testing......Page 272
Adding Capacity Tests to the Deployment Pipeline......Page 278
Additional Benefits of a Capacity Test System......Page 281
Summary......Page 282
Introduction......Page 283
Creating a Release Strategy......Page 284
Deploying and Promoting Your Application......Page 287
Rolling Back Deployments and Zero-Downtime Releases......Page 293
Emergency Fixes......Page 299
Continuous Deployment......Page 300
Tips and Tricks......Page 304
Summary......Page 307
Part III: The Delivery Ecosystem......Page 309
Introduction......Page 311
Understanding the Needs of the Operations Team......Page 313
Modeling and Managing Infrastructure......Page 317
Managing Server Provisioning and Configuration......Page 322
Managing the Configuration of Middleware......Page 329
Managing Infrastructure Services......Page 334
Virtualization......Page 337
Cloud Computing......Page 346
Monitoring Infrastructure and Applications......Page 351
Summary......Page 357
Introduction......Page 359
Database Scripting......Page 360
Incremental Change......Page 361
Rolling Back Databases and Zero-Downtime Releases......Page 365
Managing Test Data......Page 368
Data Management and the Deployment Pipeline......Page 372
Summary......Page 377
Introduction......Page 379
Keeping Your Application Releasable......Page 380
Dependencies......Page 385
Components......Page 390
Managing Dependency Graphs......Page 397
Managing Binaries......Page 407
Managing Dependencies with Maven......Page 409
Summary......Page 413
Introduction......Page 415
A Brief History of Revision Control......Page 416
Branching and Merging......Page 422
Distributed Version Control Systems......Page 427
Stream-Based Version Control Systems......Page 433
Develop on Mainline......Page 439
Branch for Release......Page 442
Branch by Feature......Page 444
Branch by Team......Page 446
Summary......Page 449
Introduction......Page 451
A Maturity Model for Configuration and Release Management......Page 453
Project Lifecycle......Page 455
A Risk Management Process......Page 463
Common Delivery Problemsβ€”Their Symptoms and Causes......Page 466
Compliance and Auditing......Page 470
Summary......Page 476
Bibliography......Page 477
A......Page 479
B......Page 481
C......Page 482
D......Page 484
E......Page 486
G......Page 487
I......Page 488
L......Page 489
N......Page 490
P......Page 491
R......Page 492
S......Page 493
T......Page 495
V......Page 496
Z......Page 497


πŸ“œ SIMILAR VOLUMES


Continuous Delivery: Reliable Software R
✍ Farley, David;Humble, Jez πŸ“‚ Library πŸ“… 2015;2010 πŸ› Addison-Wesley Professional 🌐 English

<div><p><strong>Winner of the 2011 </strong>Jolt Excellence Award<strong>!</strong> </p><br><p>Getting software released to users is often a painful, risky, and time-consuming process.</p><br><p>This groundbreaking new book sets out the principles and technical practices that enable</p><br><p>rapi

Continuous delivery: reliable software r
✍ Humble, Jez;Farley, David πŸ“‚ Library πŸ“… 2010;2015 πŸ› Addison-Wesley Professional 🌐 English

<b>Winner of the 2011<b>Jolt Excellence Award</b>!</b><br /><br />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 n

Continuous Delivery: Reliable Software R
✍ Jez Humble, David Farley πŸ“‚ Library πŸ“… 2010 πŸ› Addison-Wesley 🌐 English

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, deploy

Continuous Delivery: Reliable Software R
✍ Jez Humble, David Farley πŸ“‚ Library πŸ› Addison-Wesley Professional 🌐 English

<p><span>Winner of the 2011 </span><span>Jolt Excellence Award</span><span>!</span><span><br></span></p><p><span>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, in