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 Anmerkungen
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 Cloud Deploy-Bereitstellungsprozess
Im Folgenden wird beschrieben, was in einem einfachen Cloud Deploy-Szenario mit Continuous Delivery geschieht.
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 Cloud Deploy für Rendering- und Bereitstellungsvorgänge benötigt.
Sie definieren Ihre Ziele entweder in der Pipeline-Konfigurationsdatei oder in einer separaten Datei oder mehreren separaten Dateien.
Sie registrieren Ihre Pipeline beim Cloud Deploy-Dienst.
Nachdem der Dienst nun Ihre Anwendung kennt, verwaltet er die Zielbereitstellung entsprechend der definierten Hochstufungssequenz.
Die Ausgabe Ihres CI-Prozesses enthält einen Aufruf an Cloud Deploy, um Ihre Lieferpipeline zu initiieren.
Durch diesen Aufruf wird eine
release
-Ressource erstellt, die das gerenderte Manifest für jedes Ziel darstellt. Jedes Ziel wird mit der angegebenen Renderingquelle „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 einerollout
-Ressource, die den Release der ersten Zielumgebung zuordnet. Basierend auf diesem Roll-out 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 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.
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.
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 im Abschnitt Cloud Deploy-Dienstarchitektur ausführlicher beschrieben.
Während der Pipelineausführung erfasst Cloud Deploy Messwerte und Prüfdetails.
Werbung
Wenn Sie einen Release hochstufen, wird er im nächsten Ziel in der in Ihrer Pipeline definierten Hochstufungssequenz bereitgestellt. Beim ersten Aufruf von Cloud Deploy wird eine release
und dann eine rollout
-Ressource erstellt, die für das Bereitstellen auf das erste Ziel in der Angebotssequenz verwendet wird. Jeder nachfolgende Aufruf zum Hochstufen des Release führt zu einem Roll-out auf das nächste Ziel.
Genehmigungen
Sie können angeben, 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 die Property 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. So kann beispielsweise ein Ticketsystem die Nachricht abonnieren, um einen Genehmigungsworkflow zu starten.
Weitere Informationen zu Angeboten und zur Verwaltung der Genehmigung für Angebote finden Sie unter Genehmigung erforderlich machen.
Benachrichtigungen
Cloud Deploy stellt Pub/Sub-Benachrichtigungen für folgende Ereignisse bereit:
- Rendern: Start, Erfolg und Fehler
- Bereitstellung: Start, Erfolg und Fehler
- Genehmigung erforderlich
- Genehmigung genehmigt
- 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. Für das neue Roll-out werden dieselben Parameter verwendet, die bei der erfolgreichen Bereitstellung 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 auch ganz einfach Ihren lokalen Entwicklungs-Loop mit einer Cloud Deploy-Pipeline für die kontinuierliche Bereitstellung verbinden.
Weitere Informationen zur Einbindung 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 in einer CI/CD-Pipeline. Sie können also jede Entwicklungsumgebung und jedes Quellcode-Repository, jedes CI-System (Continuous Integration) und jedes 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 verwenden, sieht Ihr Quelle-zu-Produkt-Ablauf so aus:
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.
Verwenden Sie Skaffold, um Ihren lokalen Entwicklungszyklus 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.Erstellen Sie Ihre Anwendung mit Cloud Build.
Mit Cloud Build können Sie eine CI-Pipeline einrichten, die über einen Commit in Ihrem Quellcode-Repository ausgelöst werden kann. Die Ausgabe von Cloud Build besteht aus Artefakten, einschließlich ausführbarer Container-Images. Sie können einen Aufruf an Cloud Deploy hinzufügen, um ein Release zu erstellen und Ihre Bereitstellungspipeline aufzurufen.
Speichern Sie Ihre Artefakte im Artifact Registry.
Cloud Deploy ruft das oder die Container-Images aus der Artifact Registry ab, in der Sie Artefakte und Abhängigkeiten zentral speichern können.
Konfigurieren Sie Ihre Bereitstellungspipeline 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 dann bereitgestellt wird.
Ihre Anwendung in GKE, Cloud Run oder GKE Enterprise verwalten.
GKE ist die von Google Cloud verwaltete Umgebung für das Ausführen containerisierter 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.
Ü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
In den Kurzanleitungen erfahren Sie kurz, wie eine Lieferpipeline erstellt und zur Bereitstellung einer Anwendung genutzt wird.
Sehen Sie sich eine der Cloud Deploy-Anleitungen an.
Weitere Informationen zur Funktionsweise von Cloud Deploy-Komponenten
Unter Google Cloud-Architektur-Framework: Operative Exzellenz finden Sie Artikel dazu, wie Sie die Prinzipien der operativen Exzellenz verwenden, um eine Grundlage für eine automatisierte Bereitstellung zu schaffen.