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. Zu diesen Aufgaben gehören die Release-Promotion und die Phasenerweiterung.
Weitere Informationen zu den Ressourcen, die für die Release-Automatisierung in Cloud Deploy verwendet werden.
Weitere Informationen zum Einrichten der Regeln, die die Funktionsweise dieser Automatisierungen definieren
Mögliche Aktionen für die Automatisierung
In Cloud Deploy können Sie die folgenden Release- und Rollout-Aktivitäten automatisieren:
-
Sie können Cloud Deploy so konfigurieren, dass Ihr Release nach einem erfolgreichen Roll-out für ein Ziel automatisch hochgestuft wird. Wenn Sie beispielsweise drei Ziele haben,
dev,stagingundprod, können Sie eine Automatisierung so konfigurieren, dass die Version nach einer erfolgreichen Bereitstellung instagingohne weitere manuelle Interaktion aufprodhochgestuft wird. Sie können auch eine Verzögerungszeit angeben. Release nach Zeitplan hochstufen
Sie können Cloud Deploy so konfigurieren, dass die Veröffentlichung gemäß einem Cron-Zeitplan hochgestuft wird.
-
Sie können Cloud Deploy so konfigurieren, dass ein Rollout nach einem erfolgreichen Rollout für das vorherige Ziel von einer Phase zur nächsten übergeht. Die Phasenentwicklung ist nur für Ziele verfügbar, für die eine Canary-Bereitstellungsstrategie verwendet wird.
-
Sie können Cloud Deploy so konfigurieren, dass ein fehlgeschlagener Rollout automatisch wiederholt wird. Dazu gehört, die Einführung eine bestimmte Anzahl von Malen zu wiederholen und automatisch zurückzusetzen, 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 an die Bereitstellungspipeline gebunden, für die sie verwendet wird. Sie können eine Automatisierung nicht für mehrere Lieferpipelines freigeben.
So konfigurieren und führen Sie eine Automatisierung aus:
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 rufen die mit dieser Automatisierung verknüpfte Bereitstellungspipeline auf, indem Sie einen Release erstellen.
Der Roll-out ist für mindestens ein Ziel erfolgreich oder schlägt fehl.
Wenn der Rollout erfolgreich ist und die Automatisierung
promoteReleaseRuleist:Die Ausführung wartet darauf, dass der Rollout im Quellziel erfolgreich ist. Das Quellziel ist das für die Automatisierung konfigurierte
selector.targets, nicht dasAutomationRule.Wenn eine
wait-Zeit konfiguriert ist, wird auch bis zu diesem Zeitpunkt gewartet.Der Release wird automatisch zum nächsten Ziel in der Pipeline-Abfolge oder zu einem bestimmten Ziel hochgestuft, falls angegeben.
Wenn die Einführung erfolgreich ist, die Automatisierung
advanceRolloutRuleist und für das Ziel eine Canary-Bereitstellungsstrategie verwendet wird:Die Ausführung wartet auf die identifizierte Quellphase, sofern vorhanden.
Das Attribut
sourcePhaseist optional. Wenn keine Quellphasen angegeben sind, wird jede Phase des Roll-outs automatisch fortgesetzt. Die automatische Phasenverschiebung erfolgt, wenn die QuellphaseIN_PROGRESSist, vorbehaltlich derwait-Zeit.Wenn eine
wait-Zeit konfiguriert ist, wird auch bis zu diesem Zeitpunkt gewartet.Wenn Sie eine Canary-Bereitstellung automatisieren, verwenden Sie diese Wartezeit, um die Dauer der einzelnen Canary-Phasen 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 gleichen Wartezeit, falls zutreffend.
Wenn der Roll-out fehlschlägt und es eine Automatisierung mit einer
repairRollout-Regel gibt:Das Roll-out wird nach der konfigurierten
wait-Zeit (falls vorhanden) noch einmal versucht.Wenn in dieser
repairRollout-Regel bestimmte Phasen oder Jobs konfiguriert sind, werden nur diese Phasen oder Jobs noch einmal versucht. 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, wird die Ausführung für die konfigurierte Zeit
waitunterbrochen und dann wird es noch einmal versucht.Wiederholungen werden so lange ausgeführt, bis Cloud Deploy die
attemptsfür Wiederholungen erschöpft hat.Wenn jeder Versuch fehlschlägt und die
attemptserschöpft sind, schlägt die Einführung fehl.Während der Wiederholungsversuche ist der Status des Rollouts
IN_PROGRESS, bis der Rollout nach dem letzten Wiederholungsversuch erfolgreich ist oder fehlschlägt. Der Phasenstatus ist bei WiederholungenIN_PROGRESS, aber nach jedem Rollout-FehlerFAILED.Wenn alle Wiederholungsversuche fehlschlagen (oder keine konfiguriert sind), wird ein neuer Roll-out erstellt, um ein Rollback auf den letzten erfolgreichen Release für das Ziel durchzuführen.
Automatisierungsressourcen
Es gibt zwei Cloud Deploy-Ressourcen, die speziell für die Automatisierung vorgesehen sind:
Automatisierung
Ein
Automationist eine untergeordnete Ressource einer Lieferpipeline und enthält die folgenden Informationen:- Ein Verweis auf das Ziel oder die Ziele, für die die Automatisierung verwendet wird
- Die Regel(n), die festlegen, was die Automatisierung tut und wie sie es tut
Die Konfiguration für die Automatisierungsressource wird im Dokument Automatisierungsressource beschrieben.
Wenn Sie
gcloud deploy applyfü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
AutomationRunist eine Instanz einer Automatisierung. Es ist ein Verweis auf die entsprechende Automatisierungsressource sowie Informationen zum Roll-out, aus dem sie hervorgegangen ist, 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 zur Ausführung der Automatisierung.
Weitere Informationen zu Automatisierungsregeln
Erforderliche Identity and Access Management-Rollen und -Berechtigungen
Zusätzlich zu den Berechtigungen, die Sie zum Ausführen einer Cloud Deploy-Bereitstellungspipeline und zum Ausführen der zu automatisierenden Aufgaben (z. B. das Vorantreiben eines Rollouts) benötigen, sind mehrere Berechtigungen erforderlich, um bestimmte Vorgänge für die Ressourcen Automation und AutomationRun auszuführen:
clouddeploy.automations.createclouddeploy.automations.deleteclouddeploy.automations.getclouddeploy.automations.listclouddeploy.automations.updateclouddeploy.automationRuns.cancelclouddeploy.automationRuns.getclouddeploy.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 die spezifischen Berechtigungen, die für die einzelnen Automatisierungsregeln 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, indem Sie eine Automatisierung konfigurieren und dann die Automatisierungsressource mit gcloud deploy apply erstellen. Dabei können Sie auch verfügbare Automatisierungsregeln verwenden.
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 von Automatisierungsregeln
Zusätzlich zu dieser Automatisierungskonfiguration geben Sie Automatisierungsregeln an. Die Konfiguration ist für jede der verfügbaren Regeln unterschiedlich.
Eine Beschreibung der einzelnen verfügbaren Regeln finden Sie unter Automatisierungsregeln verwenden.
Automatisierung aussetzen
Sie können eine vorhandene Ressource sperren, 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 es werden weiterhin Plattformprotokolle generiert.
Aktualisieren Sie in der
Automation-Konfiguration das Attributsuspendedauftrue.Führen Sie
gcloud deploy applyfür diese Konfigurationsdatei aus.Plattformprotokolle werden weiterhin generiert, wenn die Automatisierung instanziiert wird, auch wenn sie pausiert ist. So können Sie die Automatisierung testen und debuggen, ohne die Bereitstellungspipeline zu beeinträchtigen.
Nächste Schritte
Kurzanleitung: Release-Erstellung und Roll-out-Fortschritt automatisieren
Weitere Informationen zu Cloud Deploy-Automatisierungsregeln
Weitere Informationen zu Cloud Deploy-Automatisierungsressourcen
Weitere Informationen zu den Automatisierungskonfigurationsdateien finden Sie in der Dokumentation zum Konfigurationsdateischema.