Terms— Continuous Integration, Continuous Delivery and Continuous Deployment
Continuous Integration- Is a practice of merging the Software development work constantly with master branch. This way the code checked in will be testes earlier to catch issues promoting software quality.
Continuous Delivery- Is a practice of delivery of code to environment once code is ready. This environment could be staging (test environment) or production environment. This way the product will be available for review for QA teams or customer smoke tests. Unit testing cannot cover every testing scenarios, hence we need QA teams to review the product.
Continuous Deployment- Is a practice of pushing the code to production environment as soon as the code is ready. Continuous Deployment requires, Continuous Integration and Continuous Delivery, this makes sure the code quality is maintained throughout the Software Development process.