DOP-C02 Question 4
Select 3Your organization is implementing a CI/CD pipeline for a microservices-based application hosted on AWS. The pipeline must automatically deploy containerized applications to an Amazon ECS cluster after running unit tests, integration tests, and security scans. The deployment process should ensure zero downtime and allow quick rollback if issues are detected. Which combination of AWS services and features should you use to meet these requirements?
- A
AWS CodePipeline to orchestrate the pipeline and Amazon ECS with a rolling update deployment strategy
- B
AWS CodeBuild for running unit tests, integration tests, and security scans
- C
Amazon ECS with Blue/Green deployments using AWS CodeDeploy
- D
AWS Lambda for running integration tests and triggering deployments
- E
Amazon Elastic Beanstalk for handling the containerized application deployment
Show answer and explanation
Correct answers: A, B, C
Explanation
The best approach for implementing the described CI/CD pipeline involves using AWS CodePipeline for orchestration, AWS CodeBuild for running tests and security scans, and Amazon ECS with Blue/Green deployments using AWS CodeDeploy to ensure zero-downtime deployments and quick rollbacks. Rolling updates can work for minimal downtime but do not provide the same level of control for rollback as Blue/Green deployments.
- A. Correct.
Correct: AWS CodePipeline is designed to orchestrate CI/CD pipelines, and Amazon ECS with rolling updates can deploy containerized applications with minimal downtime. However, for zero-downtime deployment and rollback, Blue/Green deployments are a better option (covered in another option).
- B. Correct.
Correct: AWS CodeBuild is ideal for running tests and performing security scans during the CI/CD pipeline execution.
- C. Correct.
Correct: Amazon ECS with Blue/Green deployments using AWS CodeDeploy ensures zero-downtime deployments and facilitates quick rollbacks if issues are detected.
- D. Incorrect.
Incorrect: While AWS Lambda can run integration tests, it's not the optimal choice for orchestrating a CI/CD pipeline or handling deployments in this scenario.
- E. Incorrect.
Incorrect: Amazon Elastic Beanstalk is a managed application environment but is not a suitable choice for deploying containerized microservices to Amazon ECS.