Both continuous delivery and continuous deployment deal with automating further down the pipeline than CI and are often used interchangeably.
The difference between continuous delivery and continuous deployment is in the level of automation used in software or app releases. In continuous delivery, code automatically moves to production-like environments for further testing and quality assurance, such as assessing risks and identifying source-code vulnerabilities. Human intervention is required to move into production following successful tests.
In continuous deployment, automation goes further. Once the code passes testing, the deployment to production happens automatically—human approval is unnecessary.
How an organization applies the CI/CD pipeline and decides whether to use continuous delivery or deployment depends on its business needs. Continuous deployment is best for DevOps teams with a fast development lifecycle, such as those building e-commerce sites and software as a service (SaaS) platforms.
Continuous deployment supports the software release process by allowing teams to release new or updated software often and as quickly as possible. Because changes are deployed to the public automatically, this type of continuous deployment pipeline is typically used only by DevOps teams who have a proven process.
For teams that might not need to release updates as frequently in their workflow—such as for those building healthcare applications—continuous delivery is typically the preferred option. It is slower but offers another layer of oversight to help ensure functionality for the end-users.
For a closer look at the difference between continuous delivery and continuous deployment, check out this video.