Roll-outs verwalten

Ein Cloud Deploy-Roll-out umfasst Phasen. Eine Phase ist eine geordnete, logische Gruppierung von Jobs, die in einem Rollout ausgeführt werden sollen.

Jede Phase enthält Jobs, also die in der jeweiligen Phase auszuführenden Aktionen (z. B. deploy oder verify). Jeder Job kann null oder mehrere Jobausführungen haben. Ein Joblauf ist eine Instanz eines Jobs. Wenn der Job nicht ausgeführt wurde, werden auch keine Jobs ausgeführt.

In diesem Dokument werden Phasen, Jobs und Jobausführungen beschrieben und wie sie verwaltet werden.

Struktur eines Roll-outs

Ein Rollout ist eine Cloud Deploy-Ressource, die eine release mit einem target angeben.

Phasen

Ein Roll-out besteht aus einer oder mehreren Phasen.

Bei einer standardmäßigen Bereitstellungsstrategie ist nur eine Phase: stable.

Bei einer Canary-Bereitstellungsstrategie Für jeden konfigurierten Prozentsatz gibt es eine separate Phase. Wenn Sie beispielsweise konfigurieren Sie einen Canary-Test, der 25%, 50%, 100 % Phasen:

  • canary-25
  • canary-50
  • stable

Diese Phasennamen sind Standard: canary-[PERCENTAGE] für Canary-Phasen und stable für die 100-%-Phase. Wenn Sie jedoch eine manuell oder benutzerdefinierten Canary-Code ausführen, können Sie die Phasennamen steuern.

Jobs und Jobausführungen

Jede Roll-out-Phase umfasst einen oder mehrere Jobs.

Bei einem Roll-out mit einer Standardbereitstellungsstrategie, bei der keine Bereitstellungsbestätigung aktiviert ist, gibt es eine Phase (stable).

Bei einem Canary-Roll-out gibt es für jeden Teil der Canary-Version eine Phase. (z. B. canary-25, canary-50, stable) und für jede Phase gibt es einen deploy-Job. Wenn die Überprüfung aktiviert ist, gibt es für jede Phase auch einen verify-Job.

Eine Jobausführung ist eine Instanz eines Jobs. Eine Jobausführung für einen deploy-Job ist beispielsweise Wenn er erfolgreich war, wird für diesen Job kein weiterer Job ausgeführt. Wenn es schlägt er fehl, kann er als weitere Jobausführung wiederholt werden.

Phasen beim ersten Mal überspringen

Bei einigen Bereitstellungsstrategien (z. B. Canary) wird der Traffic zwischen den alte und neue Versionen. Wenn Sie ein neues Ziel einrichten, gibt es keine alte Version und wir können den Traffic nicht aufteilen.

Wenn Sie eine Canary-Version zum ersten Mal bereitstellen, wird sie daher übersprungen. Phasen und führen Sie die stable-Phase aus. Danach wird die Anwendung Bereitgestellte und zukünftige Canary-Deployments enthalten die Canary-Phasen.

In der Praxis führen Sie normalerweise ein Canary-Deployment aus, Ihre Anwendung wird bereits ausgeführt, daher wird diese Phase selten übersprungen.

Status innerhalb eines Roll-outs

Roll-outs, Phasen, Jobs und Jobausführungen haben alle Status. In diesem Abschnitt wird die für die einzelnen Bundesstaaten.

Roll-out-Status

