Canary-Releases mit Actions
Implementieren Sie Canary-Release-Muster, um neue Funktionen schrittweise für einen Teil der Benutzer bereitzustellen und Performance sowie Stabilität zu überwachen.
Canary-Releases mit Actions ist eine kostenlose DevOps Bootcamp-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 DevOps Bootcamp-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der DevOps Bootcamp-Kurs umfasst insgesamt 4 Lektionen.
Einführung in Canary-Releases
Stellen Sie sich vor, Sie führen eine neue Funktion oder Aktualisierung ein. Was wäre, wenn sie einen Fehler enthält, der alle Ihre Benutzer betrifft? Beunruhigend, oder?
Canary-Releases helfen, dieses Risiko zu verringern, indem Änderungen zunächst schrittweise für eine kleine Benutzergruppe ausgerollt werden. Es ist so, als würde man einen „Kanarienvogel im Bergwerk“ vorausschicken, um die Luft zu prüfen, bevor alle anderen eintreten.
Vorteile von Canary-Releases
Canary-Releases bieten mehrere wichtige Vorteile:
- Geringeres Risiko: Begrenzen Sie die Auswirkungen von Problemen auf eine kleine Benutzergruppe.
- Feedback aus der Praxis: Erhalten Sie Produktionsdaten zu Leistung und Stabilität.
- Schnelles Rollback: Wenn Probleme auftreten, können Sie entweder nur die kleine Canary-Gruppe oder den gesamten Dienst schnell zurücksetzen.
- Kontrollierte Einführung: Erhöhen Sie die Reichweite für Benutzer schrittweise, sobald das Vertrauen wächst.
Canary gegenüber Blue/Green
Vielleicht erinnern Sie sich an Blue/Green-Bereitstellungen, bei denen der Datenverkehr sofort zwischen zwei identischen Umgebungen umgeschaltet wird.
Canary-Releases funktionieren anders. Statt einer sofortigen Umschaltung beinhalten sie eine schrittweise Verlagerung des Datenverkehrs. Eine neue Version läuft neben der alten, und zunächst sieht nur ein kleiner Prozentsatz der Benutzer die neue Version. So ist eine detaillierte Überwachung vor dem vollständigen Rollout möglich.
So funktionieren Canary-Releases
Hier sehen Sie den grundlegenden Ablauf eines Canary-Releases:
- Neue Version bereitstellen: Eine neue Version Ihrer Anwendung wird neben der vorhandenen stabilen Version auf einer kleinen Gruppe von Servern oder Instanzen bereitgestellt.
- Geringen Datenverkehr weiterleiten: Ein Load Balancer oder ein Service Mesh wird so konfiguriert, dass ein kleiner Prozentsatz (z. B. 5–10 %) des Benutzerverkehrs an die neue Version gesendet wird.
- Überwachen: Leistung, Fehlerraten und Benutzerfeedback werden für die Canary-Gruppe genau überwacht.
- Hochstufen oder zurücksetzen: Wenn alles gut aussieht, wird der Datenverkehr schrittweise erhöht oder die neue Version auf 100 % hochgestuft. Treten Probleme auf, wird das Canary-Rollout zurückgesetzt und der Datenverkehr wieder an die stabile Version geleitet.
Orchestrierung mit GitHub Actions
GitHub Actions kann den gesamten Prozess eines Canary-Releases orchestrieren. Der Datenverkehr wird dabei nicht direkt verwaltet (das ist Aufgabe Ihrer Infrastruktur), aber die einzelnen Schritte werden ausgelöst:
- Erstellen und Testen Ihrer Anwendung.
- Bereitstellen der neuen Version in einer Canary-Umgebung.
- Einleiten der Datenverkehrsverschiebung über API-Aufrufe an Ihren Load-Balancer oder Service Mesh.
- Warten auf Überwachungsergebnisse oder manuelle Genehmigungen.
- Hochstufen des Canarys oder Auslösen eines Rollbacks.
Aufbau eines Canary-Workflows
Ein typischer GitHub-Actions-Workflow für ein Canary-Release könnte folgendermaßen aussehen:
name: Canary Deployment
on: push
jobs:
build:
# ... build and test steps ...
deploy-canary:
needs: build
steps:
- name: Deploy to Canary Group
# ... call script/tool to deploy and shift 10% traffic ...
monitor-canary:
needs: deploy-canary
# ... wait for monitoring/approval ...
promote-or-rollback:
needs: monitor-canary
# ... conditionally promote to 100% or rollback ...Jeder Schritt würde mit Ihren Deployment-Tools interagieren.
Logik eines Canary-Rollouts simulieren
Während GitHub Actions die Abläufe orchestriert, finden die eigentliche Entscheidungsfindung und die Deployment-Befehle häufig in Skripten statt. Hier sehen Sie ein Python-Beispiel, das die Logik eines Canary-Rollouts simuliert. Stellen Sie sich vor, dass eine Action dieses Skript ausführt:
def deploy_version(version, traffic_percent):
print(f"Deploying {version} to {traffic_percent}% traffic.")
if traffic_percent == 100:
print("Full rollout complete!")
elif traffic_percent > 0:
print("Canary deployed. Monitoring for stability...")
else:
print("Version removed (rollback).")
if __name__ == "__main__":
print("--- Starting Canary Workflow ---")
new_app_version = "v2.1-canary"
stable_app_version = "v2.0"
# Step 1: Deploy new version to 10% traffic
deploy_version(new_app_version, 10)
# Step 2: Simulate monitoring (e.g., waiting for metrics)
print("Monitoring canary performance...")
import random
canary_successful = random.choice([True, True, True, False]) # 75% chance of success
if canary_successful:
print("Canary looks good! Proceeding to full rollout.")
# Step 3a: Promote new version to 100%
deploy_version(new_app_version, 100)
else:
print("Canary issues detected! Rolling back.")
# Step 3b: Rollback to stable version
deploy_version(stable_app_version, 100)
print("--- Canary Workflow Finished ---")Ihren Canary überwachen
Eine effektive Überwachung ist entscheidend. Ihr GitHub-Actions-Workflow kann auf verschiedene Weise in Überwachungssysteme integriert werden:
- API-Aufrufe: Fragen Sie Überwachungstools (z. B. Datadog oder Prometheus) nach wichtigen Metriken ab.
- Health-Checks: Rufen Sie regelmäßig die Health-Endpunkte der Anwendung ab.
- Manuelle Freigaben: Halten Sie den Workflow für eine Prüfung und Genehmigung durch eine Person an.
- Zeitbasierte Wartezeiten: Warten Sie einen festgelegten Zeitraum, damit sich die Metriken stabilisieren können.
Der Workflow verwendet diese Signale anschließend, um zu entscheiden, ob der Canary hochgestuft oder ein Rollback durchgeführt werden soll.
Bedingte Hochstufung bzw. Rollback
Nach der Überwachungsphase verwendet GitHub Actions eine bedingte Logik, um den nächsten Schritt zu bestimmen. In Ihren Job- oder Schrittdefinitionen können Sie if-Anweisungen verwenden.
promote-or-rollback:
needs: monitor-canary
if: success() && needs.monitor-canary.outputs.canary_ok == 'true'
steps:
- name: Promote Full Rollout
# ... command to shift 100% traffic to new version ...
rollback:
needs: monitor-canary
if: failure() || needs.monitor-canary.outputs.canary_ok == 'false'
steps:
- name: Rollback to Stable
# ... command to shift 100% traffic to old version ...So wird automatisch auf die Leistung des Canarys reagiert.
Überprüfung von Canary-Releases
Sie haben die Vorteile und die Funktionsweise von Canary-Releases kennengelernt. Testen wir nun Ihr Verständnis.
Zusammenfassung: Canary-Releases mit Actions
In dieser Lektion haben Sie Canary-Releases kennengelernt – eine leistungsfähige Deployment-Strategie, bei der neue Softwareversionen schrittweise für eine Teilmenge der Benutzer bereitgestellt werden.
- Canary-Releases minimieren Risiken und liefern Feedback aus dem tatsächlichen Betrieb.
- GitHub Actions orchestriert das Erstellen, das Deployment auf den Canary, die Überwachung sowie die bedingte Hochstufung bzw. das Rollback.
- Eine effektive Überwachung und bedingte Logik sind entscheidend für erfolgreiche Canary-Pipelines.
Mit Canarys können Sie Deployments mit größerem Vertrauen und mehr Kontrolle durchführen!
Häufig gestellte Fragen
Ist die Lektion „Canary-Releases mit Actions“ kostenlos?
Ja — der vollständige Text von „Canary-Releases mit Actions“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des DevOps Bootcamp-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der DevOps Bootcamp-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Canary-Releases mit Actions“?
Implementieren Sie Canary-Release-Muster, um neue Funktionen schrittweise für einen Teil der Benutzer bereitzustellen und Performance sowie Stabilität zu überwachen. Du übst DevOps Bootcamp 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 DevOps Bootcamp zu starten?
Keine Vorkenntnisse erforderlich. DevOps Bootcamp 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 „Canary-Releases mit Actions“?
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 DevOps Bootcamp-Lektion Code schreiben und ausführen?
Ja. Jede DevOps Bootcamp-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