CI/CD & DevOps Practices Practice Question 1: Delivery vs Deployment
CI/CD & DevOps Practices · Test 1 · question 1 of 10
A team merges to the main branch several times a day. Every merge triggers a pipeline that builds, runs the full automated test suite, and automatically deploys the result to a staging environment. Any build that passes staging is kept production-ready, but it only goes to production when the product owner clicks an approval button at a time the business chooses.
Which term most precisely describes the practice this team has in place?
Show answer and explanation
Answer:
Continuous delivery means the software is always in a deployable state and *can* be released to production at any time, while the decision to actually do so may be a business one. Continuous deployment goes one step further: every change that passes the pipeline goes to production automatically, with no human gate. This team keeps every passing build production-ready and releases on a person's decision, which is exactly continuous delivery (B).
Option A undersells the setup. Continuous integration is the practice of frequently merging to mainline with an automated, self-testing build. This team does that, but it also deploys automatically to staging and keeps every build ready for production, which goes beyond CI.
Option C is wrong because continuous deployment refers to automatic deployment to production. Deploying automatically to staging does not qualify; the manual production approval is the thing that separates delivery from deployment.
Option D is wrong because continuous delivery explicitly allows a business decision about when to release. A human approval gate is compatible with continuous delivery; it only rules out continuous deployment.
References: Continuous Delivery (Martin Fowler); Continuous Integration (Martin Fowler)