CI/CD (Continuous Integration / Continuous Delivery)
Definition
CI/CD is a software delivery practice that automates the build, test, and deployment pipeline. Continuous Integration (CI) merges code changes frequently and runs automated tests. Continuous Delivery/Deployment (CD) automatically deploys tested code to staging or production environments.
Key Concepts
- CI (Continuous Integration): Developers merge code to a shared repo multiple times daily; each merge triggers automated builds and tests
- CD (Continuous Delivery): Code that passes CI is automatically prepared for release to production
- CD (Continuous Deployment): Code that passes CI is automatically deployed to production without human approval
- Pipeline: Series of stages (build → test → stage → deploy)
- Artifact: Compiled binary, container image, or package produced by the pipeline
- Artifact Repository: Storage for build outputs (Nexus, Artifactory, GHCR)
Common CI/CD Tools
| Tool | Type | Notes |
|---|---|---|
| GitHub Actions | Cloud/On-prem | YAML workflows, integrated with GitHub |
| GitLab CI/CD | Cloud/On-prem | Built into GitLab, YAML (.gitlab-ci.yml) |
| Jenkins | On-prem | Plugin ecosystem, Groovy pipelines |
| CircleCI | Cloud | Fast, YAML config, Docker-native |
| Argo CD | GitOps | Declarative Kubernetes deployment |
| Tekton | Kubernetes-native | Cloud-native CI/CD on K8s |
CI/CD Best Practices
- Fast feedback: Keep pipeline under 10 minutes
- Immutable artifacts: Build once, promote through environments
- Environment parity: Staging matches production
- Rollback capability: Always have a revert path
- Security scanning: SAST, DAST, dependency checks in pipeline
Related Terms
- Git — version control system used with CI/CD
- Docker: https://argoproj.github.io/cd/
- CNCF CI/CD landscape: https://www.cncf.io/landscape/