In this article, we will see Continuous Integration vs Continuous Delivery vs Continuous Deployment.
Continuous Integration (CI)
Continuous Integration is a development practice where developers integrate code into a shared repository frequently, preferably several times a day. Each integration can then be verified by an automated build and automated tests.
One of the key benefits of integrating regularly is that you can detect errors quickly and locate them more easily. As each change introduced is typically small, pinpointing the specific change that introduced a defect can be done quickly.
Continuous Delivery (CD)
Continuous Delivery is a development practice where code changes are automatically built, tested, and prepared for a release to production.
With continuous delivery, every code change is built, tested, and then pushed to a non-production testing or staging environment. There can be multiple, parallel test stages before a production deployment. In the last step, the developer approves the update to production when they are ready.
Continuous Delivery mandates Continuous Integration.
Continuous Deployment (CD)
Continuous Deployment is a software development practice in which every code change goes through the entire pipeline and is put into production, automatically, resulting in many production deployments every day.
With Continuous Delivery your software is always release-ready, yet the timing of when to push it into production is a business decision, and so the final deployment is a manual step. With Continuous Deployment, any updated working version of the application is automatically pushed to production.
Continuous Deployment mandates Continuous Delivery.
The graph below shows the differences between these three terms.