Dieses Dokument bietet einen Überblick über die Automatisierung der Bereitstellung.
Sie können Cloud Deploy so konfigurieren, dass Release- und Roll-out-Aufgaben für eine bestimmte Bereitstellungspipeline automatisch ausgeführt werden. Zu diesen Aufgaben gehören das Werben einer Veröffentlichung und das Aufsteigen der Phasen.
Weitere Informationen zu den Ressourcen, die für die Releaseautomatisierung in Cloud Deploy verwendet werden.
Weitere Informationen zum Einrichten der Regeln, die die Funktionsweise dieser Automatisierungen definieren, finden Sie hier.
Aktionen, die automatisiert werden können
In Cloud Deploy können Sie die folgenden Release- und Roll-out-Aktivitäten automatisieren:
Release hochstufen
Sie können Cloud Deploy so konfigurieren, dass Ihr Release bei einem erfolgreichen Roll-out auf einem Ziel automatisch hochgestuft wird. Wenn Sie beispielsweise die drei Ziele
dev
,staging
undprod
haben, können Sie eine Automatisierung so konfigurieren, dass der Release bei einer erfolgreichen Bereitstellung instaging
ohne weitere menschliche Interaktion aufprod
hochgestuft wird.Roll-out fortsetzen
Sie können Cloud Deploy so konfigurieren, dass ein Rollout nach einem erfolgreichen Rollout zum vorherigen Ziel von einer Phase zur nächsten übergeht. Das Fortsetzen der Phase ist nur für Ziele verfügbar, die eine Canary-Bereitstellungsstrategie verwenden.
Wie funktioniert die Automatisierung?
Jede Automatisierung ist an die Bereitstellungspipeline gebunden, für die sie verwendet wird. Eine Automatisierung kann nicht für mehrere Bereitstellungspipelines verwendet werden.
Im Folgenden wird der allgemeine Prozess zum Konfigurieren und Ausführen einer Automatisierung beschrieben:
Sie konfigurieren eine Automatisierung
Diese Automatisierung ist mit einer Bereitstellungspipeline verbunden.
Sie registrieren diese Automatisierung mit
gcloud deploy apply
.Dadurch wird die Automatisierungsressource erstellt.
Zum Aufrufen der Bereitstellungspipeline für diese Automatisierung erstellen Sie einen Release.
Das Roll-out ist für mindestens ein Ziel erfolgreich.
In dem Ziel, für das diese Automatisierung konfiguriert ist...
Wenn die Automatisierung
promoteReleaseRule
ist:Die Ausführung wartet, bis das Roll-out im Quellziel erfolgreich ist. Das Quellziel ist die
selector.targets
, die für die Automatisierung konfiguriert wurde, nicht in derAutomationRule
.Wenn eine Zeit für
wait
konfiguriert ist, wird diese Zeit ebenfalls ausgeführt.Der Release wird automatisch zum nächsten Ziel im Pipelinefortschritt oder falls angegeben zu einem bestimmten Ziel hochgestuft.
Wenn die Automatisierung
advanceRolloutRule
lautet und das Ziel eine Canary-Bereitstellungsstrategie verwendet:Bei der Ausführung wird auf die erkannte Quellphase gewartet, falls diese vorhanden ist.
Das Attribut
sourcePhase
ist optional. Wenn keine Quellphasen angegeben sind, wird jede Phase im Roll-out automatisch fortgesetzt. Der automatische Phasenwechsel erfolgt, wenn die QuellphaseIN_PROGRESS
ist, wobei die Zeitwait
gilt.Wenn eine Zeit für
wait
konfiguriert ist, wird diese Zeit ebenfalls ausgeführt.Beim Automatisieren einer Canary-Bereitstellung geben Sie über diese Wartezeit die Dauer jeder Canary-Phase an.
Das Rollout geht automatisch von dieser Quellphase in die nächste Phase des Rollouts über.
Wenn es eine zusätzliche Quellphase gibt, wird sie gleich behandelt, gegebenenfalls einschließlich derselben Wartezeit.
Automatisierungsressourcen
Es gibt zwei Cloud Deploy-Ressourcen, die speziell für die Automatisierung vorgesehen sind:
Automatisierung
Eine
Automation
ist eine untergeordnete Ressource einer Bereitstellungspipeline und enthält die folgenden Informationen:- Ein Verweis auf das Ziel oder die Ziele, für die die Automatisierung verwendet wird
- Eine oder mehrere Regeln, die die Funktionsweise der Automatisierung steuern
Die Konfiguration der Automatisierungsressource wird im Dokument Informationen zur Automatisierungsressource beschrieben.
Wenn Sie
gcloud deploy apply
für eine Datei ausführen, die eine Automatisierungskonfiguration (kind: Automation
) enthält, 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, Informationen über das Roll-out, das sie ausgelöst hat, 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 für Ihre Bereitstellungspipeline ausgeführt werden kann, sowie Details dazu, wie die Automatisierung durchgeführt werden soll.
Weitere Informationen zu Automatisierungsregeln
Erforderliche Rollen und Berechtigungen für Identity and Access Management
Zusätzlich zu den Berechtigungen, die Sie zum Ausführen einer Cloud Deploy-Bereitstellungspipeline und zum Automatisieren von Aufgaben (z. B. das Fortsetzen eines Roll-outs) benötigen, gibt es mehrere Berechtigungen, die zum Ausführen bestimmter Vorgänge für die Ressourcen Automation
und AutomationRun
erforderlich sind:
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 benötigt jede Automatisierungsregel möglicherweise weitere Berechtigungen zum Ausführen des automatisierten Vorgangs. Informationen zu den spezifischen Berechtigungen, die pro Automatisierungsregel erforderlich sind, finden Sie unter Automatisierungsregeln konfigurieren.
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 unter Verwendung der verfügbaren Automatisierungsregeln erstellen. Dazu konfigurieren Sie eine Automatisierung und erstellen dann mit gcloud deploy apply
die Automatisierungsressource.
Weitere Informationen finden Sie im folgenden Abschnitt (Automatisierung konfigurieren) und Automatisierungsregeln konfigurieren.
Automatisierung konfigurieren
Weitere Informationen zum Konfigurieren der Ressource Automation
finden Sie unter Schema für Konfigurationsdatei.
Konfiguration der Automatisierungsregel
Zusätzlich zu dieser Automatisierungskonfiguration legen Sie Automatisierungsregeln fest. Die Konfiguration unterscheidet sich für jede der verfügbaren Regeln.
Beschreibungen der einzelnen verfügbaren Regeln finden Sie unter Automatisierungsregeln verwenden.
Automatisierung anhalten
Sie können eine vorhandene Ressource sperren, ohne sie zu löschen. Dies kann nützlich sein, um eine Automatisierung zu testen, ohne die Bereitstellungspipeline zu beeinträchtigen. Wenn Sie eine Automatisierung anhalten, wird die Automatisierung nicht ausgeführt, aber es werden weiterhin Plattformlogs generiert.
Aktualisieren Sie in der
Automation
-Konfiguration das Attributsuspended
auftrue
.Führen Sie
gcloud deploy apply
für diese Konfigurationsdatei aus.Plattformlogs werden auch dann generiert, wenn die Automatisierung instanziiert wird. Damit können Sie die Automatisierung testen und Fehler beheben, ohne die Bereitstellungspipeline zu beeinträchtigen.
Nächste Schritte
Kurzanleitung: Release-Erstellung und Einführung von Roll-outs automatisieren
Weitere Informationen zu Cloud Deploy-Automatisierungsregeln
Weitere Informationen zu Automatisierungsressourcen von Cloud Deploy
Weitere Informationen zu den Konfigurationsdateien für die Automatisierung finden Sie in der Dokumentation zum Konfigurationsdateischema.