Bereitstellung automatisieren

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.

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

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 und prod, können Sie eine Automatisierung so konfigurieren, dass die Version nach einer erfolgreichen Bereitstellung in staging ohne weitere Interaktion von Menschen auf prod 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.

  • Roll-out fortsetzen

    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.

  • Roll-out reparieren

    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:

  1. Sie konfigurieren eine Automatisierung.

    Diese Automatisierung ist mit einer Bereitstellungspipeline verknüpft.

  2. Sie registrieren diese Automatisierung mit gcloud deploy apply.

    Dadurch wird die Automatisierungsressource erstellt.

  3. Sie können die mit dieser Automatisierung verknüpfte Bereitstellungspipeline aufrufen, indem Sie einen Release erstellen.

  4. Das Roll-out ist für mindestens ein Ziel erfolgreich oder fehlschlägt.

    Wenn das Roll-out erfolgreich war und die Automatisierung promoteReleaseRule ist:

    1. 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 die AutomationRule.

    2. Wenn eine wait-Zeit konfiguriert ist, wartet die Ausführung auch auf diese Zeit.

    3. 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:

    1. 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 Quellphase IN_PROGRESS ist, vorbehaltlich einer Zeitspanne von wait.

    2. 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.

    3. Das Roll-out wird automatisch von dieser Quellphase in die nächste Phase des Roll-outs fortgesetzt.

    4. 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:

    1. 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.

    2. Wenn der erste Wiederholungsversuch fehlschlägt, wartet die Ausführung die konfigurierte Zeit wait ab und versucht es dann noch einmal.

    3. 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 Wiederholungen IN_PROGRESS, nach jedem Roll-out-Fehler jedoch FAILED.

    4. 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.

  1. Aktualisieren Sie in der Automation-Konfiguration das Attribut suspended auf true.

  2. Führen Sie gcloud deploy apply mit dieser Konfigurationsdatei aus.

  3. 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