CI – Continuous Integration CD

Continuous Delivery/Deployment

Continuous Integration (CI)

Very often developers push the code to a repository like GitHub, CodeCommit etc. This allows them to outsource the job of building and testing the code because the repository does it for them as soon as the code is pushed. The Developer then receives feedback from the Code repository about the tests and checks that have passed and failed.

This allows the Developers to find bugs early and fix bugs early, delivering faster as the code is tested continuously. They can also deploy the code often. This is called Continuous Integration (CI).

Continuous Delivery (CD)

This ensures that the software is released reliably whenever needed and also that deployment happen often. Automated code deployers can be used like CodeDeploy, Jenkins CD, etc. This allows the Developer to update newer versions of the software which are then automatically tested, checked and deployed.

Continuous Deployment (CD)

Continuous deployment follows the exact same steps as continuous delivery with the difference that it is a fully automated process. From Push to Provision (Deployment) of code, there is no manual intervention. CI takes manual permission after Testing of code and Cont. Delivery may ask for manual permission before deploying the code. In Cont. Deployment, the code has to be vigilantly monitored and then the code with fixed bugs or improved versions may be pushed again which will be deployed automatically.

CICD Pipeline:

Code → Build → Test → Deploy → Provision
           Cont. Integration
                    Cont. Delivery
                               Cont. Deployment