CI/CD: The Deployment Pipeline

CI/CD is the assembly line of modern software — the automated path from a developer's commit to running production code. It's the practice that turned releases from rare, terrifying events into routine, boring ones, and "boring releases" is one of the highest compliments in software. It's also the first capability any platform provides.

The foundational DevOps practice — and the first thing an internal developer platform automates — is CI/CD: the automated pipeline that takes code from commit to production. It’s what makes frequent, reliable releases possible, replacing manual, error-prone deployment with an automated assembly line. This post covers the three C’s (continuous integration, delivery, and deployment — which are distinct), what a pipeline actually does, and the practices that make it work. It’s the backbone of shipping software, and everything else in the platform builds on it.

The three C’s (they’re different)

“CI/CD” bundles three related-but-distinct practices, and knowing the difference matters:

The distinction between the two CDs matters: continuous delivery keeps you always ready to deploy (human decides when); continuous deployment actually deploys automatically. Most organizations do continuous delivery (automated up to a manual production gate) and adopt continuous deployment (fully automatic) as their testing and confidence mature. The progression CI → continuous delivery → continuous deployment is a maturity ladder, each step requiring more automated confidence than the last.

What the pipeline does

A CI/CD pipeline is the automated sequence a code change flows through from commit to production. A typical pipeline:

commit → build → test → (security/quality scans) → package → deploy to staging
       → integration tests → [gate] → deploy to production → verify

The pipeline is automated end to end — that’s the whole point. A change flows from commit to (at least) staging without human steps, so releasing is fast, consistent, and repeatable rather than a manual ritual someone might get wrong. The pipeline is codified (as configuration in the repo — pipeline-as-code), so it’s version-controlled and reviewable like any code.

Why CI/CD matters: boring releases

The transformation CI/CD delivers is making releases boring — and in software, boring is the highest praise. Before CI/CD, deployments were rare, manual, high-stakes events: batched-up changes, a nervous release night, a runbook of manual steps, and a real chance of failure. CI/CD inverts this:

This is why the DORA research (the metrics post) found that elite teams deploy frequently with low failure rates and fast recovery — CI/CD is what enables all of that. “Boring releases” — frequent, small, automated, low-drama — is the goal, and CI/CD is how you get there.

Practices that make it work

CI/CD done well relies on a few disciplines:

CI/CD is the deployment pipeline at the heart of DevOps and the first capability a platform provides to developers — turning shipping from a risky manual event into a fast, automated, boring routine. The next post covers automating the infrastructure the pipeline deploys to: infrastructure as code.

Key takeaways

Further reading

Sources & References

Delivery performance research