Continuous Delivery Pipeline
Continuous Delivery is a software development discipline where you build software in such a way that the software can be released to production at any time.
- You’re doing continuous delivery when:
- Your software is deployable throughout its lifecycle
- Your team prioritizes keeping the software deployable over working on new features
- Anybody can get fast, automated feedback on the production readiness of their systems any time somebody makes a change to them
- You can perform push-button deployments of any version of the software to any environment on demand
DevOps in it’s truest sense is all about Continuous Delivery (CD). It’s about managing the entire pipeline right from checking-in the code to deploying the latest code/release in Production.
The principal idea behind Continuous Delivery is that there should be enough confidence in the process that any code that’s checked in can be easily and successfully deployed to Production.
Continuous Delivery is not just Continuous Integration (CI). CI is part of CD. From CI we get artifacts after the build finishes and passes basic unit tests. Then we’ve to decide on a reliable and an efficient way to publish the artifacts. In real world scenarios, publishing the artifacts can be bottleneck in the entire release process. If not designed properly, this phase can cause long delays in a release.
Here’s the Continuous Delivery pipeline I use as a blueprint to start any DevOps discussions. I added the some of the relevant tools that can be used in each phase to give an easy starting point to build upon.