Q1. What is the difference between continuous integration, continuous delivery, and continuous deployment?
Continuous Integration (CI) means developers merge code to the main branch frequently (multiple times daily), and automated tests run on every merge to catch integration bugs early. Continuous Delivery extends CI by automatically building and testing to a staging environment, keeping the codebase always deployable — but deployment to production is a manual decision. Continuous Deployment goes one step further: every passing build is automatically deployed to production with no human intervention. Most companies practice CI + Continuous Delivery; full Continuous Deployment requires very high test confidence and feature flag support.