Sie konfigurieren das Rollback als Pipeline mit Aufgaben, die Ihre Bereitstellung nach einem Fehler in einer Bereitstellungs-Pipeline auf einen früheren stabilen Zustand zurücksetzen. Um im Falle eines Fehlers ein Rollback durchzuführen, ordnen Sie die Rollback-Pipeline Aufgaben oder Phasen zu.

Je nach Ihrer Rolle können Ihre Gründe für ein Rollback variieren.

  • Als Versionsentwickler möchten Sie, dass Code Stream den Erfolg während einer Freigabe überprüft, damit Sie wissen, ob Sie mit der Freigabe fortfahren oder ein Rollback durchführen. Mögliche Fehler sind Aufgabenfehler, eine Ablehnung in UserOps oder eine Überschreitung des Metrikschwellenwerts.
  • Als Besitzer einer Umgebung möchten Sie eine vorherige Version erneut bereitstellen, damit Sie eine Umgebung schnell wieder in einen zweifelsfrei funktionierenden Zustand versetzen können.
  • Als Besitzer einer Umgebung möchten Sie das Rollback einer Blau/Grün-Bereitstellung unterstützen, um die Ausfallzeit bei fehlgeschlagenen Versionen minimieren zu können.

Wenn Sie eine intelligente Pipeline-Vorlage mit aktivierter Rollback-Option zum Erstellen einer CD-Pipeline verwenden, wird das Rollback automatisch den Aufgaben in der Pipeline hinzugefügt. In diesem Anwendungsfall verwenden Sie die intelligente Pipeline-Vorlage, um das Rollback für eine Anwendungsbereitstellung auf einem Kubernetes-Cluster mithilfe des Bereitstellungsmodells für das parallele Upgrade zu definieren. Die intelligente Pipeline-Vorlage erstellt eine Bereitstellungs-Pipeline und eine oder mehrere Rollback-Pipelines.

  • In der Bereitstellungs-Pipeline ist ein Rollback erforderlich, wenn Aufgaben vom Typ „Bereitstellung aktualisieren“ oder „Bereitstellung überprüfen“ fehlschlagen.
  • In der Rollback-Pipeline wird die Bereitstellung mit einem alten Image aktualisiert.

Sie können eine Rollback-Pipeline auch manuell mithilfe einer leeren Vorlage erstellen. Bevor Sie eine Rollback-Pipeline erstellen, sollten Sie den Rollback-Ablauf planen. Weitere Hintergrundinformationen zum Rollback finden Sie unter Planen für ein Rollback in Code Stream.

Voraussetzungen

  • Vergewissern Sie sich, dass Sie Mitglied eines Projekts in Code Stream sind. Falls nicht, bitten Sie einen Code Stream-Administrator, Sie als Mitglied eines Projekts hinzuzufügen. Weitere Informationen hierzu finden Sie unter Vorgehensweise zum Hinzufügen eines Projekts in Code Stream.
  • Richten Sie die Kubernetes-Cluster ein, in denen Ihre Pipeline Ihre Anwendung bereitstellt. Richten Sie einen Entwicklungs-Cluster und einen Produktions-Cluster ein.
  • Stellen Sie sicher, dass Sie über die Einrichtung einer Docker-Registrierung verfügen.
  • Bezeichnen Sie ein Projekt, in dem Ihre gesamte Arbeit, einschließlich Pipeline, Endpoints und Dashboards, gruppiert wird.
  • Machen Sie sich mit der intelligenten CD-Vorlage vertraut, die im CD-Abschnitt von Planen eines nativen CICD-Builds in Code Stream vor der Verwendung der intelligenten Pipeline-Vorlage beschrieben wird, wie z. B.:
    • Erstellen Sie die Kubernetes-Entwicklungs- und -Produktions-Endpoints, die Ihr Anwendungs-Image in den Kubernetes-Clustern bereitstellen.
    • Bereiten Sie die Kubernetes-YAML-Datei vor, die den Namespace, den Dienst und die Bereitstellung erstellt. Wenn Sie ein Image aus einem privaten Repository herunterladen müssen, muss die YAML-Datei einen Abschnitt mit dem geheimen Docker-Konfigurationsschlüssel enthalten.

