The same letters, two different commitments
CD is overloaded on purpose. The same two letters mean two different things, and the difference matters more than most teams admit.
- Continuous Delivery — every commit that passes CI is automatically packaged, versioned, and made ready to deploy. A human still clicks a button (or approves a release ticket) to actually push it to production.
- Continuous Deployment — every commit that passes CI is automatically deployed to production. No human in the loop. The pipeline is the deploy button.
Both require working CI underneath. Delivery is the easier promise: it says we could ship this commit right now if we wanted to. Deployment is the harder promise: it says we are shipping this commit right now, and our test suite plus rollback plan are good enough to bet on it.
Which one do you actually want?
Deployment is glamorous and most teams cannot honestly do it. Delivery is the realistic target until your test coverage, observability, and rollback story are mature. Picking the wrong one — claiming Deployment when your pipeline really only does Delivery — is where outages live.