Microsoft Certified: DevOps Engineer ExpertDesign and implement pipelinesEasy
A DevOps team is designing a release strategy for a new web application. The application needs to be deployed to an Azure App Service, and updates must be delivered with minimal downtime. The team wants to test new versions in a separate environment that uses the same App Service plan and configuration as the production environment, but without affecting live traffic. Which deployment strategy should the team implement?
- ARolling Deployment
- BCanary Deployment
- CStaged Deployment with Deployment Slots
- DBlue/Green Deployment
Show answer & explanationAnswer & explanation
Correct answer: C. Staged Deployment with Deployment Slots
Staged Deployment with Deployment Slots allows you to deploy a new version of an application to a staging slot, test it, and then swap it into production with minimal downtime, using the same underlying App Service plan and configuration.
Why the other options are wrong
- A. Rolling deployment updates instances one by one, which is common for VMs or containers, but not the most efficient for App Services with minimal downtime and pre-testing goals.
- B. Canary deployment gradually rolls out changes to a small subset of users, which is not the primary goal here.
- D. Blue/Green deployment typically involves two entirely separate, identical environments, which is more resource-intensive than using deployment slots for testing within the same App Service.
Azure App Service Deployment Slots
Deployment slots are live apps with their own hostnames. App Service plans and configurations are shared across all slots, allowing for pre-production testing and zero-downtime swaps.
- Provide separate environments for different versions of an app.
- Share the same App Service plan and resources.
- Enable zero-downtime swaps between slots.
- Ideal for testing new versions before promoting to production.
Memory trick: Slots for Staging, Swapping for Success.