Continuous Deployment (CD)

Continuous Deployment (CD) is a software development practice where code changes are automatically tested and deployed to production without manual intervention. Building on Continuous Integration (CI) and Continuous Delivery (also abbreviated as CD), this approach ensures that every change passing through the production pipeline is released to users.

CD extends Continuous Delivery (which is also abbreviated as CD) by automating the final step of the deployment process. Continuous Delivery focuses on ensuring the code is always ready for deployment, while Continuous Deployment automates the actual release to production. Techniques like feature flags and A/B testing are often employed to manage the user experience, allowing teams to introduce new features gradually or test different versions without overwhelming users with constant changes.

The practice of Continuous Deployment aims to accelerate the delivery of new features, improvements, and bug fixes by automating the deployment process. It relies on automated testing, monitoring, and validation to ensure that each release is reliable and meets quality standards. The pipeline typically includes steps like automated builds, integration tests, user acceptance tests, and deployment scripts.

By deploying changes frequently and in small increments, Continuous Deployment minimizes the risk of deployment errors and makes it easier to roll back changes if issues arise. This practice fosters a culture of continuous improvement, agility, and responsiveness to user feedback, ultimately enhancing the overall software development and delivery process.

Resources

Both Continuous Deployment and Continuous Delivery are commonly abbreviated as CD. But are they the same? If not, how are they differ?
Ken Mugrage, a technology evangelist, shared some pragmatic experience on setting up continuous deployment.