Wenn eine Pipeline-Ausführung fehlschlägt, können Sie mithilfe eines Rollbacks Ihre Umgebung in einen früheren stabilen Zustand zurückversetzen. Um das Rollback zu verwenden, planen Sie einen Rollback-Ablauf und machen Sie sich damit vertraut, wie dieser implementiert wird.
In einem Rollback-Ablauf sind die erforderlichen Schritte festgelegt, die ausgeführt werden müssen, um einen Fehler bei der Bereitstellung rückgängig zu machen. Der Ablauf hat die Form einer Rollback-Pipeline, die eine oder mehrere sequenzielle Aufgaben enthält, welche je nach Typ der ausgeführten und fehlgeschlagenen Bereitstellung variieren. Die Bereitstellung und das Rollback einer herkömmlichen Anwendung unterscheiden sich beispielsweise von der Bereitstellung und dem Rollback einer Container-Anwendung.
- Bereinigen von Zuständen oder Umgebungen.
- Ausführen eines benutzerdefinierten Skripts, um Änderungen rückgängig zu machen.
- Bereitstellen einer vorherigen Revision einer Bereitstellung.
Um ein Rollback zu einer vorhandenen Bereitstellungs-Pipeline hinzuzufügen, hängen Sie vor deren Ausführung die Rollback-Pipeline an die Aufgaben oder Phasen in der Bereitstellungs-Pipeline an, für die Sie das Rollback durchführen möchten.
Vorgehensweise zum Konfigurieren eines Rollbacks
Um das Rollback in Ihrer Bereitstellung zu konfigurieren, müssen Sie Folgendes tun:
- Erstellen Sie eine Bereitstellungs-Pipeline.
- Ermitteln Sie potenzielle Fehlerpunkte in der Bereitstellungs-Pipeline, die das Rollback auslösen, damit Sie Ihre Rollback-Pipeline anhängen können. Sie können Ihre Rollback-Pipeline beispielsweise an einen Bedingungs- oder Abfrageaufgabentyp in der Bereitstellungs-Pipeline anhängen, der prüft, ob eine vorherige Aufgabe erfolgreich abgeschlossen wurde. Informationen zu Bedingungsaufgaben finden Sie unter Vorgehensweise zum Verwenden von Variablenbindungen in einer Bedingungsaufgabe zum Ausführen oder Anhalten einer Pipeline in Code Stream.
- Ermitteln Sie den Umfang des Fehlers, durch den die Rollback-Pipeline ausgelöst wird, beispielsweise ein Fehler in einer Aufgabe oder Phase. Sie können ein Rollback auch an eine Phase anhängen.
- Legen Sie fest, welche Rollback-Aufgabe(n) im Falle eines Fehlers ausgeführt werden soll(en). Mit diesen Aufgaben erstellen Sie Ihre Rollback-Pipeline.
Sie können eine Rollback-Pipeline manuell erstellen oder von Code Stream erstellen lassen. Sie können auch eine gemeinsam genutzte Pipeline für das Rollback auswählen.
- Mithilfe einer leeren Arbeitsfläche können Sie manuell eine Rollback-Pipeline erstellen, die einem Ablauf parallel zu einer vorhandenen Bereitstellungs-Pipeline folgt. Anschließend hängen Sie die Rollback-Pipeline an eine oder mehrere Aufgaben in der Bereitstellungs-Pipeline an, die bei einem Fehler ein Rollback auslösen.
- Mithilfe einer intelligenten Pipeline-Vorlage können Sie eine Bereitstellungs-Pipeline mit der Rollback-Aktion konfigurieren. Anschließend erstellt Code Stream automatisch eine oder mehrere standardmäßige Rollback-Pipelines mit vordefinierten Aufgaben, mit denen die Bereitstellung bei einem Fehler zurückgesetzt wird.
Ein detailliertes Beispiel für das Konfigurieren einer CD-Pipeline mit Rollback unter Verwendung einer intelligenten Pipeline-Vorlage finden Sie unter Vorgehensweise zum Rollback meiner Bereitstellung in Code Stream.
- Wenn Sie eine gemeinsam genutzte Pipeline für Rollback verwenden, müssen Sie nicht mehrere Rollback-Pipelines erstellen, die dieselbe Funktion ausführen. Sie können die gemeinsam genutzte Pipeline auswählen, um ein Rollback von Aufgaben für Pipelines in verschiedenen Projekten durchzuführen.
Informationen zum Konfigurieren einer Pipeline-Aufgabe mit Rollback unter Verwendung einer gemeinsam genutzten Pipeline finden Sie unter Erstellen und Verwenden gemeinsam genutzter Pipelines in Code Stream.
Was geschieht, wenn eine Bereitstellungs-Pipeline mehrere Aufgaben oder Phasen mit Rollback aufweist?
Elemente, denen das Rollback hinzugefügt wird | Ausführung des Rollbacks |
---|---|
Parallele Aufgaben | Wenn eine der parallelen Aufgaben fehlschlägt, wird ein Rollback für diese Aufgabe ausgeführt, nachdem alle parallelen Aufgaben abgeschlossen wurden oder fehlgeschlagen sind. Das Rollback wird nicht sofort nach dem Fehlschlagen der Aufgabe ausgeführt. |
Sowohl die Aufgabe innerhalb einer Phase als auch die Phase | Wenn eine Aufgabe fehlschlägt, wird das Rollback der Aufgabe ausgeführt. Falls die Aufgabe zu einer Gruppe paralleler Aufgaben gehört, wird das Rollback der Aufgabe ausgeführt, nachdem alle parallelen Aufgaben abgeschlossen wurden oder fehlgeschlagen sind. Wenn das Rollback der Aufgabe abgeschlossen wird oder nicht abgeschlossen werden kann, wird das Rollback der Phase ausgeführt. |
Angenommen, Sie haben eine Pipeline mit:
- Einer Produktionsphase mit Rollback.
- Einer Gruppe paralleler Aufgaben mit jeweils eigenem Rollback für jede Aufgabe.
Die Aufgabe UPD Deploy US verfügt über die Rollback-Pipeline RB_Deploy_US. Wenn UPD Deploy US fehlschlägt, folgt das Rollback dem in der Pipeline RB_Deploy_US definierten Ablauf.
Wenn UPD Deploy US fehlschlägt, wird die Pipeline RB_Deploy_US ausgeführt, nachdem UPD Deploy UK und UPD Deploy AU ebenfalls abgeschlossen worden oder fehlgeschlagen sind. Das Rollback wird nicht sofort nach dem Fehlschlagen von UPD Deploy US ausgeführt. Da die Produktionsphase ebenfalls über ein Rollback verfügt, wird nach der Ausführung der RB_Deploy_US-Pipeline die Pipeline für das Rollback der Phase ausgeführt.