Übersicht über Google Cloud Deploy

Mit Sammlungen den Überblick behalten Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.

Google Cloud Deploy ist ein verwalteter Dienst, der die Bereitstellung Ihrer Anwendungen in einer Reihe von Zielumgebungen in einer definierten Hochstufungssequenz automatisiert. Wenn Sie die aktualisierte Anwendung bereitstellen möchten, erstellen Sie ein Release, dessen,Lebenszyklus von einer Lieferpipeline verwaltet wird.

Funktionsweise einer Google Cloud Deploy-Pipeline

Die Google Cloud Deploy-Lieferpipeline enthält folgende Informationen:

  • Ein Name, den Sie beim Verweis auf die Bereitstellungspipeline verwenden, und eine Beschreibung.

  • Die Hochstufungssequenz, die die Reihenfolge angibt, in der die konfigurierten Ziele bereitgestellt werden.

  • Optional: Labels und Annotationen.

  • Optional können die Zieldefinitionen selbst angegeben werden.

Ziele können in einer Konfigurationsdatei einer Lieferpipeline oder in einer oder mehreren separaten Dateien definiert werden. Mehrere Lieferpipelines können das gleiche Ziel/die gleichen Ziele verwenden, aber ein bestimmtes Ziel kann nur einmal in einer bestimmten Lieferpipeline verwendet werden.

Der Bereitstellungsprozess von Google Cloud Deploy

Im Folgenden wird beschrieben, was in einem einfachen Google Cloud Deploy-Szenario mit Continuous Delivery geschieht.

  1. Sie definieren die Lieferpipeline in einer YAML-Konfigurationsdatei.

    Diese Konfigurationsdatei definiert die Hochstufungssequenz, in der Ihre Anwendung einer Reihe an Zielen bereitgestellt wird.

    Außerdem benötigen Sie eine Konfiguration für Skaffold, die Google Cloud Deploy zum Ausführen von Rendering- und Bereitstellungsvorgängen benötigt.

  2. Sie definieren die Ziele entweder in der Pipeline-Konfigurationsdatei oder in einer separaten Datei oder Dateien.

  3. Sie registrieren Ihre Pipeline beim Google Cloud Deploy-Dienst.

    Nachdem der Dienst nun Ihre Anwendung kennt, verwaltet er die Zielbereitstellung entsprechend der definierten Hochstufungssequenz.

  4. Die Ausgabe Ihres CI-Prozesses enthält einen Aufruf an Google Cloud Deploy, um Ihre Lieferpipeline zu initiieren.

    Bei diesem Aufruf wird eine release-Ressource erstellt, die das gerenderte Manifest für jedes Ziel darstellt. Jede wird mithilfe der bereitgestellten Rendering-Quelle, skaffold.yaml und Verweisen auf bestimmte Container-Images, die bereitgestellt werden sollen, generiert. Für diesen ersten Aufruf zum Erstellen eines Release erstellt Google Cloud Deploy automatisch eine Ressource rollout, die den Release mit der ersten Zielumgebung verknüpft. Basierend auf diesem Roll-out wird Ihre Anwendung im ersten Ziel bereitgestellt.

    Sie können ein beliebiges CI-Tool verwenden, solange es ein oder mehrere Container-Images ausgibt, die Ihrer Google Cloud Deploy-Lieferpipeline zur Verfügung gestellt werden können.

    Darüber hinaus muss der Aufruf zum Erstellen eines Release und zum Aufrufen einer Lieferpipeline nicht vom CI-Tool stammen. Er kann von einem Skript oder einem beliebigen System stammen, das auf den Abschluss des CI-Prozesses reagiert.

  5. Wenn Sie bereit sind, Ihre Anwendung für das nächste Ziel bereitzustellen, rufen Sie Google Cloud Deploy auf, um sie hochzustufen.

    In jedem Fall führt der Aufruf zum Hochstufen dazu, dass Google Cloud Deploy einen neuen Rollout erstellt.

  6. Das Hochstufen wird durch alle Ziele in der Hochstufungssequenz fortgesetzt, wobei prod die Endstufe ist (oder der Name, den Sie als endgültiges Ziel verwenden, um die Anwendung in die Produktion zu bringen).

    Das Erstellen und Freigeben von Releases wird unter Dienstarchitektur von Google Cloud Deploy ausführlicher beschrieben.

Während der Pipelineausführung erfasst Google Cloud Deploy Messwerte und Auditdetails.

Werbeaktion

Wenn Sie einen Release hochstufen möchten, müssen Sie ihn für das nächste Ziel in der in Ihrer Pipeline definierten Hochstufungssequenz bereitstellen. Beim ersten Aufruf von Google Cloud Deploy wird eine release und dann eine rollout-Ressource erstellt, mit der das erste Ziel in der Angebotssequenz bereitgestellt wird. Jeder nachfolgende Aufruf zum Hochstufen des Release führt zu einem Roll-out auf das nächste Ziel.

Genehmigungen

Sie können festlegen, dass eine Genehmigung für das Werben für ein beliebiges Ziel erforderlich ist. Beispielsweise kann es sein, dass Sie eine Genehmigung für das Hochstufen in ein Produktionsziel benötigen. Wenn Sie eine Genehmigung für ein Ziel erzwingen möchten, legen Sie die Eigenschaft requireApproval in der Zieldefinition fest.