Ein Roll-out hat einen der folgenden Status:

  • APPROVAL_REJECTED

    Für das Roll-out war eine Genehmigung erforderlich, die jedoch abgelehnt wurde.

  • CANCELLED

    Der Endstatus für Roll-outs, die von einem Nutzer abgebrochen wurden.

  • CANCELLING

    Ein Nutzer hat das Roll-out abgebrochen, aber der Abbruch ist noch nicht abgeschlossen Datenverarbeitung.

  • HALTED

    Wenn bei einer parallelen Bereitstellung ein oder mehrere untergeordnete Roll-outs schlagen fehl, aber mindestens ein untergeordnetes Roll-out ist erfolgreich, der Controller-Roll-out ist HALTED, wenn es nach der aktuellen Phase weitere Phasen gibt.

    Sie haben folgende Möglichkeiten, ein angehaltenes Controller-Roll-out fortzusetzen:

    • Controller-Roll-out abbrechen

    • Fehlgeschlagene Jobs bei untergeordneten Roll-outs wiederholen oder ignorieren

  • IN_PROGRESS

    Ein Job wird gerade ausgeführt.

  • FAILED

    Ein Job ist fehlgeschlagen und der Nutzer hat sich dafür entschieden, den Fehler nicht zu ignorieren.

  • PENDING

    Die Verarbeitung des Roll-outs hat noch nicht begonnen. Dieser Status geht in IN_PROGRESS über oder CANCELED.

  • PENDING_APPROVAL

    Für das Roll-out ist eine Genehmigung erforderlich. aber noch nicht genehmigt wurde.

  • PENDING_RELEASE

    Das Roll-out wartet darauf, dass die Version gerendert wird.

  • SUCCEEDED

    Das Roll-out wurde ohne Fehler abgeschlossen.

Phasenstatus

Eine Phase kann einen der folgenden Status haben:

  • PENDING

    Die Phase wartet auf den Abschluss einer weiteren Phase des Roll-outs.

  • IN_PROGRESS

    Die Phase hat begonnen.

  • SUCCEEDED

    Die Phase wurde erfolgreich abgeschlossen.

  • FAILED

    Ein Job in der Phase ist fehlgeschlagen und der Nutzer hat nicht die Option Fehler ignorieren ausgewählt.

  • ABORTED

    Eine vorherige Phase ist fehlgeschlagen.

  • SKIPPED

    Wenn Sie eine Bereitstellungsstrategie wie eine Canary, Cloud Deploy Wechselt zur stable-Phase, wenn noch keine ausgeführte Version vorhanden ist. der Anwendung, mit der der Traffic aufgeteilt werden soll. In diesem Fall ist der Bundesstaat auf SKIPPED festgelegt.

Jobstatus

Ein Job kann einen der folgenden Status haben:

  • ABORTED

    Wenn eine Phase fehlschlägt, werden die nachfolgenden Phasen abgebrochen.

    Wenn ein Job fehlschlägt und dieser Fehler nicht ignoriert wird, werden nachfolgende Jobs abgebrochen werden. Wenn eine Phase beispielsweise einen Bereitstellungsjob und eine Überprüfung enthält, und der Bereitstellungsjob schlägt fehl, wird der Prüfjob abgebrochen.

  • DISABLED

    Einige Jobs in einer Phase sind möglicherweise deaktiviert. Phasen umfassen beispielsweise immer Jobs überprüfen, unabhängig davon, ob die Überprüfung aktiviert. Wenn die Überprüfung nicht aktiviert ist, ist der Überprüfungsjob auf DISABLED

  • FAILED

    Ein Job, der für diesen Job ausgeführt wurde, ist fehlgeschlagen und der Nutzer hat nicht den Fehler ignoriert.

    Der Nutzer hat die Jobausführung für diesen Job beendet.

  • IGNORED

    Ein Job für diesen Job ist fehlgeschlagen und der Nutzer hat den Fehler ignoriert.

  • IN_PROGRESS

    Für diesen Job wird derzeit ein Job ausgeführt.

  • PENDING

    Die Jobausführung für diesen Job wartet auf den Beginn, da eine andere Phase oder ein anderer Job noch nicht beendet ist.

  • SKIPPED

    Wenn Sie eine Bereitstellungsstrategie wie Canary ausführen, springt Cloud Deploy zur Phase stable, wenn noch keine laufende Version der Anwendung vorhanden ist, mit der der Traffic aufgeteilt werden kann. In diesem Fall ist der Bundesstaat für Jobs innerhalb der übersprungenen Phase bzw. Phasen auf SKIPPED festgelegt.

  • SUCCEEDED

    Die Jobausführung ist erfolgreich abgeschlossen und der nächste Job in der Phase wurde gestartet oder die nächste Phase wurde gestartet oder ist bereit zum Starten (ggf. ausstehende Nutzereingaben erforderlich) oder das Roll-out ist abgeschlossen.

