DevNet Associate (DEVASC) v1.0Application Deployment and SecurityMedium
A DevOps team is implementing a CI/CD pipeline for a new microservice. They want to ensure that code changes are automatically built, tested, and deployed to a staging environment whenever a developer pushes code to the main branch. Which CI/CD concept best describes this automated process that ensures the software is always in a releasable state?
- AContinuous Delivery
- BContinuous Integration
- CContinuous Deployment
- DAutomated Testing
Show answer & explanationAnswer & explanation
Correct answer: A. Continuous Delivery
Continuous Delivery extends Continuous Integration by ensuring that all code changes are built, tested, and prepared for release to production. It guarantees that the software is always in a deployable state, though manual approval might still be required for production deployment.
Why the other options are wrong
- B. Continuous Integration focuses on frequent merging and automated building/testing of code, not necessarily preparing for release.
- C. Continuous Deployment automatically deploys every change that passes the pipeline to production, which is beyond 'staging environment' and 'releasable state' without explicit mention of production auto-deployment.
- D. Automated Testing is a component of CI/CD but not the overarching concept of preparing for release.
Continuous Delivery
A software development practice where code changes are automatically built, tested, and prepared for release to production, ensuring the software is always in a deployable state.
- Builds upon Continuous Integration.
- Automates the entire release process up to the point of production deployment.
- Allows for frequent and reliable releases, often with a manual 'go/no-go' decision for production.
Memory trick: CI integrates, CD delivers, CDep deploys to prod.