Continuous Delivery shows how to create fully automated, repeatable, and reliable processes for rapidly moving changes through build, deploy, test, and release. Using these techniques, software organizations are getting critical fixes and other new releases into production in hours—sometimes even minutes—even in large projects with complex code bases.
Jez Humble and David Farley begin by presenting the high-level principles and practices required to succeed with regular, repeatable, low-risk releases. 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 deployment pipelines, from infrastructure to data management and governance.
The authors introduce many state-of-the-art techniques, including in-production monitoring and tracing, dependency management, and the use of virtualization. For each, they review key issues, demonstrate how to mitigate risks, and identify best practices.
Review By: Noreen K Dertinger 03/18/2011If you work in software development I highly recommend reading "Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation.? The authors, Jez Humble and David Farley, make a case for automating the various phases of a software delivery pipeline. They believe that by automating the build, deployment, and testing processes, the process of delivering software can be sped up and will contain fewer errors. The ability to deliver reliable software is a key factor that will determine success or failure.
The central idea of this book is the deployment pipeline, by which the authors mean automation of an organization’s software project’s build, deploy, test, and release processes. Although the specific processes for these areas may vary organization to organization, automation can reduce the amount of manual work required, cutting down on the level of risk at release time. A deployment pipeline with largely automated processes that have been well implemented will be repeatable, faster, and more reliable.
What attracted me to this book was the statement on the back cover: “This book will help you move from idea to release faster than ever—so that you can deliver value to your business rapidly and reliably.” The authors provide a good framework toward achieving this goal. Sufficient information is provided to start with and build on. It is up to readers to both tailor the concepts to fit their organizations and also promote the adoption of the concepts.
The book is written in such a way that one can start reading at just about any chapter. The opening chapters may seem redundant to more experienced professional, but even they may like to refer to that material. Read from end to end, this book will provide a valuable reference to implementing the processes described within. The authors have written the book clearly, and I found it a pleasure to read.
The bottom line is that if you are looking for ideas on how to improve your software release process, then I strongly recommend you consider obtaining a copy of Continuous Delivery. I encourage readers to share this book with their staff and coworkers, too. You will not be sorry you did