Status der Jobausführung

  • FAILED

    Die Jobausführung ist während der Ausführung fehlgeschlagen.

  • IN_PROGRESS

    Die Jobausführung wurde gestartet, ist aber noch nicht abgeschlossen.

  • TERMINATED

    Der Nutzer hat die Jobausführung beendet.

  • TERMINATING

    Der Nutzer hat die Jobausführung beendet, er ist aber noch nicht abgeschlossen. wird noch beendet.

  • SUCCEEDED

    Wenn eine Jobausführung erfolgreich abgeschlossen wurde, ohne dass diese fehlschlägt oder durch wird es in den Status SUCCEEDED versetzt,

Roll-out verwalten

Mit der Google Cloud Console oder dem Google Cloud SDK können Sie im Anschluss an ein Cloud Deploy-Roll-out:

Wenn Sie eine parallele Bereitstellung mit einer Canary-Bereitstellungsstrategie verwenden, Weitere Informationen finden Sie in diesem Dokument.

Roll-out fortsetzen

Bei Zielen, für die eine andere Bereitstellungsstrategie als „Standard“ konfiguriert ist, müssen Sie das Roll-out von Phase zu Phase fortsetzen.

Beispiel: Sie haben ein Ziel für eine einfache Canary-Bereitstellung konfiguriert. nur die Phasen 50% und stable (100%) haben, müssen Sie die Einführung fortsetzen, einmal, von der canary-50-Phase in die stable-Phase (100%)

gcloud

gcloud deploy rollouts advance ROLLOUT_NAME \
                               --release=RELEASE_NAME \
                               --delivery-pipeline=PIPELINE_NAME \
                               --region=REGION

Wobei:

ROLLOUT_NAME ist der Name der aktuellen Einführung, die Sie in die nächste Phase übergehen.

RELEASE_NAME ist der Name des Release, das Roll-out gehört.

PIPELINE_NAME ist der Name der Lieferpipeline, die Sie zum Verwalten der Bereitstellung dieses Release verwenden.

REGION ist der Name der Region, in der die Release erstellt wurde, z. B. us-central1. Das ist ein Pflichtfeld.

In der Google Cloud SDK-Referenz finden Sie weitere Informationen zu den gcloud deploy rollouts advance-Befehl

Console

  1. Öffnen Sie die Seite der Lieferpipelines.

  2. Klicken Sie auf Ihre Pipeline, die in der Liste der Lieferpipelines angezeigt wird.

    Die Detailseite der Lieferpipeline zeigt eine grafische Darstellung des Fortschritts der Lieferpipeline.

  3. Klicken Sie auf dem Tab Rollouts unter Details zur Bereitstellungspipeline auf den Namen des Roll-outs.

    Die Seite mit den Roll-out-Details für dieses Roll-out wird angezeigt.

    Details zur Einführung in der Google Cloud Console

    Beachten Sie, dass das Roll-out in diesem Beispiel eine canary-50-Phase und einen stable. Ihr Roll-out kann mehr Phasen oder andere Phasen umfassen Phasen.

  4. Klicken Sie auf Einführung fortsetzen.

    Das Roll-out wird in die nächste Phase fortgesetzt.

Rollout abbrechen

Sie können alle noch nicht abgeschlossenen Roll-outs abbrechen. Sie können auch eine fehlgeschlagene um weitere Aktionen zu verhindern (z. B. Ignorieren oder Wiederholen). Das Roll-out muss sich in einem der folgenden Status befinden:

  • FAILED
  • HALTED
  • IN_PROGRESS
  • PENDING
  • PENDING_APPROVAL
  • PENDING_RELEASE

