Continuous Delivery and Deployment
Continuous Delivery is the game of delivering features to Production whenever a change is made. It shortens the feedback and even the payment cycle, because you deliver the product more frequently. Because the steps are run multiple times a Sprint, teams need to automate all of the steps to deployment.
The application is built, and its automated test suite is run. In many organizations, it may be promoted through a staging environment where a wider suite of integration tests is performed.
In some organizations, a human (or the Product Owner 😉) decides with each build if enough additional value has been created to be worth deploying. This approach tends to be a sub-optimization.
Continuous Delivery builds on its sibling of Continuous Integration. With Continuous Integration, the team integrates their work more frequently.
Principles
- Build quality in
- Work in small batches
- Computers perform repetitive tasks, people solve problems
- Relentlessly pursue continuous improvement
- Everyone is responsible
Along with the benefits of feedback, continuous delivery also reduces risk since each deployment is smaller. Therefore, if there is a problem, it can be rolled back and found more easily. Some of the other business benefits: Faster time to market; Able to test product ideas sooner and reduced cost of fixing defects.
Resource Links
- What is Continuous Delivery? - by Jez Humble - he wrote the book on the subject.
- Minimum CD - Summarizes the minimum conditions for Continuous Delivery.
- Benefits of Continuous Testing
- Continuous Delivery and the Perils of Feature Branching
- Continuous Delivery Coding Patterns: Latent-to-Live Code & Forward Compatible Interim Versions
- Continuous Delivery: The Value Proposition – Jez Humble
- Continuous Deployment at Instagram
- Continuous deployment for mission-critical applications – Eric Ries
- Continuous deployment in 5 easy steps by Eric Ries
- How Netflix Deploys Code
- What are the technical practices of a Lean Startup?
EXAMPLE FROM REAL WORLD
Related Books
- Accelerate: The Science of Lean Software and DevOps: Building and Scaling High Performing Technology Organizations – Nicole Forsgren, Jez Humble, Gene Kim
- Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation – Jez Humble, David Farley