Überblick über Google Cloud Deploy

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:

  • Einen Namen, den Sie beim Verweis auf die Lieferpipeline verwenden.

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

  • Optional: Die Ziele selbst.

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.

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

  2. Die Definition der Ziele erfolgt entweder in der Pipeline-Konfigurationsdatei oder in einer separaten Datei bzw. 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.

    Dieser Aufruf erstellt eine release-Ressource, die das gerenderte Manifest für jedes Ziel darstellt. Die einzelnen Manifeste werden auf Basis der bereitgestellten Renderingquelle, skaffold.yaml, und den Verweisen auf bestimmte bereitzustellende Container-Images generiert. Für diesen ersten Aufruf zum Erstellen eines Release erstellt Google Cloud Deploy automatisch eine rollout-Ressource, die den Release der ersten Zielumgebung zuordnet. Basierend auf diesem Rollout wird Ihre Anwendung auf dem 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).

    Der Prozess zum Erstellen und Hochstufen von Releases wird in der Google Cloud Deploy-Dienstarchitektur ausführlicher beschrieben.

Während der gesamten Pipelineausführung erfasst Google Cloud Deploy Messwerte und Audit-Details.

Werbeaktion

Wenn Sie ein Release hochstufen möchten, müssen Sie es für das nächste Ziel in der für die Pipeline definierten Hochstufungsequenz bereitstellen. Der erste Aufruf von Google Cloud Deploy erstellt eine release- und dann eine rollout-Ressource, die zur Bereitstellung für das erste Ziel in der Hochstufungssequenz verwendet wird. Jeder nachfolgende Aufruf zum Hochstufen des Releases führt zu einem Rollout zum nächsten Ziel.

Genehmigungen

Sie können angeben, dass eine Genehmigung für das Hochstufen zu einem beliebigen Ziel erforderlich ist. Beispielsweise können Sie für eine Hochstufung zu einem Produktionsziel eine Genehmigung erforderlich machen. Wenn Sie eine Genehmigung für ein Ziel anfordern möchten, legen Sie das requireApproval-Attribut in der Zieldefinition fest.

Wenn ein Ziel genehmigt werden muss, generiert Google Cloud Deploy eine Pub/Sub-Nachricht, die von einem integrierten System (z. B. einem Ticketsystem) genutzt werden kann, das diese Nachricht abonniert.

Weitere Informationen zum Anfordern von Genehmigungen und zum Genehmigen von Hochstufungen finden Sie unter Lieferpipeline verwalten.

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 besteht aus dem Auslösen eines Rollouts für den letzten erfolgreich bereitgestellten Release mit den gleichen Parametern, die bei diesem erfolgreichen Deployment verwendet wurden.

Weitere Informationen finden Sie unter Rollback einer Bereitstellung.

Über Skaffold und Google Cloud Deploy

Google Cloud Deploy verwendet Skaffold, um Rendering-Tools von der Lieferpipeline zu separieren. Dadurch wird das Manifest-Rendering flexibler, ohne dass sich dies auf die Definition Ihrer Lieferpipeline auswirkt. Mit Skaffold können Sie problemlos einen lokalen Entwicklungsarbeitsbereich für die Verwendung mit den Continuous Delivery-Pipelines in Google Cloud konfigurieren.

Informationen zu den Grundlagen finden Sie in der Skaffold-Kurzanleitung.

Google Cloud Deploy mit anderen Google Cloud-Tools

Google Cloud Deploy unterstützt fast jedes Tool vorgelagert in einer CI/CD-Pipeline. Das heißt, Sie können jedes beliebige Entwicklungsumgebungs- und Quellcode-Repository, jedes CI-System (Continuous Integration) und jedes Artefakt-Repository nutzen.

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

Wenn Sie hauptsächlich Google Cloud-Tools verwenden, sieht Ihr Quelle-zu-Produkt-Ablauf so aus:

  1. Verwenden Sie Cloud Code, um Ihre 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. Verwenden Sie Skaffold, um Ihre lokale Entwicklungsschleife zu verwalten.

    Google Cloud Deploy verwendet Skaffold über Cloud Build, um Ihre Manifeste zu rendern und bereitzustellen. Dies bedeutet, dass Sie eine skaffold.yaml-Datei verwalten müssen, es bedeutet aber nicht, dass Skaffold Teil Ihres lokalen Entwicklungsablaufs sein muss. Sie können dies jedoch für die kontinuierliche Entwicklung nutzen.

  3. Erstellen Sie Ihre Anwendung mit Cloud Build.

    Mit Cloud Build können Sie eine CI-Pipeline einrichten, die von einem Commit in Ihr Quellcode-Repository ausgelöst werden kann. Cloud Build gibt dann Artefakte aus, darunter bereitstellbare Container-Images. Sie können Google Cloud Deploy aufrufen, um einen Release zu erstellen und Ihre Lieferpipeline aufzurufen.

  4. Speichern Sie Ihre Artefakte im Artifact Registry.

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

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

    Jedes der in Ihrer Lieferpipeline identifizierten Ziele stellt einen GKE-Cluster dar, in dem Ihre Anwendung dann bereitgestellt wird.

  6. Ihre Anwendung in GKE verwalten.

    GKE ist die von Google Cloud verwaltete Umgebung für die Ausführung von Containeranwendungen in Kubernetes.

  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