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 oderCANCELED
.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 aufSKIPPED
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 aufSKIPPED
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
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.
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.
Beachten Sie, dass das Roll-out in diesem Beispiel eine
canary-50
-Phase und einenstable
. Ihr Roll-out kann mehr Phasen oder andere Phasen umfassen Phasen.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
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.
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.
Beachten Sie, dass das Roll-out in diesem Beispiel eine
canary-50
-Phase und einenstable
. Ihr Roll-out kann mehr Phasen oder andere Phasen umfassen Phasen.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:
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
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.
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.
Beachten Sie, dass das Roll-out in diesem Beispiel eine
canary-50
-Phase und einenstable
. Ihr Roll-out kann mehr Phasen oder andere Phasen umfassen Phasen.Klicken Sie unter Phasen auf die Phase mit dem Job, dessen Job ausgeführt wird. Sie kündigen.
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:
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
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.
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.
Wählen Sie den fehlgeschlagenen Job aus, den Sie ignorieren möchten.
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.
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
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.
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.
Klicken Sie unter Phases und Jobs auf die Phase mit dem Job, den Sie gerade ausführen. wird wiederholt.
Wählen Sie den Job aus, den Sie noch einmal versuchen möchten.
Klicken Sie auf Wiederholen und bestätigen Sie die Auswahl.
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
Weitere Informationen zur Funktionsweise von Bereitstellungsstrategien in Cloud Deploy
Weitere Informationen dazu, wie sich Roll-outs, Phasen, Jobs und Jobausführungen in den Rest von Cloud Deploy einfügen, finden Sie in der Dokumentation zur Cloud Deploy-Dienstarchitektur.