Deploymentslots en swappen
Maak staging-slots voor blue-green-deployments, warm een nieuwe release op in het staging-slot en swap deze zonder downtime naar productie.
Deploymentslots en swappen is een gratis Azure Fundamentals-les op CoddyKit. Dit is les 2 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Azure Fundamentals. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Azure Fundamentals bevat in totaal 4 lessen.
Wat zijn implementatiesites?
Implementatiesites zijn actieve, afzonderlijke omgevingen voor een App Service-webapp, elk met een eigen hostnaam (bijvoorbeeld myapp-staging.azurewebsites.net). Sites delen hetzelfde App Service-plan en dezelfde resources als de productiesite, maar worden onafhankelijk uitgevoerd. Ze maken blue-green-implementaties mogelijk — je valideert een nieuwe release in een testsite en wisselt die vervolgens zonder downtime om naar productie. Sites zijn beschikbaar vanaf de Standard-laag.
Een implementatiesite maken
Voeg via Azure Portal of de CLI een nieuwe implementatiesite toe aan je webapp. Elke site krijgt een eigen URL, applicatie-instellingen en verbindingsreeksen. Je kunt maximaal 5 sites maken in de Standard-laag en maximaal 20 sites in de Premium-laag. Veelgebruikte sitenamen zijn staging, canary, hotfix en integration, die verschillende fasen van de releasepijplijn aanduiden.
# Create a staging deployment slot
az webapp deployment slot create \
--name MyUniqueWebApp \
--resource-group MyRG \
--slot staging
# Deploy code to the staging slot
az webapp deploy \
--name MyUniqueWebApp \
--resource-group MyRG \
--slot staging \
--src-path app.zip
# The staging slot is live at:
# https://MyUniqueWebApp-staging.azurewebsites.netDe testsite opwarmen
Voordat je sites omwisselt, is het belangrijk om de testsite op te warmen, zodat de nieuwe versie volledig is geïnitialiseerd. Een koude App Service-instantie verwerkt de eerste aanvragen traag terwijl de runtime wordt geïnitialiseerd, en dat is onaanvaardbaar in productie. Schakel Auto Swap in of stuur handmatig HTTP-opwarmingsaanvragen naar de testsite. App Service ondersteunt ook een applicationInitialization-configuratie om opwarmingspaden te definiëren die 200 moeten retourneren voordat de site als gereed wordt beschouwd.
# web.config snippet for warm-up (IIS/Windows)
# <system.webServer>
# <applicationInitialization>
# <add initializationPage='/health' hostName='MyUniqueWebApp-staging.azurewebsites.net'/>
# </applicationInitialization>
# </system.webServer>
# Or use a startup probe via the App Service health check
az webapp config set \
--name MyUniqueWebApp \
--resource-group MyRG \
--slot staging \
--generic-configurations '{"healthCheckPath": "/health"}'Sites omwisselen
Bij een swap worden de testsite en productiesite atomair omgewisseld. Tijdens een swap leidt App Service het verkeer eerst naar de testinstanties waarop de nieuwe code draait en wacht het tot deze zijn geïnitialiseerd. Daarna wordt al het productieverkeer omgeleid naar de nieuwe instanties en worden de oude productie-instanties de nieuwe testsite. Hierdoor is terugdraaien eenvoudig — voer gewoon opnieuw een swap uit.
# Swap staging into production
az webapp deployment slot swap \
--name MyUniqueWebApp \
--resource-group MyRG \
--slot staging \
--target-slot production
# Rollback: swap production back to staging
az webapp deployment slot swap \
--name MyUniqueWebApp \
--resource-group MyRG \
--slot production \
--target-slot stagingSitegebonden en niet-sitegebonden instellingen
Applicatie-instellingen kunnen worden gemarkeerd als sitegebonden (specifiek voor een site) of niet-sitegebonden (worden omgewisseld). Niet-sitegebonden instellingen gaan met de implementatiesite mee wanneer je sites omwisselt — de verbindingsreeks voor je stagingdatabase volgt de code dus naar productie. Sitegebonden instellingen blijven ongeacht swaps bij de site — productie behoudt altijd de verbindingsreeks voor de productiedatabase. Markeer instellingen als sitegebonden met het selectievakje 'deployment slot setting' of via de CLI.
# Mark a setting as sticky (slot-specific) -- it won't swap
az webapp config appsettings set \
--name MyUniqueWebApp \
--resource-group MyRG \
--slot staging \
--slot-settings DATABASE_URL='postgresql://staging-db/...'
# Set a non-sticky setting (it WILL travel with a swap)
az webapp config appsettings set \
--name MyUniqueWebApp \
--resource-group MyRG \
--slot staging \
--settings FEATURE_FLAG_NEW_UI=trueVerkeer verdelen voor canary-releases
App Service ondersteunt het verdelen van verkeer: een percentage van het productieverkeer wordt naar een niet-productiesite geleid zonder een volledige swap uit te voeren. Hiermee kun je canary-releases uitvoeren, waarbij je het verkeer geleidelijk verschuift van 5% naar 10% en vervolgens naar 50% naarmate je meer vertrouwen krijgt in de nieuwe release. Gebruikers die op de canarysite terechtkomen, ontvangen een sticky-cookie waardoor ze voor consistente sessies op dezelfde versie blijven.
# Route 10% of traffic to the staging slot (canary)
az webapp traffic-routing set \
--name MyUniqueWebApp \
--resource-group MyRG \
--distribution staging=10
# View current traffic distribution
az webapp traffic-routing show \
--name MyUniqueWebApp \
--resource-group MyRG
# Reset all traffic to production
az webapp traffic-routing clear \
--name MyUniqueWebApp \
--resource-group MyRGAuto Swap
Auto Swap wisselt een testsite automatisch om naar productie zodra er nieuwe code naar is geïmplementeerd. Dit is ideaal voor CI/CD-pijplijnen waarin je elke geslaagde implementatie onmiddellijk live wilt zetten. Auto Swap wacht totdat de HTTP-aanvragen van de testsite 200 retourneren voordat de swap wordt voltooid. Schakel dit per site in via de portal of CLI — maar wees voorzichtig, want er is geen handmatige goedkeuringsstap tussen implementatie en productie.
# Enable Auto Swap for the staging slot
az webapp deployment slot auto-swap \
--name MyUniqueWebApp \
--resource-group MyRG \
--slot staging \
--auto-swap-slot production
# Disable Auto Swap
az webapp deployment slot auto-swap \
--name MyUniqueWebApp \
--resource-group MyRG \
--slot staging \
--disableAanbevolen werkwijzen voor implementatiesites
Volg deze aanbevolen werkwijzen voor implementatiesites: valideer altijd in staging voordat je naar productie omwisselt, gebruik sitegebonden instellingen om de databaseverbindingen van productie gescheiden te houden van staging, voer na de implementatie smoketests uit tegen de URL van de testsite, configureer paden voor statuscontroles zodat App Service de swap niet voltooit als de nieuwe versie ongezond is en voorzie je implementaties van tags, zodat je kunt traceren welke commit in elke site actief is.
Sites in CI/CD-pijplijnen
In een typische CI/CD-pijplijn compileert en test de bouwfase de code, pusht de implementatiefase het artefact naar de testsite, voert een integratietestfase geautomatiseerde tests uit tegen de staging-URL en wisselt de swapfase staging om naar productie — eventueel na een handmatige goedkeuring. Dit patroon wordt standaard ondersteund in zowel Azure Pipelines als GitHub Actions met de App Service-implementatieactie.
# GitHub Actions step: deploy to staging slot
# - name: Deploy to Staging Slot
# uses: azure/webapps-deploy@v2
# with:
# app-name: MyUniqueWebApp
# slot-name: staging
# publish-profile: ${{ secrets.AZURE_STAGING_PUBLISH_PROFILE }}
#
# - name: Swap to Production
# uses: azure/CLI@v1
# with:
# inlineScript: |
# az webapp deployment slot swap \
# --name MyUniqueWebApp \
# --resource-group MyRG \
# --slot stagingDe gezondheid van een swap bewaken
Bewaar tijdens en na een site-swap de belangrijkste metrische gegevens in Azure Monitor om te bevestigen dat de nieuwe versie gezond is. Let op pieken in HTTP 5xx-fouten, de gemiddelde reactietijd en het CPU-/geheugengebruik. Stel waarschuwingen voor metrische gegevens in die worden geactiveerd wanneer foutpercentages een drempel overschrijden — zo krijg je een signaal om snel terug te wisselen. De slimme detectie van Application Insights kan je na een implementatie automatisch waarschuwen voor afwijkingen.
# Create an alert rule for HTTP 5xx errors post-swap
az monitor metrics alert create \
--name 'HighErrorRate' \
--resource-group MyRG \
--scopes '/subscriptions/.../providers/Microsoft.Web/sites/MyUniqueWebApp' \
--condition 'avg Http5xx > 10' \
--window-size 5m \
--evaluation-frequency 1m \
--action-group MyActionGroupSites versus meerdere apps
Implementatiesites hebben de voorkeur boven volledig afzonderlijke App Service-apps voor staging en productie, omdat sites hetzelfde plan delen (geen extra kosten), omwisselen met één klik en terugdraaien ondersteunen, verkeer kunnen verdelen en onder dezelfde App Service-resource worden beheerd. Gebruik alleen afzonderlijke apps wanneer staging fundamenteel verschillende plan-SKU's, isolatievereisten of volledig afzonderlijke facturering nodig heeft.
Korte controle
Test je begrip van de concepten uit Microsoft Azure Fundamentals (AZ-900) die in deze les aan bod kwamen.
Samenvatting van de les
In deze les heb je geleerd dat implementatiesites geïsoleerde omgevingen bieden voor blue-green-implementaties, dat sitegebonden instellingen omgevingsspecifieke configuratie (zoals database-URL's) aan de site koppelen in plaats van aan de code en dat je met verkeersverdeling canary-releases kunt uitvoeren door een percentage van het productieverkeer naar een nieuwe versie te leiden. Hierna bekijken we automatisch schalen en aangepaste domeinen.
Leer Azure Fundamentals met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 30
- Lessen
- 120
Veelgestelde vragen
Is de les “Deploymentslots en swappen” gratis?
Ja — de volledige tekst van “Deploymentslots en swappen” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Azure Fundamentals wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Azure Fundamentals bevat in totaal 4 lessen.
Wat leer ik in “Deploymentslots en swappen”?
Maak staging-slots voor blue-green-deployments, warm een nieuwe release op in het staging-slot en swap deze zonder downtime naar productie. Je oefent met Azure Fundamentals door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met Azure Fundamentals te beginnen?
Ervaring vooraf is niet nodig. Azure Fundamentals op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 2 van 4.
Hoe lang duurt de les “Deploymentslots en swappen”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over Azure Fundamentals?
Ja. Elke les over Azure Fundamentals bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- Een App Service-plan en webapp maken
- Deploymentslots en swappen
- Autoscaling en aangepaste domeinen
- App Service-authenticatie en netwerken