What is CI/CD (Continuous Integration & Delivery)?

Last updated: July 2026

CI/CD is a practice that automates building, testing, and releasing code, so every change moves from commit to production in small steps. The name compresses two ideas — continuous integration (merge and verify constantly) and continuous delivery (keep every change releasable) — plus a famous ambiguity: the second “D” can also mean continuous deployment, where nothing but a failing test stands between a commit and production.

Key takeaways

QuestionAnswer
What it isAutomation that turns “release day” into a non-event that happens constantly
CIMerge small changes daily; every merge builds and tests automatically
The two CDsDelivery keeps a human approval before production; deployment removes it
Why it worksSmall changes fail small; fast feedback catches bugs minutes after creation
How it’s measuredThe five DORA metrics — and speed and stability rise together

What a pipeline actually looks like

The whole practice fits in one config file — this is the artifact every “CI/CD explained” page describes and almost none show:

# pipeline.yml — the automation that replaces "deploy day"
on: push to main

jobs:
  build:
    steps:
      - checkout
      - run: npm ci && npm run build
  test:
    needs: build
    steps:
      - run: npm test            # unit + integration, every commit
      - run: npm run lint        # static analysis
  deploy:
    needs: test
    approval: manual             # delete this line → continuous deployment
    steps:
      - run: npm run deploy

Minutes after that last step runs, every client is already calling the new backend version — which is the entire point:

// JavaScript / Node.js — Back4app JS SDK
// Seconds after `b4a deploy`, every client is calling the new version
const version = await Parse.Cloud.run('version');
console.log(`API version: ${version}`); // no pipeline YAML, no runners

CI vs. continuous delivery vs. continuous deployment

DimensionContinuous integrationContinuous deliveryContinuous deployment
ScopeMerge + build + test…plus always-releasable artifacts…plus automatic release
TriggerEvery commit to mainlineEvery passing buildEvery passing build
Human gateNone (tests are the gate)Yes — a release approvalNone
Production updatesWhen someone releasesWhen someone clicksContinuously
Best fitEveryoneRegulated releases, marketing-timed launchesWeb backends, SaaS, high-trust test suites
A CI/CD pipelineCommits trigger automated build and test stages; passing changes reach staging, then cross either a manual approval gate under continuous delivery or no gate at all under continuous deployment into production.

yes — continuous delivery

no gate — continuous deployment

Commit

Build

Automated tests

Staging

Manual approval?

Production

Commits trigger automated build and test stages; passing changes reach staging, then cross either a manual approval gate under continuous delivery or no gate at all under continuous deployment into production.

The lineage is worth one sentence: Martin Fowler’s canonical article defined CI in 2000, the 2010 book Continuous Delivery extended it to the release process, and DevOps made the pair its automation backbone. One sharp edge from Fowler still cuts today: running a build server against long-lived feature branches is “semi-integration” — real CI means the mainline integrates everyone’s work at least daily.

The pipeline, stage by stage

  • Source. A commit or merge triggers everything. No manual builds, ever — if it isn’t triggered, it isn’t CI.
  • Build. Compile, resolve dependencies, produce the artifact (bundle, container image) that every later stage reuses — build once, promote everywhere.
  • Test. Fast checks first: unit tests and linting on every commit; integration tests against real dependencies next; end-to-end, performance, and security scans in later or scheduled runs. Feedback speed decides stage order.
  • Deliver. The artifact lands in a production-like staging environment. Under continuous delivery, it waits here — releasable — for a human yes.
  • Deploy. Production. Mature pipelines deploy gradually — a canary slice or a parallel blue/green environment — so a bad change is a contained rollback, not an outage.

Measuring it: the DORA metrics

“Are we good at delivery?” has a standard answer: the DORA research program’s five metrics — deployment frequency, change lead time, change failure rate, failed-deployment recovery time, and deployment rework rate. The research’s most quoted finding is that the classic speed-vs-stability trade-off is false: teams that deploy most often also break least, because small frequent changes are individually low-risk and fast to diagnose. If your pipeline work doesn’t move one of the five, it’s plumbing, not progress.

Common use cases

  • Web and API backends — the natural home of full continuous deployment: high change volume, instant rollback, no install step.
  • Mobile apps — CI plus continuous delivery: pipelines build, test, and stage every change, while store review makes the final push inherently gated.
  • Teams scaling past one deployer — the pipeline replaces the one person who “knows how to release” with a process anyone can run.
  • Regulated environments — the approval gate becomes a feature: full automation up to the line, an auditable human decision at it.
  • Open-source projects — every pull request built and tested automatically is CI serving as the project’s front door.

