Microsoft Certified: DevOps Engineer ExpertConfigure processes and communicationsHard
A DevOps team is using Azure DevOps and wants to implement a release strategy that allows them to gradually roll out new features to a subset of users before making them generally available. This approach helps in gathering feedback and monitoring stability in a controlled manner. Which release strategy is being described?
- ACanary release
- BBlue/Green deployment
- CDark launch
- DRolling deployment
Show answer & explanationAnswer & explanation
Correct answer: A. Canary release
A Canary release strategy involves deploying a new version to a small subset of users (the 'canary') to observe its behavior and stability with real traffic before rolling it out to the entire user base. This gradual exposure allows for controlled testing and feedback gathering.
Why the other options are wrong
- B. Blue/Green deployment involves running two identical environments (blue: old version, green: new version) and switching traffic entirely from one to the other. It's for full-scale cutovers, not gradual user exposure.
- C. Dark launch (or A/B testing) involves deploying features that are initially hidden from users, often activated by feature flags for specific user groups. While it involves a subset of users and controlled release, the primary goal described is about monitoring stability and gathering feedback from *actual usage* by a small percentage, which is the hallmark of a canary release even if feature flags might be used to implement it.
- D. Rolling deployment gradually replaces instances of the old version with the new version, but typically without specifically targeting a 'subset of users' for feedback; it's more about instance-by-instance update.
Canary Release Strategy
A Canary release strategy involves deploying a new version of an application or feature to a small, isolated group of users or servers (the 'canary') to test its stability and performance in a production environment before rolling it out to the entire user base. This minimizes risk.
- Gradual rollout to a subset of users.
- Monitors stability and gathers feedback.
- Minimizes risk of widespread issues.
- Often uses traffic routing or feature flags.
Memory trick: Releases can be a staged ascent.