Description
Book SynopsisDave Farley has been having fun with computers for nearly 30 years. Over that period he has worked on most types of software, from firmware, through tinkering with operating systems and device drivers, to writing games, and commercial applications of all shapes and sizes. He started working in large scale distributed systems about 20 years ago, doing research into the development of loose-coupled, message-based systems - a forerunner of SOA. He has a wide range of experience leading the development of complex software in teams, both large and small, in the UK and USA. Dave was an early adopter of agile development techniques, employing iterative development, continuous integration and significant levels of automated testing on commercial projects from the early 1990s. He honed his approach to agile development in his four and a half year stint at ThoughtWorks where he was a technical principal working on some of their biggest and most challenging projects. Dave is c
Trade Review
"If you need to deploy software more frequently, this book is for you. Applying it will help you reduce risk, eliminate tedious work, and increase confidence. I'll be using the principles and practices here on all my current projects." -Kent Beck, Three Rivers Institute "Whether or not your software development team already understands that continuous integration is every bit as necessary as source code control, this is required reading. This book is unique in tying the whole development and delivery process together, providing a philosophy and principles, not just techniques and tools. The authors make topics from test automation to automated deployment accessible to a wide audience. Everyone on a development team, including programmers, testers, system administrators, DBAs, and managers, needs to read this book." -Lisa Crispin, co-author of Agile Testing "For many organizations Continuous Delivery isn't just a deployment methodology, it's critical to doing business. This book shows you how to make Continuous Delivery an effective reality in your environment." -James Turnbull, author of Pulling Strings with Puppet "A clear, precise, well-written book that gives readers an idea of what to expect for the release process. The authors give a step-by-step account of expectations and hurdles for software deployment. This book is a necessity for any software engineer's library." -Leyna Cotran, Institute for Software Research, University of California, Irvine "Humble and Farley illustrates what makes fast-growing web applications successful. Continuous deployment and delivery has gone from controversial to commonplace and this book covers it excellently. It's truly the intersection of development and operations on many levels, and these guys nailed it." -John Allspaw, VP Technical Operations, Etsy.com and author of The Art of Capacity Planning and Web Operations "If you are in the business of building and delivering a software-based service, you would be well served to internalize the concepts that are so clearly explained in Continuous Delivery. But going beyond just the concepts, Humble and Farley provide an excellent playbook for rapidly and reliably delivering change." -Damon Edwards, President of DTO Solutions and co-editor of dev2ops.org "I believe that anyone who deals with software releases would be able to pick up this book, go to any chapter and quickly get valuable information; or read the book from cover to cover and be able to streamline their build and deploy process in a way that makes sense for their organization. In my opinion, this is an essential handbook for building, deploying, testing, and releasing software." -Sarah Edrie, Director of Quality Engineering, Harvard Business School "Continuous Delivery is the logical next step after Continuous Integration for any modern software team. This book takes the admittedly ambitous goal of constantly delivering valuable software to customers, and makes it achievable through a set of clear, effective principles and practices." -Rob Sanheim, Principal at Relevance, Inc.
Table of Contents
Foreword by Martin Fowler
Preface
Acknowledgements
About the Authors
Part I Foundations
1 The Problem of Delivering Software
2 Configuration Management
3 Continuous Integration
4 Implementing a Testing Strategy
Part II The Deployment Pipeline
5 Anatomy of the Deployment Pipeline
6 Build and deployment scripting
7 Commit Testing Stage
8 Automated Acceptance Testing
9 Testing Non-Functional Requirements
10 Deploying and Releasing Applications
Part III The Delivery Ecosystem
11 Managing infrastructure and environments
12 Managing Data
13 Managing components and dependencies
14 Advanced version control
15 Managing Continuous Delivery
Bibliography
Index