Continuous Delivery – part of the Martin Fowler Signature Series – was published last month and if delivering software to your users quickly and often is important to you, you must get this book. Continuous Delivery is what we provide our clients at Stelligent – delivering complete software systems to users at the push of a button. Jez Humble and David Farley go into great detail in describing everything you need to do to create a continuous delivery system.
This is one of the
To sum up the book in a few bullets:
- The purpose of Continuous Delivery is to reduce the cycle time between an idea and usable software such that it's approaching zero
- Automate (almost) everything necessary to create usable software
- Version complete software systems (not just source code) for every change committed to version control system
- Employ a Deployment Pipeline in which the entire system is recreated whenever a change is committed to the version-control system and provide continuous feedback
- Identify one delivery team consisting of various delivery experts – build, deploy, provisioning, database, testing, etc. – a concept emphasized in the DevOps movement
The authors go into great detail in describing each of these themes. So, if you want the process of delivering software to any target environment – including production – to be a click of a button and something that can be accomplished as often as the business requires, get this book. When you employ the practices in this book, no longer will you need to artificially throttle changes delivered to users for months or even years because of the expense and risk required to deliver software.
As a note, I plan to extract and describe a combination of patterns from this book, the Continuous Integration book, and other patterns we use at Stelligent in upcoming blog posts.