How to implement Continuous Delivery
Being able to deploy software at the “push of a button” not only reduces release complexity and increases delivery speed, but it also allows feedback to be collected from customers faster, resulting in features being iterated upon with less assumptions.
What is Continuous Delivery?
Continuous Delivery is the practice of frequently releasing software at the push of the “button”. It’s technically enabled by an automated deployment pipeline, but also focuses the mindset of delivering software to customers over building new features.
If it hurts, do it more frequently, and bring the pain forward.
The main benefits of implementing continuous delivery are:
- Reduced deployment risk
- Faster return on investment
- Frequent customer feedback
From a technical standpoint, continuous delivery is the combination of the following:
- Automated deployment scripts
- Automated test suite within a continuous integration system
How to implement continuous delivery
One “button” push deployments
Automate tests within a continuous integration system and have each build deployable to a production environment through the execution of an automated deployment script
Focus on delivering software over building new features
Make minimal marketable features to get software to customers faster
Automate “health checks” for production systems and the delivery pipeline
Fix blockages on the delivery pipeline and your production environment as they happen to maintain the ability to continuously deliver
What to watch out for
- “Finished” software tasks that aren’t deployable
- Partially automated deployment pipeline
- Difficult to fix deployment pipeline