Bereitstellung automatisieren

Dieses Dokument bietet einen Überblick über die Bereitstellungsautomatisierung.

Sie können Cloud Deploy so konfigurieren, dass Release- und Roll-out-bezogene Aufgaben für eine bestimmte Bereitstellungspipeline automatisch ausgeführt werden. Zu diesen Aufgaben gehören das Hochstufen von Releases und der Phasenfortschritt.

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

Automatisierte Aktionen

In Cloud Deploy können Sie die folgenden Release- und Rollout-Aktivitäten automatisieren:

  • Release hochstufen

    Sie können Cloud Deploy so konfigurieren, dass Ihr Release nach einem erfolgreichen Roll-out auf einem Ziel automatisch hochgestuft wird. Wenn Sie beispielsweise die drei Ziele dev, staging und prod haben, können Sie eine Automatisierung so konfigurieren, dass der Release nach einer erfolgreichen Bereitstellung in staging ohne weitere menschliche Interaktion auf prod hochgestuft wird.

  • Roll-out fortsetzen

    Sie können Cloud Deploy so konfigurieren, dass ein Roll-out nach einem erfolgreichen Roll-out für das vorherige Ziel von einer Phase in die nächste fortgesetzt wird. Das Fortsetzen von Phasen ist nur bei Zielen 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 freigegeben werden.

Im Folgenden wird das allgemeine Verfahren zur Konfiguration und Ausführung einer Automatisierung beschrieben:

  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. Die mit dieser Automatisierung verknüpfte Bereitstellungspipeline rufen Sie durch Erstellen eines Release auf.

  4. Das Roll-out ist auf mindestens ein Ziel erfolgreich.

  5. Im Ziel, für das diese Automatisierung konfiguriert ist...

    Wenn die Automatisierung den Status promoteReleaseRule hat:

    1. Die Ausführung wartet, bis das Roll-out am Quellziel abgeschlossen ist. Das Quellziel ist der für die Automatisierung konfigurierte selector.targets, nicht im AutomationRule.

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

    3. Der Release wird automatisch zum nächsten Ziel im Pipelinefortschritt oder, wenn angegeben, auf ein bestimmtes Ziel hochgestuft.

    Wenn die Automatisierung advanceRolloutRule ist und das Ziel eine Canary-Deployment-Strategie verwendet:

    1. Die Ausführung wartet auf die identifizierte Quellphase, falls diese vorhanden ist.

      Das Attribut sourcePhase ist optional. Wenn keine Quellphasen angegeben sind, wird jede Phase im Roll-out automatisch fortgesetzt. Der automatische Phasenfortschritt findet statt, wenn die Quellphase IN_PROGRESS ist, vorbehaltlich der wait-Zeit.

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

      Wenn Sie ein Canary-Deployment automatisieren, geben Sie anhand dieser Wartezeit die Dauer der einzelnen Canary-Phasen an.

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

    4. Wenn es eine zusätzliche Quellphase gibt, wird diese behandelt, einschließlich der gleichen Wartezeit, falls zutreffend.

Automatisierungsressourcen

Es gibt zwei Cloud Deploy-Ressourcen, die speziell für die Automatisierung vorgesehen sind:

  • Automatisierung

    Ein Automation ist eine untergeordnete Ressource einer Bereitstellungspipeline und enthält die folgenden Informationen:

    • Ein Verweis auf das oder die Ziele, für die die Automatisierung verwendet wird
    • Eine oder mehrere Regeln, mit denen festgelegt wird, was und wie die Automatisierung abläuft

    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. Er verweist auf die entsprechende Automatisierungsressource sowie Informationen zum Roll-out, durch das sie ausgelöst wurde, und anderer Metadaten.

    Die Automatisierungsausführung wird erstellt, wenn eine Automatisierung ausgelöst wird.

Weitere Informationen zu Automatisierungsressourcen

Automatisierungsregeln

Eine Automatisierungsregel definiert eine Aktion, die in Ihrer Bereitstellungspipeline automatisch ausgeführt werden kann, sowie Details zum Ablauf der Automatisierung.

Weitere Informationen zu Automatisierungsregeln

Rollen und Berechtigungen für Identity and Access Management erforderlich

Zusätzlich zu den Berechtigungen, die Sie zum Ausführen einer Cloud Deploy-Bereitstellungspipeline und zum Ausführen der zu automatisierenden Aufgaben (z. B. Fortsetzen eines Roll-outs) benötigen, sind mehrere Berechtigungen erforderlich, um bestimmte Vorgänge für die Ressourcen Automation und AutomationRun 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

Weitere Informationen finden Sie unter IAM-Rollen und -Berechtigungen. Dort erfahren Sie auch, welche Cloud Deploy-Rollen einschließlich dieser Berechtigungen enthalten sind.

Automatisierung erstellen

Sie können unter Verwendung einer der verfügbaren Automatisierungsregeln eine Automatisierung erstellen. 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 zur Konfiguration der Ressource Automation finden Sie unter Schema für Konfigurationsdatei.

Konfiguration von Automatisierungsregeln

Zusätzlich zu dieser Automatisierungskonfiguration geben Sie Automatisierungsregeln an. Die Konfiguration ist für jede der verfügbaren Regeln unterschiedlich.

Beschreibungen der einzelnen verfügbaren Regeln finden Sie unter Automatisierungsregeln verwenden.

Automatisierung aussetzen

Sie können eine vorhandene Ressource anhalten, ohne sie zu löschen. Dies kann hilfreich sein, um eine Automatisierung zu testen, ohne die Bereitstellungspipeline zu beeinträchtigen. Wenn Sie eine Automatisierung sperren, wird die Automatisierung nicht ausgeführt. Es werden aber Plattformlogs generiert.

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

  2. Führen Sie gcloud deploy apply für diese Konfigurationsdatei aus.

  3. Plattformlogs werden auch dann generiert, wenn die Automatisierung angehalten wird. Damit können Sie die Automatisierung testen und debuggen, ohne die Bereitstellungspipeline zu beeinträchtigen.

Nächste Schritte