Should you gate production? A decision matrix

Choose continuous deployment when…Keep the delivery gate when…
The test suite is trusted with productionTest coverage is still growing into that trust
Rollback is one commandRollback is a project
Users expect invisible, constant updatesReleases align with marketing or contract dates
The product is a web backend or SaaSThe product ships through app-store review
Failures degrade gracefully behind feature flagsA bad release has regulatory consequences

The honest sequencing: earn deployment by practicing delivery — automate everything up to the gate, watch the failure rate, then remove the gate when it’s no longer doing anything.

Limitations and trade-offs

  • The pipeline is code you own. Runners, YAML, caches, secrets — it all needs maintenance, and at some team sizes the pipeline becomes its own product with its own on-call.
  • Flaky tests poison everything. A suite that fails randomly trains people to click “retry,” which quietly converts continuous deployment back into manual deployment with extra steps.
  • Culture is a prerequisite, not a byproduct. Small merges, mainline development, and fixing red builds immediately are habits; buying a pipeline doesn’t install them.
  • Speed without observability is gambling. Deploying constantly is only safe if you can see failures fast — monitoring and alerting are part of the practice, not an add-on.
  • The last mile varies. Databases, migrations, and stateful services resist “just redeploy”; the pipeline needs strategies (expand-contract migrations, feature flags) that no YAML writes for you.

CI/CD on Back4app

Back4app is an open-source Backend-as-a-Service (BaaS) platform that combines a managed database, auto-generated REST and GraphQL APIs, authentication, file storage, and Cloud Code serverless functions. Its effect on CI/CD is subtraction on the delivery side: Cloud Code deploys in one CLI command or directly from a Git repository, and the standard backend — database, auth, APIs — never appears in your pipeline at all because there’s nothing to build or release. What remains is the half you should keep: your tests, running on every commit, in front of a deploy step that’s now one line long.

Frequently asked questions

What does CI/CD stand for?

Continuous Integration and Continuous Delivery — with a built-in ambiguity every practitioner should know: the "CD" can also mean continuous deployment. Delivery keeps a human approval before production; deployment removes it. When someone says "we do CI/CD," the useful follow-up is always which CD they mean.

What is continuous integration?

The practice of merging small changes into a shared mainline frequently — at least daily in the canonical definition — with every merge triggering an automated build and test run. The point is fast feedback: integration problems surface within minutes of being created instead of weeks later during a release crunch.

What is the difference between continuous delivery and continuous deployment?

One manual approval step. Under continuous delivery, every change is automatically built, tested, and kept releasable, but a human decides when production actually updates. Under continuous deployment there is no gate: every change that passes the pipeline goes live automatically, and only a failing test stops it.

What is a CI/CD pipeline?

The automated workflow a change travels from commit to production: source trigger, build, automated tests, delivery to a staging environment, and deployment. Each stage must pass before the next runs, so the pipeline acts as a quality gate that every change clears the same way — no special cases, no deploy heroics.

What are the DORA metrics?

The industry-standard way to measure delivery performance, from the DORA research program: deployment frequency, change lead time, change failure rate, failed-deployment recovery time, and — added most recently — deployment rework rate. The headline research finding is that speed and stability are not a trade-off: top performers score high on both.

Is CI/CD the same as DevOps?

No — DevOps is the broader culture of unifying development and operations; CI/CD is its automation backbone. You can adopt CI/CD tooling without the culture (it helps less than expected), and preach the culture without the automation (it changes less than promised). The practices reinforce each other but name different things.

What tests run in a CI/CD pipeline?

Layered by speed: unit tests and static analysis run on every commit because they are fast; integration tests verify components against real dependencies; end-to-end, performance, and security scans run in later stages or on a schedule because they are slow. The design rule: the faster the feedback, the earlier the stage.

Do small teams need CI/CD?

They need the practice more than the plumbing. Even a two-person team benefits from automated tests on every change and one-command deploys — that is CI/CD in substance. What small teams should avoid is operating heavyweight pipeline infrastructure; hosted runners or platforms with built-in deployment reduce the practice to configuration.

Related terms

Compare with

Further reading

Ready to build your backend?

Start your project on Back4app in minutes — database, auth, APIs, and Cloud Code included. No credit card required.

Written and reviewed by Back4app Engineering, Back4app Engineering · Published 2026-07-23