Azure Fundamentals · Lektion

Distributionsplatser och växling

Skapa staging-platser för blue-green-distributioner, värm upp en ny version på staging-platsen och växla över den till produktion utan driftstopp.

Lektion 2 av 413 steg

Distributionsplatser och växling är en gratis lektion i Azure Fundamentals på CoddyKit. Detta är lektion 2 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Azure Fundamentals, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Azure Fundamentals innehåller totalt 4 lektioner.

Vad är distributionsplatser?

Distributionsplatser är aktiva, separata miljöer för en App Service-webbapp, där varje miljö har ett eget värdnamn (till exempel myapp-staging.azurewebsites.net). Platserna delar samma App Service-plan och resurser som produktionsplatsen, men körs oberoende av varandra. De möjliggör blue-green-distributioner — ni validerar en ny version på en staging-plats och byter sedan plats så att den hamnar i produktion utan driftstopp. Platser är tillgängliga från Standard-nivån och uppåt.

Skapa en distributionsplats

Lägg till en ny distributionsplats i webbappen med hjälp av Azure-portalen eller CLI. Varje plats får en egen URL, programinställningar och anslutningssträngar. Ni kan skapa upp till 5 platser på Standard och upp till 20 platser på Premium-nivån. Vanliga platsnamn är staging, canary, hotfix och integration, vilket återspeglar olika steg i releasepipelinen.

# 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.net

Förvärm staging-platsen

Före ett byte är det viktigt att förvärma staging-platsen så att den nya versionen är fullständigt initierad. En kall App Service-instans hanterar de första begärandena långsamt medan körningsmiljön initieras, vilket är oacceptabelt i produktion. Aktivera Auto Swap eller skicka manuellt HTTP-begäranden för uppvärmning till staging-platsen. App Service stöder även en applicationInitialization-konfiguration där ni kan definiera uppvärmningssökvägar som måste returnera 200 innan platsen anses vara redo.

# 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"}'

Byta distributionsplatser

Ett byte utbyter staging- och produktionsplatserna atomiskt. Under ett byte dirigerar App Service först trafiken till staging-instanserna som kör den nya koden, väntar på att de ska initieras och dirigerar sedan om all produktionstrafik till de nya instanserna. De gamla produktionsinstanserna blir då den nya staging-platsen. Detta gör återställning enkel — byt bara igen för att återgå till den tidigare versionen.

# 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 staging

Platsbundna och icke-platsbundna inställningar

Programinställningar kan markeras som platsbundna (specifika för en plats) eller icke-platsbundna (kan följa med vid byte). Icke-platsbundna inställningar följer med distributionsplatsen när ni byter — staging-databasens anslutningssträng följer alltså koden in i produktion. Platsbundna inställningar stannar kvar på platsen oavsett byten — produktionen behåller alltid sin anslutningssträng till produktionsdatabasen. Markera inställningar som platsbundna med kryssrutan ”deployment slot setting” eller via 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=true

Trafikdelning för canary-releaser

App Service stöder trafikdelning — att dirigera en procentandel av produktionstrafiken till en icke-produktionsplats utan att genomföra ett fullständigt byte. Detta möjliggör canary-releaser, där ni gradvis flyttar trafiken från 5 % till 10 % och sedan till 50 % när ni får större förtroende för den nya versionen, samtidigt som ni övervakar felfrekvensen vid varje steg. Användare som hamnar på canary-platsen får en platsbunden cookie som håller dem kvar på samma version så att sessionen förblir konsekvent.

# 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 MyRG

Auto Swap

Auto Swap byter automatiskt in en staging-plats i produktion när ny kod distribueras till den. Det passar bra för CI/CD-pipelines där ni vill att varje lyckad distribution ska tas i drift omedelbart. Auto Swap väntar på att staging-platsens HTTP-begäranden ska returnera 200 innan bytet slutförs. Aktivera funktionen per plats i portalen eller via CLI — men använd den med försiktighet, eftersom det saknas ett manuellt godkännandesteg mellan distribution och produktion.

