Dieses Dokument bietet einen Überblick über die Bereitstellungsautomatisierung.
Sie können Cloud Deploy so konfigurieren, dass release- und rolloutbezogene Aufgaben für eine bestimmte Bereitstellungspipeline automatisch ausgeführt werden. Dazu gehören die Veröffentlichung und die Phasenvorbereitung.
Automatisierbare Aktionen
In Cloud Deploy können Sie die folgenden Release- und Bereitstellungsaktivitäten automatisieren:
Veröffentlichungen automatisch veröffentlichen
Sie können Cloud Deploy so konfigurieren, dass Ihr Release nach einem erfolgreichen Roll-out auf ein Ziel automatisch freigegeben wird. Wenn Sie beispielsweise drei Ziele haben,
dev
,staging
undprod
, können Sie eine Automatisierung so konfigurieren, dass die Version nach einer erfolgreichen Bereitstellung instaging
ohne weitere Interaktion von Menschen aufprod
hochgestuft wird. Sie können auch eine Verzögerungszeit angeben.Releases nach einem Zeitplan veröffentlichen
Sie können Cloud Deploy so konfigurieren, dass Ihre Version gemäß einem Cron-Zeitplan freigegeben wird.
-
Sie können Cloud Deploy so konfigurieren, dass ein Roll-out nach einem erfolgreichen Roll-out auf das vorherige Ziel von einer Phase in die nächste übergeht. Die Phasenüberprüfung ist nur für Ziele verfügbar, für die eine Canary-Bereitstellungsstrategie verwendet wird.
-
Sie können Cloud Deploy so konfigurieren, dass ein fehlgeschlagenes Roll-out automatisch wiederholt wird. Dazu gehört auch, das Roll-out eine bestimmte Anzahl von Malen zu wiederholen und automatisch rückgängig zu machen, wenn diese Anzahl von Wiederholungen fehlschlägt.
Weitere Informationen zu diesen Aktionen und ihrer Konfiguration finden Sie unter Automatisierungsregeln.
Wie funktioniert die Automatisierung?
Jede Automatisierung ist mit der Bereitstellungspipeline verknüpft, für die sie verwendet wird. Sie können eine Automatisierung nicht für mehrere Auslieferungspipelines freigeben.
Im Folgenden finden Sie eine allgemeine Anleitung zum Konfigurieren und Ausführen einer Automatisierung:
Sie konfigurieren eine Automatisierung.
Diese Automatisierung ist mit einer Bereitstellungspipeline verknüpft.
Sie registrieren diese Automatisierung mit
gcloud deploy apply
.Dadurch wird die Automatisierungsressource erstellt.
Sie können die mit dieser Automatisierung verknüpfte Bereitstellungspipeline aufrufen, indem Sie einen Release erstellen.
Das Roll-out ist für mindestens ein Ziel erfolgreich oder fehlschlägt.
Wenn das Roll-out erfolgreich war und die Automatisierung
promoteReleaseRule
ist:Bei der Ausführung wird gewartet, bis das Roll-out auf das Quellziel abgeschlossen ist. Das Quellziel ist die für die Automatisierung konfigurierte
selector.targets
, nicht dieAutomationRule
.Wenn eine
wait
-Zeit konfiguriert ist, wartet die Ausführung auch auf diese Zeit.Der Release wird automatisch auf das nächste Ziel in der Pipeline hochgestuft oder, falls angegeben, auf ein bestimmtes Ziel.
Wenn das Roll-out erfolgreich ist, die Automatisierung
advanceRolloutRule
ist und für das Ziel eine Canary-Bereitstellungsstrategie verwendet wird:Die Ausführung wartet auf die angegebene Quellphase, falls vorhanden.
Das Attribut
sourcePhase
ist optional. Wenn keine Quellphasen angegeben werden, wird jede Phase des Roll-outs automatisch fortgesetzt. Die automatische Phasenüberprüfung erfolgt, wenn die QuellphaseIN_PROGRESS
ist, vorbehaltlich einer Zeitspanne vonwait
.Wenn eine
wait
-Zeit konfiguriert ist, wartet die Ausführung auch auf diese Zeit.Wenn Sie eine Canary-Bereitstellung automatisieren, verwenden Sie diese Wartezeit, um die Dauer jeder Canary-Phase anzugeben.
Das Roll-out wird automatisch von dieser Quellphase in die nächste Phase des Roll-outs fortgesetzt.
Wenn es eine zusätzliche Quellphase gibt, wird sie genauso behandelt, einschließlich der Wartezeit, sofern zutreffend.
Wenn das Roll-out fehlschlägt und es eine Automatisierung mit einer
repairRollout
-Regel gibt:Nach der konfigurierten
wait
-Zeit wird der Roll-out wiederholt, falls zutreffend.Wenn in dieser
repairRollout
-Regel bestimmte Phasen oder Jobs konfiguriert sind, werden nur diese Phasen oder Jobs noch einmal ausgeführt. Wenn keine Jobs oder Phasen angegeben sind, werden standardmäßig alle Phasen und Jobs im Roll-out wiederholt.Da Wiederholungen optional sind, wird dieser Schritt nicht ausgeführt, wenn Ihre Automatisierung nicht für Wiederholungen konfiguriert ist.
Wenn der erste Wiederholungsversuch fehlschlägt, wartet die Ausführung die konfigurierte Zeit
wait
ab und versucht es dann noch einmal.Die Wiederholungen werden so lange wiederholt, bis Cloud Deploy die maximale Anzahl von Wiederholungen
attempts
erreicht hat.Wenn alle Versuche fehlschlagen und die
attempts
aufgebraucht sind, schlägt das Roll-out fehl.Während der Wiederholungsversuche ist der Status des Roll-outs
IN_PROGRESS
, bis das Roll-out nach dem letzten Wiederholungsversuch erfolgreich oder fehlgeschlagen ist. Der Phasenstatus ist bei WiederholungenIN_PROGRESS
, nach jedem Roll-out-Fehler jedochFAILED
.Wenn alle Wiederholungen fehlschlagen (oder keine konfiguriert sind), wird ein neues Roll-out erstellt, um ein Rollback auf das letzte erfolgreiche Release auf dem Ziel auszuführen.
Ressourcen für die Automatisierung
Es gibt zwei Cloud Deploy-Ressourcen, die speziell für die Automatisierung gedacht sind:
Automatisierung
Eine
Automation
ist eine untergeordnete Ressource einer Lieferpipeline und enthält die folgenden Informationen:- Ein Verweis auf das oder die Ziele, für die die Automatisierung verwendet wird
- Die Regel oder Regeln, die festlegen, was die Automatisierung tut und wie sie es tut
Die Konfiguration der Automatisierungsressource wird im Dokument Automatisierungsressource beschrieben.
Wenn Sie
gcloud deploy apply
auf eine Datei mit einer Automatisierungskonfiguration (kind: Automation
) anwenden, erstellt Cloud Deploy eine Automatisierungsressource, die eine Bereitstellungspipeline und ein oder mehrere Ziele mit einer oder mehreren Automatisierungsregeln verknüpft.Automatisierungsausführung
AutomationRun
ist eine Instanz einer Automatisierung. Es ist ein Verweis auf die entsprechende Automatisierungsressource sowie Informationen zum Roll-out, durch das es erstellt wurde, und andere Metadaten.Die Automatisierungsausführung wird erstellt, wenn eine Automatisierung ausgelöst wird.
Weitere Informationen zu Automatisierungsressourcen
Automatisierungsregeln
Eine Automatisierungsregel definiert eine Aktion, die automatisch in Ihrer Bereitstellungspipeline ausgeführt werden kann, sowie Details dazu, wie die Automatisierung durchgeführt werden soll.
Weitere Informationen zu Automatisierungsregeln
Erforderliche Identitäts- und Zugriffsverwaltungsrollen und ‑Berechtigungen
Zusätzlich zu den Berechtigungen, die Sie zum Ausführen einer Cloud Deploy-Auslieferungspipeline und zum Ausführen der zu automatisierenden Aufgaben benötigen (z. B. zum Fortsetzen eines Roll-outs), sind mehrere Berechtigungen erforderlich, um bestimmte Vorgänge auf den Automation
- und AutomationRun
-Ressourcen auszuführen:
clouddeploy.automations.create
clouddeploy.automations.delete
clouddeploy.automations.get
clouddeploy.automations.list
clouddeploy.automations.update
clouddeploy.automationRuns.cancel
clouddeploy.automationRuns.get
clouddeploy.automationRuns.list
Zusätzlich zu diesen Berechtigungen sind für jede Automatisierungsregel möglicherweise weitere Berechtigungen erforderlich, um den automatisierten Vorgang auszuführen. Unter Automatisierungsregeln konfigurieren finden Sie Informationen zu den Berechtigungen, die für jede Automatisierungsregel erforderlich sind.
Weitere Informationen, einschließlich der Cloud Deploy-Rollen, die diese Berechtigungen enthalten, finden Sie unter IAM-Rollen und -Berechtigungen.
Automatisierung erstellen
Sie können eine Automatisierung erstellen, einschließlich der Verwendung einer der verfügbaren Automatisierungsregeln. Konfigurieren Sie dazu eine Automatisierung und erstellen Sie dann die Automatisierungsressource mit gcloud deploy apply
.
Weitere Informationen finden Sie im folgenden Abschnitt „Automatisierung konfigurieren“ und unter Automatisierungsregeln konfigurieren.
Automatisierung konfigurieren
Weitere Informationen zum Konfigurieren der Automation
-Ressource finden Sie im Schema der Konfigurationsdatei.
Konfiguration der Automatisierungsregel
Zusätzlich zu dieser Automatisierungskonfiguration geben Sie Automatisierungsregeln an. Die Konfiguration unterscheidet sich je nach Regel.
Eine Beschreibung der einzelnen Regeln finden Sie unter Automatisierungsregeln verwenden.
Automatisierung pausieren
Sie können eine vorhandene Ressource pausieren, ohne sie zu löschen. Das kann nützlich sein, um eine Automatisierung zu testen, ohne die Bereitstellungspipeline zu beeinträchtigen. Wenn Sie eine Automatisierung pausieren, wird sie nicht ausgeführt, aber Plattformprotokolle werden weiterhin generiert.
Aktualisieren Sie in der
Automation
-Konfiguration das Attributsuspended
auftrue
.Führen Sie
gcloud deploy apply
mit dieser Konfigurationsdatei aus.Plattformprotokolle werden auch dann generiert, wenn die Automatisierung angehalten ist. So können Sie die Automatisierung testen und beheben, ohne die Bereitstellungspipeline zu beeinträchtigen.
Nächste Schritte
Kurzanleitung: Erstellung von Releases und Fortsetzen von Roll-outs automatisieren
Weitere Informationen zu Cloud Deploy-Automatisierungsregeln
Weitere Informationen zu Cloud Deploy-Automatisierungsressourcen
Weitere Informationen zu den Konfigurationsdateien für die Automatisierung finden Sie in der Dokumentation zum Schema der Konfigurationsdatei.