Wenn ein Ziel genehmigt werden muss, generiert Google Cloud Deploy eine Pub/Sub-Nachricht, die von einem integrierten System verarbeitet werden kann. Ein Ticketsystem könnte beispielsweise die Nachricht abonnieren, um einen Genehmigungsworkflow zu starten.

Weitere Informationen zu Angeboten und zur Genehmigung von Angeboten finden Sie unter Genehmigung erforderlich.

Benachrichtigungen

Google Cloud Deploy stellt Pub/Sub-Benachrichtigungen für folgende Ereignisse bereit:

  • Rendering: Start, Erfolg und Fehler
  • Bereitstellen: Start, Erfolg und Fehler
  • Genehmigung erforderlich
  • Genehmigung genehmigt
  • Genehmigung abgelehnt

Google Cloud Deploy verwendet ein Pub/Sub-Thema, um diese Benachrichtigungen zu senden.

Weitere Informationen finden Sie unter Benachrichtigungen mit Ihrer Pipeline verwenden.

Rollbacks

Google Cloud Deploy unterstützt das Rollback in beliebigen Zielen bereitgestellter Anwendung. Ein Rollback in Google Cloud Deploy umfasst das Auslösen eines Rollouts für den zuletzt erfolgreich bereitgestellten Release. Der neue Roll-out verwendet die Parameter, die bei der erfolgreichen Bereitstellung verwendet wurden.

Weitere Informationen finden Sie unter Rollback für Bereitstellung durchführen.

Über Skaffold und Google Cloud Deploy

Google Cloud Deploy verwendet Skaffold zum Rendern, Bereitstellen und Überprüfen. Mit Skaffold können Sie Ihre lokale Entwicklungsschleife auch problemlos mit einer Continuous-Delivery-Pipeline von Google Cloud Deploy verbinden.

Weitere Informationen zur Einbindung von Google Cloud Deploy in Skaffold finden Sie in der Skaffold-Übersicht.

Google Cloud Deploy mit anderen Google Cloud-Tools

Google Cloud Deploy unterstützt fast alle vorgelagerten Tools in einer CI/CD-Pipeline. Sie können also jedes beliebige Entwicklungsumgebungs- und Quellcode-Repository, jedes CI-System (Continuous Integration) und jedes Artefakt-Repository verwenden.

Nachgelagert führt Google Cloud Deploy nur Bereitstellungen für Google Kubernetes Engine durch.

Wenn Sie hauptsächlich Google Cloud-Tools verwendet haben, sieht der Quellcode-Produktionsfluss so aus:

  1. Verwenden Sie Cloud Code, um die Anwendungsquelle zu erstellen.

    Cloud Code erweitert mehrere beliebte IDEs (VS Code, IntelliJ, Cloud Shell) um das Erstellen von Anwendungen für die Bereitstellung und Ausführung in Google Cloud zu vereinfachen.

  2. Mit Skaffold können Sie Ihre lokale Entwicklungsschleife verwalten.

    Google Cloud Deploy verwendet Skaffold über Cloud Build zum Rendern und Bereitstellen Ihrer Manifeste. Diese Integration bedeutet, dass Sie eine skaffold.yaml-Datei verwalten müssen, aber nicht so, dass Skaffold Teil Ihres lokalen Entwicklungsablaufs ist. Sie können sie jedoch für die kontinuierliche Entwicklung nutzen.

  3. Anwendung mit Cloud Build erstellen

    Mit Cloud Build können Sie eine CI-Pipeline einrichten, die von einem Commit zu Ihrem Quellcode-Repository ausgelöst werden kann. Die Ausgabe von Cloud Build enthält Artefakte, einschließlich bereitstellbarer Container-Images. Sie können Google Cloud Deploy einen Aufruf hinzufügen, um einen Release zu erstellen und Ihre Bereitstellungspipeline aufzurufen.

  4. Speichern Sie Ihre Artefakte im Artifact Registry.

    Google Cloud Deploy ruft das oder die Container-Images aus Artifact Registry ab. So können Sie Artefakte und Abhängigkeiten zentral speichern.

  5. Konfigurieren Sie Ihre Lieferpipeline in Google Cloud Deploy, um das Container-Image in einer Reihe von n Zielen bereitzustellen.

    Jedes dieser Ziele in Ihrer Bereitstellungspipeline stellt einen GKE-Cluster oder einen Anthos-Cluster dar, in dem Ihre Anwendung letztendlich bereitgestellt wird.

  6. Anwendung in GKE oder Anthos verwalten

    GKE ist die von Google Cloud verwaltete Umgebung zum Ausführen von Containeranwendungen in Kubernetes.

    Anthos bietet eine einheitliche Entwicklungs- und Betriebsumgebung für Cloud- und lokale Umgebungen.

  7. Überwachen Sie die Leistung Ihrer Anwendung mit der Operations-Suite von Google Cloud.

    Die Operations-Suite von Google Cloud bietet integriertes Monitoring und Logging für Ihre Anwendung.

Nächste Schritte