Blue-Green-Deployments
Richten Sie mit GitHub Actions Blue-Green-Deployment-Strategien ein, um Ausfallzeiten zu minimieren und schnelle Rollbacks zu ermöglichen.
Blue-Green-Deployments ist eine kostenlose CI/CD with GitHub Actions & DevOps Pipelines-Lektion auf CoddyKit. Dies ist Lektion 1 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 CI/CD with GitHub Actions & DevOps Pipelines-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der CI/CD with GitHub Actions & DevOps Pipelines-Kurs umfasst insgesamt 4 Lektionen.
Was ist eine Blue/Green-Bereitstellung?
Willkommen! In dieser Lektion beschäftigen wir uns mit Blue/Green-Bereitstellungen, einer leistungsstarken Strategie für die Veröffentlichung neuer Software.
Sie wurde entwickelt, um Ausfallzeiten und Risiken während Bereitstellungen zu minimieren und Ihren Benutzern jederzeit eine reibungslose Nutzung zu ermöglichen.
Blue und Green verstehen
Stellen Sie sich zwei identische Produktionsumgebungen vor: eine namens „Blue“ und eine namens „Green“.
- Blue: Dies ist Ihre aktuelle aktive Umgebung, die den gesamten Benutzerverkehr bedient.
- Green: Dies ist eine inaktive, identische Umgebung, in der neue Versionen bereitgestellt und getestet werden.
So funktioniert Blue/Green
Der Ablauf ist einfach, aber effektiv:
- Stellen Sie Ihre neue Anwendungsversion in der Green-Umgebung (inaktiv) bereit.
- Testen Sie die neue Version gründlich in Green.
- Wechseln Sie, sobald Sie Vertrauen in die Version haben, den gesamten Benutzerverkehr von Blue zu Green.
- Die alte Blue-Umgebung ist nun inaktiv und kann für schnelle Rollbacks oder Aktualisierungen beibehalten werden.
Warum Blue/Green verwenden?
Diese Strategie bietet erhebliche Vorteile:
- Keine Ausfallzeit: Benutzer wechseln nahtlos zur neuen Version, ohne Unterbrechung.
- Sofortiges Rollback: Wenn Probleme auftreten, wechseln Sie den Datenverkehr einfach zurück zur stabilen Blue-Umgebung.
- Geringeres Risiko: Testen Sie neue Versionen in einer produktionsnahen Umgebung, bevor Sie sie live schalten.
Was Sie benötigen
Für die Implementierung von Blue/Green benötigen Sie in der Regel:
- Load Balancer: Um den Datenverkehr entweder an die Blue- oder die Green-Umgebung weiterzuleiten.
- Zwei identische Umgebungen: Häufig cloudbasiert, um Konsistenz sicherzustellen.
- Automatisierungstool: Zum Beispiel GitHub Actions, um Bereitstellungen und den Wechsel des Datenverkehrs zu verwalten.
Mit GitHub Actions orchestrieren
GitHub Actions kann jeden Schritt Ihrer Blue/Green-Bereitstellung automatisieren.
Sie können Workflows definieren, um:
- die Bereitstellung in der inaktiven Umgebung zu erstellen und durchzuführen.
- automatisierte Tests für die neue Bereitstellung auszuführen.
- den Wechsel des Datenverkehrs über die API Ihres Load Balancers oder ein Skript auszulösen.
Die neue Version bereitstellen
Hier sehen Sie einen vereinfachten GitHub-Actions-Ausschnitt für die Bereitstellung Ihrer neuen App-Version in der Umgebung „Green“. Beachten Sie die Verwendung eines environment-Namens.
name: Deploy to Green
on:
push:
branches:
- main
jobs:
deploy-green:
runs-on: ubuntu-latest
environment: Green # Target the Green environment
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Deploy app to Green
run: |
echo "Deploying application version ${{ github.sha }} to Green environment..."
# Your actual deployment commands go here
# e.g., deploy to a specific AWS EC2 instance or Kubernetes namespaceDen Datenverkehr umschalten
Nach erfolgreicher Bereitstellung und erfolgreichen Tests besteht der letzte Schritt darin, den Datenverkehr umzuschalten. Dazu wird häufig ein Load Balancer oder ein DNS-Eintrag aktualisiert.
Hier sehen Sie einen konzeptionellen GitHub-Actions-Schritt, der diesen Wechsel auslösen würde:
name: Switch Traffic to Green
on:
workflow_dispatch: # Manual trigger for traffic switch
jobs:
switch-traffic:
runs-on: ubuntu-latest
steps:
- name: Update Load Balancer to Green
run: |
echo "Switching load balancer traffic to Green environment..."
# Call your load balancer's API or a script here
# e.g., aws elbv2 modify-target-group-attributes ...
# or kubectl apply -f green-ingress.yamlSofortige Rollbacks
Was geschieht, wenn Sie den Datenverkehr zu Green umschalten und ein kritischer Fehler auftritt?
Mit Blue/Green ist das Rollback sofort möglich! Sie schalten den Datenverkehr des Load Balancers einfach zurück auf die ursprüngliche, stabile Blue-Umgebung.
Dadurch werden die Auswirkungen von Vorfällen und die Wiederherstellungszeit deutlich reduziert.
Wichtige Überlegungen
Blue/Green ist zwar leistungsstark, bringt aber einige Aspekte mit sich:
- Duplizierte Ressourcen: Sie betreiben zwei vollständige Umgebungen, wodurch sich die Infrastrukturkosten verdoppeln können.
- Datenbankmigrationen: Der Umgang mit Datenbankänderungen kann komplex sein, da sowohl Blue als auch Green möglicherweise auf denselben Datenspeicher zugreifen müssen.
- Zustandsbehaftete Apps: Anwendungen mit dauerhaftem Zustand erfordern eine sorgfältige Planung.
Quiz zur Blue/Green-Bereitstellung
Überprüfen wir Ihr Verständnis von Blue/Green-Bereitstellungen.
Zusammenfassung der Lektion
Großartig! Sie haben Blue/Green-Bereitstellungen kennengelernt.
- Dabei werden zwei identische Umgebungen (Blue und Green) verwendet, um neue Versionen bereitzustellen.
- Diese Strategie bietet keine Ausfallzeit und sofortige Rollbacks.
- GitHub Actions kann die Bereitstellung und den Wechsel des Datenverkehrs automatisieren.
- Denken Sie daran, die Ressourcenkosten und Datenbankänderungen einzuplanen!
Häufig gestellte Fragen
Ist die Lektion „Blue-Green-Deployments“ kostenlos?
Ja — der vollständige Text von „Blue-Green-Deployments“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des CI/CD with GitHub Actions & DevOps Pipelines-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der CI/CD with GitHub Actions & DevOps Pipelines-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Blue-Green-Deployments“?
Richten Sie mit GitHub Actions Blue-Green-Deployment-Strategien ein, um Ausfallzeiten zu minimieren und schnelle Rollbacks zu ermöglichen. Du übst CI/CD with GitHub Actions & DevOps Pipelines 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 CI/CD with GitHub Actions & DevOps Pipelines zu starten?
Keine Vorkenntnisse erforderlich. CI/CD with GitHub Actions & DevOps Pipelines 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 1 von 4.
Wie lange dauert die Lektion „Blue-Green-Deployments“?
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 CI/CD with GitHub Actions & DevOps Pipelines-Lektion Code schreiben und ausführen?
Ja. Jede CI/CD with GitHub Actions & DevOps Pipelines-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
- Blue-Green-Deployments
- Canary-Releases mit Actions
- Rollbacks und Disaster Recovery
- Feature Flags und progressive Rollouts