Continuous Integration and delivery
Continuous Integration (CI) is a practice of merging all of the developers' working copies into a shared source control "mainline" frequently, perhaps several times a day.
In the past, some development teams would work on segregated code branches for weeks or even months, implementing somewhat separate features. This created a situation where the project versions grew out of sync, and merging the changes became a very time consuming and painful process of trying to reconcile the versions. This process was referred to as "integration hell". The main purpose of CI is to eliminate these integration issues.
CI is a prerequisite of continuous delivery, and using both is commonly referred to as the CI/CD approach.
Continuous Delivery (CD) is the practice of producing software in short cycles, ensuring that the software can be reliably released at any time. Unlike continuous deployment, CD doesn't aim to push every code change to production, but aims to ensure that...