CI/CD Diagram Guide

Continuous delivery vs continuous deployment: the diagram differs by one gate

By the engineer who builds Datadef, from client work on data platforms · Reviewed August 21, 2026

Continuous delivery means every change that passes the pipeline is ready to release, and a human decides when it goes. Continuous deployment means the pipeline decides, and every change that passes goes automatically. On a diagram the entire difference is one shape: a manual approval gate between the last automated check and production. Everything to the left of that gate is identical in both models, which is why teams argue about the words and agree about the picture.

6 min readFor teams writing down which model they actually practise

See it as a diagram

Everything below, as a diagram you can edit. Describe yours and see it in seconds.

225/20003 credits left
Try:

No account needed · Editable canvas, not a picture

The gate is the whole difference

Draw the shared spine once: commit, build, test, publish to the registry, deploy to staging, verify. Continuous delivery adds a gate node after verification, and the artifact waits in the registry until someone opens it. Continuous deployment replaces that gate with an automated check and the artifact continues.

Because the two share everything to the left of the gate, the honest way to document both is one diagram with the gate marked as the variation point. A team practising delivery today and planning deployment next year does not need two pictures, it needs one picture and a note about which shape is going to change.

The corollary matters more than the definition: continuous deployment is not a bigger version of continuous delivery, it is the same pipeline with the human removed. Removing the human is only safe when the checks that were implicitly delegated to that human are drawn as explicit nodes.

Drawing continuous delivery honestly

The gate needs three attributes on it: who can open it, what the timeout does, and whether the person who wrote the change can approve it. "Manual approval" alone hides the only interesting parts. "Approval, release managers, 48h to auto-reject, self-approval blocked" is one label and answers a compliance question without a second document.

Read the timeout out of the product rather than assuming it. An Azure Pipelines approval defaults to a 30 day timeout, can be set as high as 365 days, and marks the stage skipped rather than failed when it expires. A release that quietly skips production a month after nobody clicked approve still shows a green run, so "timeout 30d, then skipped" and "timeout 48h, then rejected" describe two different systems and the label has to say which one you have.

The artifact should be shown waiting, not being rebuilt. The defining property of continuous delivery is that the thing tested in staging is byte for byte the thing that reaches production. A diagram that shows a second build step after the gate is documenting a different, weaker practice, and it is worth noticing that on paper.

Draw the queue if there is one. When approvals happen weekly and merges happen daily, several artifacts wait at the gate at once and production receives a batch. That batching is where most delivery pain comes from, and it is visible on the diagram as soon as you draw the waiting artifacts rather than a single arrow.

Drawing continuous deployment honestly

Remove the gate and the diagram immediately looks too simple, which is the tell. Everything the approver used to do has to appear as a node: a smoke test against staging, a progressive rollout with a traffic percentage, a bake period with a duration, and an automatic rollback triggered by an error rate or an error budget burn.

Those nodes carry numbers, and the numbers are the documentation. "Canary 5 percent, 15 minute bake, roll back on 5xx above 0.5 percent" tells a reader more about your risk posture than any paragraph. It also makes the diagram falsifiable: if the deploy config says ten minutes, someone will notice.

Draw the abort path as a real edge back to the previous revision, with its trigger on the label. A continuous deployment diagram without a rollback edge is describing a system that has never had a bad deploy, which is not a system anyone has.

Continuous delivery      commit -> build -> test -> publish -> staging
                         -> [GATE: release managers, 48h] -> production

Continuous deployment    commit -> build -> test -> publish -> staging
                         -> smoke -> canary 5% (bake 15m) -> production
                                        |
                                        +-- 5xx > 0.5% --> rollback to previous

Most teams are both, and the diagram should say so

The usual real answer is per environment: continuous deployment to dev and staging, continuous delivery to production. Some teams go further and split by change class, deploying configuration and feature flags automatically while gating schema migrations and infrastructure changes.

Draw that as it is. Zones per environment with a gate only on the boundary that has one, and, if change classes differ, a dashed lane with its condition written on it. A single label at the top of the diagram saying "continuous delivery" when three of four environments are fully automatic is the kind of small inaccuracy that makes readers stop trusting the whole page.

When the model changes, the diagram is one shape away from being correct. That is a good reason to keep it in a tool where a shape can be changed and republished rather than in an exported image, and to publish it through an embed so the handbook page follows.

FAQ

What is the difference between continuous delivery and continuous deployment?

Continuous delivery means every change that passes the pipeline is ready to release and a human chooses when it goes to production. Continuous deployment means the pipeline releases automatically with no human step. On a diagram the difference is one shape: the manual approval gate before production.

How do I show a manual approval on a pipeline diagram?

As a gate shape between the last automated check and the production environment, labelled with three attributes: the approving group, the timeout behaviour, and whether self-approval is allowed. Take the timeout from the product rather than guessing: an Azure Pipelines approval defaults to 30 days, allows up to 365, and marks the stage skipped rather than failed when it runs out.

What replaces the approver in a continuous deployment diagram?

Explicit automated nodes: a smoke test after the deploy, a progressive rollout with a traffic percentage, a bake period with a duration, and an automatic rollback triggered by a measurable signal such as error rate or error budget burn. If none of those appear on the diagram, the approver was removed without being replaced.

Should continuous integration be a separate diagram?

Usually not. Continuous integration is the left half of the same picture: commit, build, and test running on every change with the result reported back to the pull request. Splitting it into its own diagram duplicates the shared spine and creates two pages that have to agree with each other.

Can one pipeline be continuous delivery and continuous deployment at the same time?

Yes, and most are. The common shape is automatic deployment to dev and staging with a gate before production. Some teams also split by change class, releasing configuration automatically while gating schema migrations. Draw the gate only on the boundary that actually has one rather than labelling the whole diagram with a single model name.