CI/CD Concepts
What continuous integration, delivery, and deployment mean and why they matter.
Theory
CI/CD automates the path from a code commit to running software, with fast feedback at each step. The three terms:
- Continuous Integration (CI) — every change is automatically built and tested when merged, catching breakage early
- Continuous Delivery (CD) — every passing change is automatically prepared for release; deploying to production is a one-click manual decision
- Continuous Deployment — goes further: every passing change ships to production automatically, no human gate
The whole point is fast, reliable feedback and small, frequent, low-risk releases instead of big scary ones.
graph LR C["Commit"] --> B["Build"] B --> T["Test"] T --> R["Release artifact"] R --> S["Deploy to staging"] S --> P["Deploy to production"]
Hands-On Exercise
- Define CI, Continuous Delivery, and Continuous Deployment in one line each.
- Explain what distinguishes Delivery from Deployment.
- List two benefits of small, frequent releases over large ones.
- Why is automated testing a prerequisite for CD?
Cheat Sheet▾
| Term | Meaning |
|---|---|
| CI | Auto build + test on every merge |
| Continuous Delivery | Always releasable; manual deploy |
| Continuous Deployment | Auto deploy every passing change |
| Pipeline | Automated stages commit → prod |
| Fast feedback | Catch failures early/cheaply |
Common Interview Questions▾
What's the difference between continuous delivery and continuous deployment?
Both automate the pipeline through to a release-ready state. Delivery stops at a manual approval before production; deployment automatically ships every passing change to production.
What problem does CI solve?
It catches integration failures early by automatically building and testing every merged change, instead of discovering conflicts and bugs late in a big merge.
Official Documentation
📝 My notes on this topic
Auto-saves as you type