Bereitstellung automatisieren

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 und prod haben, können Sie eine Automatisierung so konfigurieren, dass der Release bei 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 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:

  1. Sie konfigurieren eine Automatisierung

    Diese Automatisierung ist mit einer Bereitstellungspipeline verbunden.

  2. Sie registrieren diese Automatisierung mit gcloud deploy apply.

    Dadurch wird die Automatisierungsressource erstellt.

  3. Zum Aufrufen der Bereitstellungspipeline für diese Automatisierung erstellen Sie einen Release.

  4. Das Roll-out ist für mindestens ein Ziel erfolgreich.

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

    Wenn die Automatisierung promoteReleaseRule ist:

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

    2. Wenn eine Zeit für wait konfiguriert ist, wird diese Zeit ebenfalls ausgeführt.

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

    1. 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 Quellphase IN_PROGRESS ist, wobei die Zeit wait gilt.

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

    3. Das Rollout geht automatisch von dieser Quellphase in die nächste Phase des Rollouts über.

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

  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 instanziiert wird. Damit können Sie die Automatisierung testen und Fehler beheben, ohne die Bereitstellungspipeline zu beeinträchtigen.

Nächste Schritte