Microsoft Certified: DevOps Engineer ExpertDesign and implement pipelinesMedium

A company uses Azure DevOps for its CI/CD pipelines. They have a complex application with several microservices, each deployed to its own Azure Kubernetes Service (AKS) cluster. The company wants to implement a deployment strategy where a new version of a microservice is gradually rolled out to a small subset of users, monitored for issues, and then progressively released to more users. If issues are detected, the rollout should automatically halt or roll back. Which deployment strategy best fits these requirements?

  1. ARecreate Deployment
  2. BCanary Deployment
  3. CBlue/Green Deployment
  4. DRolling Deployment
Show answer & explanation

Correct answer: B. Canary Deployment

Canary deployment involves gradually introducing a new version to a small subset of users, monitoring its performance and stability, and then progressively increasing the user base. This allows for early detection of issues and minimizes impact, aligning perfectly with the requirement for gradual rollout and automatic halting/rollback on issues.

Why the other options are wrong

  • A. Recreate deployment involves tearing down all old instances and then deploying all new instances, leading to downtime and not supporting gradual rollout.
  • C. Blue/Green deployment involves running two identical production environments (blue and green) and switching traffic, but it doesn't inherently support gradual rollout to a subset of users.
  • D. Rolling deployment replaces instances of the old version with the new version one by one or in small batches, but typically without the advanced traffic splitting and monitoring for a 'subset of users' that canary offers.

Canary Deployment

A deployment strategy where a new version of an application is released to a small subset of users or servers, monitored for health and performance, and then gradually rolled out to the rest of the infrastructure if successful.

  • Minimizes risk by limiting exposure of new code.
  • Allows for real-world testing with a small user group.
  • Enables quick rollback if issues are detected.

Memory trick: A canary sings softly before the full chorus.

More Design and implement pipelines questions