Two terms that commonly cause confusion are Continuous Delivery and Continuous Deployment. So what exactly is the difference between them?

Continuous Delivery is confidence knowing your codebase could be deployed to production at any given point in time. It implies you have a way of automatically testing and rejecting changes that would break your production environment. Doing Continuous Delivery does not necessarily mean you actually are deploying each and every one of your changes into production.

Continuous Deployment builds on the solid foundations of Continuous Delivery, but takes it a step further. It means every valid code change will be deployed to production automatically.