Nachdem Sie eine Einführung abgebrochen haben, befindet sie sich im Status CANCELLING, bis alle ausstehenden Jobausführungen abgeschlossen sind. Sie können den Vorgang beenden ausstehende Jobausführungen, auf die Sie nicht warten möchten. Sobald die Einführung abgeschlossen ist, CANCELLED, kann sie nicht mehr erweitert oder geändert werden.

So brechen Sie ein Roll-out ab:

gcloud

gcloud deploy rollouts cancel ROLLOUT_NAME \
                               --release=RELEASE_NAME \
                               --delivery-pipeline=PIPELINE_NAME \
                               --region=REGION

Wobei:

ROLLOUT_NAME ist der Name der aktuellen Einführung, die Sie in die nächste Phase übergehen.

RELEASE_NAME ist der Name des Release, das Roll-out gehört.

PIPELINE_NAME ist der Name der Lieferpipeline, die Sie zum Verwalten der Bereitstellung dieses Release verwenden.

REGION ist der Name der Region, in der die Release erstellt wurde, z. B. us-central1. Das ist ein Pflichtfeld.

Weitere Informationen zum Befehl gcloud deploy rollouts cancel finden Sie in der Google Cloud SDK-Referenz.

Console

  1. Öffnen Sie die Seite der Lieferpipelines.

  2. Klicken Sie auf Ihre Pipeline, die in der Liste der Lieferpipelines angezeigt wird.

    Die Detailseite der Lieferpipeline zeigt eine grafische Darstellung des Fortschritts der Lieferpipeline.

  3. Klicken Sie auf dem Tab Rollouts unter Details zur Bereitstellungspipeline auf den Namen des Roll-outs.

    Die Seite mit den Roll-out-Details für dieses Roll-out wird angezeigt.

    Details zur Einführung in der Google Cloud Console

    Beachten Sie, dass das Roll-out in diesem Beispiel eine canary-50-Phase und einen stable. Ihr Roll-out kann mehr Phasen oder andere Phasen umfassen Phasen.

  4. Klicken Sie auf Rollout abbrechen.

    Das Roll-out wurde abgebrochen.

Jobausführung beenden

Sie können eine Jobausführung beenden, die gerade ausgeführt wird. Vielleicht möchten Sie dies tun, wenn eine Jobausführung zu lange dauert oder nicht zu erwarten war. Die Jobausführung muss IN_PROGRESS sein, damit Sie ihn beenden können.

gcloud

gcloud deploy job-runs terminate JOB_RUN_ID \
                               --release=RELEASE_NAME \
                               --delivery-pipeline=PIPELINE_NAME \
                               --rollout=ROLLOUT_NAME \
                               --region=REGION

Wobei:

JOB_RUN_ID ist die UUID (UUID) des Jobs, den Sie ausführen möchten zu beenden. Die Jobausführungs-ID finden Sie in der Google Cloud Console für Cloud Deploy auf der Roll-out-Seite:

ID der Jobausführung in den Roll-out-Details der Google Cloud Console

Sie können die ID der Jobausführung auch mit dem Befehl gcloud deploy rollouts describe abrufen.

RELEASE_NAME ist der Name des Release, zu der die Jobausführung gehört.

PIPELINE_NAME ist der Name der Lieferpipeline, die Sie zum Verwalten der Bereitstellung dieses Release verwenden.

ROLLOUT_NAME ist der Name des Roll-outs für diesen Job ausgeführt wird.

REGION ist der Name der Region, in der die Release erstellt wurde, z. B. us-central1. Das ist ein Pflichtfeld.

In der Google Cloud SDK-Referenz finden Sie weitere Informationen zu den gcloud deploy job-runs terminate-Befehl

