Übersicht über Cloud Deploy

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 Cloud Deploy-Pipeline

Die Cloud Deploy-Lieferpipeline enthält folgende Informationen:

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

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

  • Optional: Labels und Annotationen

  • Optional: Die Zieldefinitionen 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 Cloud Deploy

Im Folgenden wird beschrieben, was in einem einfachen 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 Konfiguration für Skaffold, die Cloud Deploy für Rendering- und Bereitstellungsvorgänge benötigt.

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

  3. Sie registrieren Ihre Pipeline beim 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 Cloud Deploy, um Ihre Lieferpipeline zu initiieren.

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

    Sie können ein beliebiges CI-Tool verwenden, solange es ein oder mehrere Container-Images ausgibt, die Ihrer 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 Cloud Deploy auf, um sie hochzustufen.

    In jedem Fall führt der Aufruf zum Hochstufen dazu, dass 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 der Release-Erstellung und ‑Promotion wird im Dokument Cloud Deploy-Dienstarchitektur ausführlicher beschrieben.

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

Werbung

Einen Release hochzustufen bedeutet, ihn im nächsten Ziel in der in Ihrer Pipeline definierten Hochstufungssequenz bereitzustellen. Beim ersten Aufruf von Cloud Deploy wird ein release und dann eine rollout-Ressource erstellt, die für die Bereitstellung für das erste Ziel in der Beförderungssequenz verwendet wird. Bei jedem nachfolgenden Aufruf zum Hochstufen des Releases erfolgt ein Roll-out zum nächsten Ziel.

Genehmigungen

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

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

Weitere Informationen zu Angeboten und zum Verwalten der Genehmigung für Angebote finden Sie unter Genehmigung erforderlich.

Benachrichtigungen

Cloud Deploy stellt Pub/Sub-Benachrichtigungen für die folgenden Ereignisse bereit:

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

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

Weitere Informationen finden Sie unter Cloud Deploy-Benachrichtigungen verwenden.

Rollbacks

Cloud Deploy unterstützt das Rollback in beliebigen Zielen bereitgestellter Anwendung. Ein Rollback in Cloud Deploy besteht aus dem Auslösen eines Rollouts für den letzten erfolgreich bereitgestellten Release. Beim neuen Rollout werden dieselben Parameter verwendet, die bei diesem erfolgreichen Deployment verwendet wurden.

Weitere Informationen finden Sie unter Rollback einer Bereitstellung.

Skaffold und Cloud Deploy

Cloud Deploy verwendet Skaffold für Rendering, Bereitstellung und Überprüfung. Mit Skaffold können Sie Ihren lokalen Entwicklungszyklus auch ganz einfach mit einer Cloud Deploy-Pipeline zur kontinuierlichen Bereitstellung verbinden.

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

Cloud Deploy mit anderen Google Cloud -Tools

Cloud Deploy unterstützt fast jedes Tool, das in einer CI/CD-Pipeline verwendet wird. Sie können also eine beliebige Entwicklungsumgebung und ein beliebiges Quellcode-Repository, ein beliebiges CI-System (Continuous Integration) und ein beliebiges Artefakt-Repository verwenden.

Nachgelagert führt Cloud Deploy Bereitstellungen für Google Kubernetes Engine, Cloud Run und GKE Enterprise durch.

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

  1. Verwenden Sie Cloud Code, um den Anwendungsquellcode 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 inGoogle Cloudzu vereinfachen.

  2. Verwenden Sie Skaffold, um Ihre lokale Entwicklungsschleife zu verwalten.

    Cloud Deploy verwendet Skaffold über Cloud Build, um Ihre Manifeste zu rendern und bereitzustellen. Diese Integration bedeutet, dass Sie eine skaffold.yaml-Datei verwalten müssen, aber nicht, dass Sie Skaffold in Ihren lokalen Entwicklungsablauf einbinden müssen. 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 durch einen Commit in Ihrem Quellcode-Repository ausgelöst werden kann. Die Ausgabe von Cloud Build sind Artefakte, einschließlich bereitstellbarer Container-Images. Sie können einen Aufruf an Cloud Deploy hinzufügen, um ein Release zu erstellen und Ihre Bereitstellungspipeline aufzurufen.

  4. Speichern Sie Ihre Artefakte im Artifact Registry.

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

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

    Jedes der in Ihrer Bereitstellungspipeline identifizierten Ziele stellt einen GKE-Cluster, Cloud Run oder einen GKE-Cluster dar, in dem Ihre Anwendung letztendlich bereitgestellt wird.

  6. Ihre Anwendung in GKE, Cloud Run oder GKE Enterprise verwalten.

    GKE ist dieGoogle Cloud verwaltete Umgebung für die Ausführung von containerisierten Anwendungen in Kubernetes.

    Mit Cloud Run können Sie Container in einer serverlosen Umgebung ausführen.

    GKE Enterprise bietet eine einheitliche Entwicklungs- und Betriebserfahrung für Cloud- und lokale Umgebungen.

  7. Überwachen Sie die Leistung Ihrer Anwendung mit Google Cloud Observability.

    Google Cloud Observability bietet integriertes Monitoring und Logging für Ihre Anwendung.

Nächste Schritte