Sign in
← CI/CD
10 min · easy · Lesson 3 of 7

Delivery vs Deployment

Two things CD can mean: continuous delivery (release by a button) and continuous deployment (straight to prod, automatically).

Two meanings of CD: continuous delivery (release by button) and continuous deployment (straight to prod, automatically). How they differ, what they have in common, and what a team needs to roll out without a button.

One abbreviation, two meanings

CD has two expansions, and interviewers like to ask the difference:

The difference comes down to exactly one thing: who triggers the rollout to prod, a person or automation.

Martin Fowler defines Continuous Delivery this way: software is built so that it can be released to production at any moment. His Continuous Deployment means every change goes through the pipeline and lands in prod by itself, so there are many rollouts a day.

The shared part: everything before prod

Both Delivery and Deployment sit on top of CI and do the same thing before production:

commit -> CI (build + tests) -> package the artifact
       -> deploy to staging -> acceptance tests
       -> [ready for production]

At this point you have a verified artifact that can be rolled out at any moment. From here the paths split.

The artifact is built once, then promoted across environments: the same file or image that passed staging goes to prod. Rebuilding right before prod gives you a different build. Nobody tested it: different dependency or base image versions might have been pulled in. In GitLab CI the finished build is passed to the next job through artifacts, or the image is pushed to a registry under an exact tag.

Continuous Delivery: a person decides the release

The artifact is ready and tested, but it ships to prod when a person presses the button. Everything is automated except that final decision to roll out.

When teams do this:

Technically the rollout could happen any second, but a person triggers it.

In GitLab CI the button looks like a job with when: manual:

deploy_production:
  stage: production
  script: ./deploy.sh production
  environment:
    name: production
  rules:
    - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
      when: manual

This job shows up in the pipeline and waits for someone with permission to press run. A button isn't the only way to do it. If prod is deployed by a tag pipeline (rules: - if: $CI_COMMIT_TAG), and a release manager creates the tag when they decide to ship, that's still Delivery: a person makes the decision.

Continuous Deployment: no button

Same thing, but the last step is automatic too. A change passes every check and lands in prod by itself, with no manual approval.

When teams do this:

No person is involved in the rollout. Merge the MR, and a few minutes later it's already in prod.

Mnemonic

Delivery: we can roll out at any moment (with a button). Deployment: it rolls out by itself, with no button.

Continuous Deployment = Continuous Delivery without the last manual step. That's why Deployment is "stronger": it needs Delivery as a foundation, plus enough trust in the automation.

What this takes

To roll out automatically (or often, by button) safely, a team needs safety nets:

Without these safety nets, Continuous Deployment turns into "automatically breaking prod." That's why many teams deliberately stay on Delivery.

Common mistakes

What to remember

CD means either Delivery or Deployment. The difference is who triggers the rollout to prod.

Delivery: the artifact is always ready, a person triggers the release to prod.

Deployment: it passed the checks, so it lands in prod by itself, with no manual step.

Deployment = Delivery without the last button, plus trust in tests, rollback and monitoring.

The artifact is built once and promoted across environments without rebuilding.

Safe rollout rests on rollback, monitoring, and the blue-green and canary strategies.

What you'll need for the tasks

The next lesson covers pipeline anatomy: stages, jobs, runners, artifacts, secrets.

Done reading?

Mark the lesson as read to move your track progress forward.

Go through it with an AI agent

The agent explains anything unclear in plain words, gives you 2 labs for this lesson and drills you on interview questions. $49 one-time, lifetime access.

Get access for $49

Tell the agent: use MCP izi, give me lesson cicd-basics-03-delivery-vs-deployment