The difference between continuous delivery and continuous deployment is a common source of confusion. Some people think these terms are interchangeable and see them as two synonyms for the same concept, but they have, in fact, two different meanings.
Continuous delivery is a practice where teams ensure that the artifacts they build are continuously validated and ready to be deployed to the production environment. Often, this is done by deploying the artifacts to a production-like environment, such as acceptance or even a staging environment, and applying a series of tests, such as verification tests, to ensure the application is working correctly.
Continuous deployment is a practice where every version that is deployed to a production-like environment and passes all tests and verifications, is also deployed to production automatically...