Console

  1. Öffnen Sie die Seite der Lieferpipelines.

  2. Klicken Sie auf Ihre Pipeline, die in der Liste der Lieferpipelines angezeigt wird.

    Die Detailseite der Bereitstellungspipeline zeigt eine grafische Darstellung der den Fortschritt Ihrer Bereitstellungspipeline anzuzeigen.

  3. Klicken Sie auf dem Tab Rollouts unter Details zur Bereitstellungspipeline auf den Namen des Roll-outs.

    Die Seite mit den Roll-out-Details für dieses Roll-out wird angezeigt.

    Roll-out-Details in der Google Cloud Console

    Beachten Sie, dass das Roll-out in diesem Beispiel eine canary-50-Phase und einen stable. Ihr Roll-out kann mehr Phasen oder andere Phasen umfassen Phasen.

  4. Klicken Sie unter Phasen auf die Phase mit dem Job, dessen Job ausgeführt wird. Sie kündigen.

  5. Wählen Sie unter Jobausführungen die spezifische Jobausführung aus, die Sie beenden möchten, und Klicken Sie auf Beenden.

    Die Jobausführung und der Jobstatus, wie in den Phasen dargestellt, werden beendet. ist Failure.

Nachdem Sie eine Jobausführung beendet haben, gilt der Job als fehlgeschlagen und Sie können zu verwenden:

  • Bleibt das und ignoriere das fehlgeschlagene Roll-out
  • Job wiederholen
  • Den Job ignorieren und mit dem nächsten Job oder der nächsten Phase fortfahren Einführung

Job ignorieren

Sie können einen fehlgeschlagenen Job ignorieren und sofort mit dem nächsten Job in der Phase fortfahren. Dieser Job kann aus irgendeinem Grund fehlgeschlagen sein, z. B. für Sie oder eine andere Person eine Jobausführung für diesen Job terminiert wurde.

Ein fehlgeschlagener Job bedeutet eine fehlgeschlagene Phase und einen fehlgeschlagenen Roll-out. Wenn Sie den Fehler jedoch ignorieren, können sowohl die Phase als auch das Roll-out fortgesetzt werden und letztendlich den Status SUCCEEDED haben.

gcloud

gcloud deploy rollouts ignore-job ROLLOUT_NAME \
                               --release=RELEASE_NAME \
                               --delivery-pipeline=PIPELINE_NAME \
                               --job-id=JOB_ID \
                               --phase-id=PHASE_ID \
                               --region=REGION

Wobei:

ROLLOUT_NAME ist der Name des Roll-outs für diesen Job ausgeführt wird.

RELEASE_NAME ist der Name des aktuellen Release das diesen Job beinhaltet.

PIPELINE_NAME ist der Name der Lieferpipeline, die Sie zum Verwalten der Bereitstellung dieses Release verwenden.

JOB_ID ist der Name des Jobs, der ignoriert werden soll, z. B. Beispiel DEPLOY. Den Jobnamen finden Sie in der Tabelle Phasen der in der Google Cloud Console:

Die Phasentabelle in der Google Cloud Console mit einer fehlgeschlagenen Jobausführung

PHASE_ID ist der Name der Phase, die den Job enthält, den Sie ignorieren.

REGION ist der Name der Region, in der die Version erstellt wurde, z. B. us-central1.

In der Google Cloud SDK-Referenz finden Sie weitere Informationen zu den gcloud deploy rollouts ignore-job-Befehl

Console

  1. Öffnen Sie die Seite der Lieferpipelines.

  2. Klicken Sie auf Ihre Pipeline, die in der Liste der Lieferpipelines angezeigt wird.

    Die Detailseite der Bereitstellungspipeline zeigt eine grafische Darstellung der den Fortschritt Ihrer Bereitstellungspipeline anzuzeigen.

  3. Klicken Sie auf dem Tab Rollouts unter Details zur Bereitstellungspipeline auf den Namen des Roll-outs.

    Die Seite mit den Roll-out-Details für dieses Roll-out wird angezeigt.

  4. Wählen Sie den fehlgeschlagenen Job aus, den Sie ignorieren möchten.

  5. Klicken Sie auf die Schaltfläche Fehler ignorieren.

    Die fehlgeschlagene Jobausführung wird ignoriert und das Roll-out wird so fortgesetzt, als ob der Job erfolgreich war. Das heißt, wenn es andere Jobs in derselben Phase gibt, werden diese ausgeführt. Andernfalls kann mit der nächsten Phase des Roll-outs fortgefahren werden.

