CI/CD stands for continuous integration and continuous delivery (or continuous deployment): a way of working in which every code change is automatically built, tested and made ready for release, or even released straight away. Instead of large, risky releases every few months, teams ship small changes often and safely. The automated sequence of steps is called a CI/CD pipeline.
CI, CD and CD
- Continuous integration (CI): developers merge their changes into the main branch frequently, at least daily. Every change automatically triggers a build and the tests, so integration problems surface within minutes instead of at the end of a project.
- Continuous delivery: every change that passes the pipeline results in a release-ready version. Going to production is one click or approval.
- Continuous deployment: one step further: every change that passes all checks goes to production automatically, without manual intervention.
What does a CI/CD pipeline look like?
- Trigger: a push or pull request in Git starts the pipeline.
- Build: the code is compiled and dependencies are installed, often into a Docker image.
- Test: unit tests, integration tests and, where useful, end-to-end tests.
- Quality and security checks: linting, static analysis, dependency and container scans.
- Deploy to test or staging: the build is rolled out to an environment that resembles production.
- Deploy to production: automatically or after approval, often gradually (canary or blue-green) with automatic rollback on errors.
Why CI/CD?
Small, frequent changes are easier to test, review and roll back than large releases. Bugs are found earlier, when they are cheaper to fix. Releases stop being stressful events that depend on one person's knowledge, because every step is written down in the pipeline. And because the same pipeline also deploys infrastructure changes with tools such as Terraform, the whole platform becomes reproducible.
CI/CD tools
Popular tools are GitHub Actions, GitLab CI/CD, Azure DevOps Pipelines, Bitbucket Pipelines and Jenkins. For deployments to Kubernetes, GitOps tools such as Argo CD and Flux are common. The tool matters less than the discipline: fast pipelines, reliable tests, and a main branch that is always releasable. See our CI/CD services and what is DevOps.
Frequently Asked Questions about CI/CD
What does CI/CD stand for?
Continuous integration and continuous delivery, or continuous deployment. CI covers building and testing every change automatically; CD covers getting it release-ready or released.
What is the difference between continuous delivery and continuous deployment?
With continuous delivery, every change is release-ready, but a person decides when it goes live. With continuous deployment, every change that passes the pipeline goes live automatically.
Do small teams need CI/CD?
Yes, arguably even more so. A simple pipeline that builds, tests and deploys every change saves a small team a lot of manual work and prevents mistakes that nobody has time to chase.
How fast should a CI/CD pipeline be?
As fast as possible: ideally a few minutes for the build and core tests, so developers get feedback while they are still working on the change.