DevOps Engineer interview question · Most asked
What is the difference between continuous integration, continuous delivery and continuous deployment, in practice?
Summary
Continuous integration: everyone merges small changes to the main branch frequently, and each merge is built and tested automatically. Continuous delivery: every change that passes the pipeline is releasable and can be deployed to production at any time with a push-button, low-risk process. Continuous deployment: every change that passes the pipeline is deployed to production automatically, with no manual gate.
Longer Answer
In practice the difference shows in where humans intervene: continuous delivery may keep a manual approval or release schedule for business reasons; continuous deployment removes it and relies on automated tests, progressive rollouts and fast rollback. Both require trunk-based development, comprehensive automation and feature flags to decouple deploy from release. A team that "does CI" but merges once a week from long-lived branches is not really doing CI.
Key Points
- CI: frequent merges, automated tests.
- Delivery: always releasable.
- Deployment: automatic to prod.
- Feature flags decouple deploy from release.
More most-asked DevOps Engineer questions
- Design a CI/CD pipeline for a containerised microservice from commit to production.
- What are DORA metrics, and how would you use them without gaming them?
- How do you handle database schema migrations in an automated deployment pipeline?
- How do you handle secrets in CI/CD pipelines securely?
- What happens when you type a URL into a browser and press Enter?
- Your CI pipeline takes 45 minutes. How would you speed it up?
- How do you secure the CI/CD pipeline itself against supply-chain attacks?
- What does 'build once, deploy many' mean, and why does it matter?