# 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 \
  --disable

Metodtips för distributionsplatser

Följ dessa metodtips för distributionsplatser: validera alltid i staging innan ni byter till produktion, använd platsbundna inställningar för att hålla produktionsdatabasens anslutningar åtskilda från staging, kör smoketester mot staging-platsens URL efter distributionen, konfigurera sökvägar för hälsokontroll så att App Service inte slutför bytet om den nya versionen inte är frisk och tagga era distributioner så att ni kan spåra vilken commit som körs på varje plats.

Platser i CI/CD-pipelines

I en typisk CI/CD-pipeline kompilerar och testar byggsteget koden, skickar distributionssteget artefakten till staging-platsen, kör ett integreringsteststeg automatiserade tester mot staging-URL:en och byter bytessteget staging till produktion — eventuellt med ett manuellt godkännande som villkor. Detta mönster stöds inbyggt i både Azure Pipelines och GitHub Actions med App Service-distributionsåtgärden.

# 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 staging

Övervaka byteshälsan

Under och efter ett byte av plats bör ni övervaka viktiga mått i Azure Monitor för att bekräfta att den nya versionen fungerar korrekt. Håll utkik efter ökningar av HTTP 5xx-fel, genomsnittlig svarstid och CPU-/minnesanvändning. Konfigurera måttaviseringar som utlöses om felfrekvensen överskrider ett tröskelvärde — då får ni en signal om att snabbt byta tillbaka. Smart identifiering i Application Insights kan automatiskt meddela er om avvikelser efter en distribution.

# 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 MyActionGroup

Platser jämfört med flera appar

Distributionsplatser är att föredra framför att underhålla helt separata App Service-appar för staging och produktion, eftersom platserna delar samma plan (ingen extra kostnad), erbjuder byte med ett klick och återställning, stöder trafikdelning och hanteras under samma App Service-resurs. Använd separata appar endast när staging kräver fundamentalt andra plan-SKU:er, isoleringskrav eller helt separat fakturering.

Snabbkontroll

Testa era kunskaper om koncepten i Microsoft Azure Fundamentals (AZ-900) från den här lektionen.

Sammanfattning av lektionen

I den här lektionen lärde ni er att distributionsplatser tillhandahåller isolerade miljöer som möjliggör blue-green-distributioner, att platsbundna inställningar håller miljöspecifik konfiguration (till exempel databas-URL:er) bunden till platsen i stället för till koden och att trafikdelning möjliggör canary-releaser genom att dirigera en procentandel av produktionstrafiken till en ny version. Nästa steg är att utforska automatisk skalning och anpassade domäner.

Gratis att börja

Lär dig Azure Fundamentals med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
30
Lektioner
120

Vanliga frågor

Är lektionen ”Distributionsplatser och växling” gratis?

Ja – hela texten till ”Distributionsplatser och växling” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Azure Fundamentals, kan Ni uppgradera till CoddyKit PRO. Kursen i Azure Fundamentals innehåller totalt 4 lektioner.

Vad lär jag mig i ”Distributionsplatser och växling”?

Skapa staging-platser för blue-green-distributioner, värm upp en ny version på staging-platsen och växla över den till produktion utan driftstopp. Ni övar på Azure Fundamentals med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig Azure Fundamentals?

Du behöver inga förkunskaper. Utbildningen i Azure Fundamentals på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 2 av 4.

Hur lång tid tar lektionen ”Distributionsplatser och växling”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här Azure Fundamentals-lektionen?

Ja. Varje Azure Fundamentals-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Skapa en App Service-plan och webbapp
  2. Distributionsplatser och växling
  3. Autoskalning och anpassade domäner
  4. App Service-autentisering och nätverk
← Tillbaka till Azure Fundamentals