Fehlgeschlagener Job, der ignoriert werden kann, in der Google Cloud Console

Fehlgeschlagenen Job wiederholen

Sie können eine fehlgeschlagene Jobausführung wiederholen. Der Job kann aus folgenden Gründen fehlschlagen: Gründe:

  • Eine Jobausführung konnte nicht abgeschlossen werden.

    Es könnte beispielsweise ein Berechtigungsfehler aufgetreten sein.

  • Ein Nutzer hat eine Jobausführung aus diesem Job beendet.

    Wenn Sie eine Jobausführung beenden, wird der Job als fehlgeschlagen angezeigt. Sie können ihn dann wiederholen.

  • Ein Bestätigungstest ist fehlgeschlagen.

    Für einen Bestätigungsjob: einen Bestätigungstest fehlgeschlagen. Auch wenn der Verifizierungsjob korrekt abgeschlossen wurde, gescheitert. Wir geben dies an den Verifizierungsjob zurück. In diesem Fall würden Sie den Job im Rahmen der Fehlerbehebung für den fehlgeschlagenen Test wiederholen gegen Ihre Anwendung.

So wiederholen Sie einen fehlgeschlagenen Job:

gcloud

gcloud deploy rollouts retry-job JOB_NAME \
                       --release=RELEASE_NAME \
                       --delivery-pipeline=PIPELINE_NAME \
                       --rollout=ROLLOUT_NAME \
                       --phase=PHASE_ID \
                       --region=REGION

Wobei:

JOB_NAME ist der Name des Jobs, an dem Sie gerade arbeiten. wird wiederholt. Wenn Sie den Prüfjob z. B. nach einem fehlgeschlagenen bestätigen, wäre dies verify.

RELEASE_NAME ist der Name des Release, zu dem dieser Jobauftrag gehört.

PIPELINE_NAME ist der Name der Lieferpipeline, die Sie zum Verwalten der Bereitstellung dieses Release verwenden.

ROLLOUT_NAME ist der Name des Roll-outs für diesen Job ausgeführt wird.

PHASE_ID ist der Name der Phase, die dieser Job ist Teil davon ist. Beispiel: canary-50 oder stable.

REGION ist der Name der Region, in der die Release erstellt wurde, z. B. us-central1. Das ist ein Pflichtfeld.

In der Google Cloud SDK-Referenz finden Sie weitere Informationen zu den gcloud deploy rollouts retry-job-Befehl

Console

  1. Öffnen Sie die Seite der Lieferpipelines.

  2. Klicken Sie auf Ihre Pipeline, die in der Liste der Lieferpipelines angezeigt wird.

    Die Detailseite der Bereitstellungspipeline zeigt eine grafische Darstellung der den Fortschritt Ihrer Bereitstellungspipeline anzuzeigen.

  3. Klicken Sie auf dem Tab Rollouts unter Details zur Bereitstellungspipeline auf das Symbol Name des Roll-outs.

    Die Seite mit den Roll-out-Details für dieses Roll-out wird angezeigt.

  4. Klicken Sie unter Phases und Jobs auf die Phase mit dem Job, den Sie gerade ausführen. wird wiederholt.

  5. Wählen Sie den Job aus, den Sie noch einmal versuchen möchten.

  6. Klicken Sie auf Wiederholen und bestätigen Sie die Auswahl.

    Details zur Einführung in der Google Cloud Console

    Der Job wird noch einmal ausgeführt und erhält den Jobstatus, wie in den Phases "In Bearbeitung" ist. Wenn es weitere Jobs in derselben Phase gibt, werden diese ausgeführt. Andernfalls kann mit der nächsten Phase des Roll-outs fortgefahren werden.

Nächste Schritte