Prozedur

  1. Klicken Sie auf Pipelines > Neue Pipeline > Intelligente Vorlage > Kontinuierliche Bereitstellung.
  2. Geben Sie die Informationen in die intelligente Pipeline-Vorlage ein.
    1. Wählen Sie ein Projekt aus.
    2. Geben Sie einen Pipeline-Namen ein, zum Beispiel RollingUpgrade-Example.
    3. Wählen Sie die Umgebungen für Ihre Anwendung aus. Wenn Sie ein Rollback zu Ihrer Bereitstellung hinzufügen möchten, müssen Sie Prod auswählen.
    4. Klicken Sie auf Auswählen, wählen Sie eine Kubernetes-YAML-Datei aus und klicken Sie auf Prozess.
      Die intelligente Pipeline-Vorlage zeigt die verfügbaren Dienste und Bereitstellungsumgebungen an.
    5. Wählen Sie den Dienst aus, den die Pipeline für die Bereitstellung verwenden soll.
    6. Wählen Sie die Cluster-Endpoints für die Dev- und die Prod-Umgebung aus.
    7. Wählen Sie als Image-Quelle Pipeline-Laufzeiteingabe aus.
    8. Wählen Sie als Bereitstellungsmodell Paralleles Upgrade aus.
    9. Klicken Sie auf Rollback.
    10. Geben Sie die URL für die Integritätsprüfung an.
    Wenn Sie eine Rollback-Pipeline erstellen, geben Sie die Details ein, wählen Sie einen Dienst, eine Bereitstellung und ein Bereitstellungsmodell aus und aktivieren Sie das Kontrollkästchen Rollback.
  3. Um die Pipeline mit dem Namen „RollbackUpgrade-Example“ zu erstellen, klicken Sie auf Erstellen.

    Die Pipeline mit dem Namen „RollbackUpgrade-Example“ wird angezeigt und das Rollback-Symbol wird bei Aufgaben angezeigt, für die in der Entwicklungs- und Produktionsphase ein Rollback durchgeführt werden kann.

    In einer Rollback-Pipeline wird das Rollback-Symbol bei Aufgaben angezeigt, für die die Pipeline ein Rollback durchführen kann.

  4. Schließen Sie die Pipeline.

    Auf der Seite „Pipelines“ werden die von Ihnen erstellte Pipeline und eine neue Pipeline für jede Phase in Ihrer Pipeline angezeigt.

    • RollingUpgrade-Example. Code Stream deaktiviert die Pipeline, die Sie standardmäßig erstellt haben, was sicherstellt, dass Sie sie vor der Ausführung überprüfen.
    • RollingUpgrade-Example_Dev_Rollback. Beim Ausfall von Aufgaben in der Entwicklungsphase, z. B. Dienst erstellen, Geheimen Schlüssel erstellen, Bereitstellung erstellen und Bereitstellung überprüfen, wird diese Entwicklungs-Rollback-Pipeline aufgerufen. Um das Rollback von Entwicklungsaufgaben sicherzustellen, aktiviert Code Stream standardmäßig die Entwicklungs-Rollback-Pipeline.
    • RollingUpgrade-Example_Prod_Rollback. Diese Produktions-Rollback-Pipeline wird beim Ausfall von Aufgaben in der Produktionsphase aufgerufen, z. B. bei Phase 1 bereitstellen, Phase 1 überprüfen, Rollout-Phase bereitstellen, Rollout-Phase abschließen und Rollout-Phase überprüfen. Um das Rollback von Produktionsaufgaben sicherzustellen, aktiviert Code Stream standardmäßig die Produktions-Rollback-Pipeline.
    Code Stream erstellt Rollback-Pipelines für die Phasen und aktiviert sie.
  5. Aktivieren Sie die von Ihnen erstellte Pipeline und führen Sie sie aus.
    Wenn Sie die Ausführung starten, fordert Code Stream Sie zur Angabe von Eingabeparametern auf. Sie stellen das Image und das Tag für den Endpoint im Docker-Repository bereit, das Sie verwenden.
  6. Klicken Sie auf der Seite „Ausführungen“ auf Aktionen > Ausführung anzeigen und überwachen Sie die Pipeline-Ausführung.

    Die Pipeline startet mit dem Status RUNNING und durchläuft die Aufgaben der Entwicklungsphase. Wenn die Pipeline während der Entwicklungsphase keine Aufgabe ausführen kann, wird die Pipeline mit dem Namen „RollingUpgrade-Example_Dev_Rollback“ ausgelöst, die die Bereitstellung zurücksetzt, und der Pipelinestatus ändert sich in ROLLING_BACK.

    Die Rollback-Pipeline führt ein Rollback der Bereitstellung durch und setzt die Pipeline auf den früheren stabilen Zustand zurück.

    Nach dem Rollback werden auf der Seite „Ausführungen“ zwei RollingUpgrade-Example-Pipeline-Ausführungen aufgelistet.

    • Die von Ihnen erstellte Pipeline, für die ein Rollback durchgeführt wurde, zeigt ROLLBACK_COMPLETED an.
    • Die Entwicklungs-Rollback-Pipeline, die ausgelöst wurde und das Rollback durchgeführt hat, zeigt COMPLETED an.

    Die Rollback-Ergebnisse werden auf der Registerkarte Ausführungen angezeigt, und in den Kommentaren wird der Auslösepunkt des Rollbacks angegeben.

Ergebnisse

Herzlichen Glückwunsch! Sie haben erfolgreich eine Pipeline mit Rollback definiert und die Durchführung des Pipeline-Rollbacks durch Code Stream zum Zeitpunkt des Fehlers überwacht.