Bereitstellungsslots und Austausch
Erstellen Sie Staging-Slots für Blue-Green-Bereitstellungen, wärmen Sie eine neue Version im Staging-Slot auf und tauschen Sie sie ohne Ausfallzeit in die Produktionsumgebung aus.
Bereitstellungsslots und Austausch ist eine kostenlose Cloud & IT Cert Prep-Lektion auf CoddyKit. Dies ist Lektion 2 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Cloud & IT Cert Prep-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Cloud & IT Cert Prep-Kurs umfasst insgesamt 4 Lektionen.
Was sind Deployment-Slots?
Deployment-Slots sind aktive, separate Umgebungen für eine App Service-Web-App. Jeder Slot verfügt über einen eigenen Hostnamen (z. B. myapp-staging.azurewebsites.net). Die Slots nutzen denselben App Service-Plan und dieselben Ressourcen wie der Produktions-Slot, werden aber unabhängig ausgeführt. Sie ermöglichen Blue-Green-Deployments — Sie validieren ein neues Release in einem Staging-Slot und tauschen es anschließend ohne Ausfallzeit in die Produktion. Slots sind ab der Standard-Ebene verfügbar.
Deployment-Slot erstellen
Fügen Sie Ihrer Web-App über das Azure-Portal oder die CLI einen neuen Deployment-Slot hinzu. Jeder Slot erhält eine eigene URL, Anwendungseinstellungen und Verbindungszeichenfolgen. Auf der Standard-Ebene können Sie bis zu 5 Slots und auf der Premium-Ebene bis zu 20 Slots erstellen. Häufige Slot-Namen sind staging, canary, hotfix und integration. Sie spiegeln die verschiedenen Phasen der Release-Pipeline wider.
# 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.netStaging-Slot aufwärmen
Vor dem Tausch ist es wichtig, den Staging-Slot aufzuwärmen, damit die neue Version vollständig initialisiert ist. Eine nicht aufgewärmte App Service-Instanz verarbeitet die ersten Anforderungen langsam, während die Laufzeitumgebung initialisiert wird. Das ist in der Produktion nicht akzeptabel. Aktivieren Sie Auto Swap oder senden Sie manuell HTTP-Aufwärmanforderungen an den Staging-Slot. App Service unterstützt außerdem eine applicationInitialization-Konfiguration, mit der Sie Aufwärmpfade definieren können. Diese müssen den Statuscode 200 zurückgeben, bevor der Slot als bereit gilt.
# 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"}'Slots tauschen
Ein Tausch vertauscht den Staging- und den Produktions-Slot atomar. Während eines Tauschs leitet App Service den Datenverkehr zunächst an die Staging-Instanzen mit dem neuen Code weiter und wartet, bis diese initialisiert sind. Anschließend wird der gesamte Produktionsdatenverkehr an die neuen Instanzen umgeleitet, während die bisherigen Produktionsinstanzen zum neuen Staging-Slot werden. Dadurch ist ein Rollback ganz einfach — tauschen Sie die Slots einfach erneut, um die Änderung rückgängig zu machen.
# 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 stagingSlotgebundene und nicht slotgebundene Einstellungen
Anwendungseinstellungen können als slotgebunden (slotspezifisch) oder nicht slotgebunden (austauschbar) markiert werden. Nicht slotgebundene Einstellungen werden beim Tausch mit dem Deployment-Slot verschoben — die Verbindungszeichenfolge Ihrer Staging-Datenbank folgt also dem Code in die Produktion. Slotgebundene Einstellungen bleiben unabhängig von Tauschvorgängen beim jeweiligen Slot — die Produktion behält also immer ihre Verbindungszeichenfolge zur Produktionsdatenbank. Markieren Sie Einstellungen über das Kontrollkästchen 'deployment slot setting' oder die CLI als slotgebunden.
# 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=trueDatenverkehrsaufteilung für Canary-Releases
App Service unterstützt die Datenverkehrsaufteilung — dabei wird ein Prozentsatz des Produktionsdatenverkehrs an einen Nicht-Produktions-Slot weitergeleitet, ohne einen vollständigen Tausch durchzuführen. Dies ermöglicht Canary-Releases, bei denen Sie den Datenverkehr schrittweise von 5 % über 10 % auf 50 % umleiten, während Sie Vertrauen in das neue Release gewinnen und die Fehlerraten bei jedem Schritt überwachen. Benutzer, die im Canary-Slot landen, erhalten ein Sticky-Cookie, das sie für eine konsistente Sitzung bei derselben Version hält.
# 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 tauscht einen Staging-Slot automatisch in die Produktion, sobald neuer Code dort bereitgestellt wurde. Diese Funktion eignet sich ideal für CI/CD-Pipelines, bei denen jedes erfolgreiche Deployment sofort live gehen soll. Auto Swap wartet, bis die HTTP-Anforderungen des Staging-Slots den Statuscode 200 zurückgeben, bevor der Tausch abgeschlossen wird. Aktivieren Sie die Funktion pro Slot im Portal oder über die CLI — verwenden Sie sie jedoch mit Vorsicht, da zwischen Deployment und Produktion keine manuelle Genehmigungsstufe vorhanden ist.
# 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 \
--disableBewährte Vorgehensweisen für Deployment-Slots
Beachten Sie für Deployment-Slots die folgenden bewährten Vorgehensweisen: Validieren Sie immer im Staging, bevor Sie in die Produktion tauschen. Verwenden Sie slotgebundene Einstellungen, um die Verbindungen der Produktionsdatenbank von Staging zu isolieren. Führen Sie nach dem Deployment Smoke-Tests anhand der URL des Staging-Slots aus. Konfigurieren Sie Health-Check-Pfade, damit App Service den Tausch nicht abschließt, wenn die neue Version fehlerhaft ist. Und versehen Sie Ihre Deployments mit Tags, damit Sie nachvollziehen können, welcher Commit in welchem Slot aktiv ist.
Slots in CI/CD-Pipelines
In einer typischen CI/CD-Pipeline kompiliert und testet die Build-Phase den Code, die Deployment-Phase stellt das Artefakt im Staging-Slot bereit, eine Integrationstest-Phase führt automatisierte Tests anhand der Staging-URL aus, und die Tausch-Phase tauscht den Staging-Slot in die Produktion — optional nach einer manuellen Genehmigung. Dieses Muster wird sowohl in Azure Pipelines als auch in GitHub Actions nativ mit der App Service-Deploy-Aktion unterstützt.
# 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Überwachung des Tauschzustands
Überwachen Sie während und nach einem Slot-Tausch wichtige Metriken in Azure Monitor, um zu bestätigen, dass die neue Version fehlerfrei ist. Achten Sie auf Anstiege bei HTTP-5xx-Fehlern, der durchschnittlichen Antwortzeit und der CPU-/Speicherauslastung. Richten Sie Metrikalarme ein, die ausgelöst werden, wenn die Fehlerraten einen Schwellenwert überschreiten — so erhalten Sie ein Signal, um schnell zurückzutauschen. Die intelligente Erkennung von Application Insights kann Sie nach einem Deployment automatisch auf Anomalien hinweisen.
# 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 MyActionGroupSlots im Vergleich zu mehreren Apps
Deployment-Slots sind der Verwaltung vollständig getrennt stehender App Service-Apps für Staging und Produktion vorzuziehen, da Slots denselben Plan verwenden (keine zusätzlichen Kosten verursachen), einen Tausch mit einem Klick und Rollback ermöglichen, die Datenverkehrsaufteilung unterstützen und unter derselben App Service-Ressource verwaltet werden. Verwenden Sie separate Apps nur, wenn Staging grundlegend andere Plan-SKUs, Isolationsanforderungen oder eine vollständig getrennte Abrechnung benötigt.
Kurze Überprüfung
Testen Sie Ihr Verständnis der Konzepte aus Microsoft Azure Fundamentals (AZ-900), die in dieser Lektion behandelt wurden.
Zusammenfassung der Lektion
In dieser Lektion haben Sie gelernt: Deployment-Slots stellen isolierte Umgebungen für Blue-Green-Deployments bereit. Slotgebundene Einstellungen halten umgebungsspezifische Konfigurationen (z. B. Datenbank-URLs) an den Slot gebunden und nicht an den Code. Die Datenverkehrsaufteilung ermöglicht Canary-Releases, indem ein Prozentsatz des Produktionsdatenverkehrs an eine neue Version weitergeleitet wird. Als Nächstes beschäftigen wir uns mit der automatischen Skalierung und benutzerdefinierten Domänen.
Häufig gestellte Fragen
Ist die Lektion „Bereitstellungsslots und Austausch“ kostenlos?
Ja — der vollständige Text von „Bereitstellungsslots und Austausch“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Cloud & IT Cert Prep-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Cloud & IT Cert Prep-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Bereitstellungsslots und Austausch“?
Erstellen Sie Staging-Slots für Blue-Green-Bereitstellungen, wärmen Sie eine neue Version im Staging-Slot auf und tauschen Sie sie ohne Ausfallzeit in die Produktionsumgebung aus. Du übst Cloud & IT Cert Prep mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Cloud & IT Cert Prep zu starten?
Keine Vorkenntnisse erforderlich. Cloud & IT Cert Prep auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 4.
Wie lange dauert die Lektion „Bereitstellungsslots und Austausch“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Cloud & IT Cert Prep-Lektion Code schreiben und ausführen?
Ja. Jede Cloud & IT Cert Prep-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- App-Service-Plan und Web-App erstellen
- Bereitstellungsslots und Austausch
- Automatische Skalierung und benutzerdefinierte Domänen
- Authentifizierung und Netzwerk in App Service