Head First About CI and CD in DevOps
Continuous Integration (CI)
Continuous integration (CI) is the process that ensures the stability of all the available developer source code. All working copies of source code are merged into the trunk/main line (instead of a main branch, this can be a code branch for a given iteration/sprint) and integrated with each other. The primary objective of maintaining a stable code base is achieved through automated builds of each code submitted and the execution of the unit tests. This is done so that defects can be found and addressed quickly. This feature is especially powerful when combined with continuous delivery
Continuous Delivery (CD)
Development teams produce software in short cycles using modern-day software development approaches. One of the biggest challenges is ensuring the reliability of any software releases to the target environments at any given time. A straightforward and reusable deployment process is essential in order to reduce the cost, time, and risk of delivering software changes. These could be incremental updates to the application in production. In a nutshell, CD delivers software changes more frequently and reliably, compared to manual deployment and testing and DevOps can be considered a product of continuous delivery.
Continuous delivery ensures every change can be deployed to production while having the option to hold the production deployment until a manual approval is given. On the other hand, continuous deployment lets every change to be automatically deployed to production. To implement continuous deployment, one must have continuous delivery in place, since continuous deployment is created by automating the approval steps of continuous delivery.