Ü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,lifecycle von einer Lieferpipeline verwaltet wird.

Funktionsweise einer Cloud Deploy-Pipeline

Die Cloud Deploy-Bereitstellungspipeline enthält die folgenden Informationen:

  • Ein Name, mit dem Sie auf die Bereitstellungspipeline verweisen, 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 Continuous-Delivery-Szenario von Cloud Deploy passiert.

  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 oder mehreren separaten Dateien.

  3. Sie registrieren Ihre Pipeline mit dem 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 die Bereitstellungspipeline zu starten.

    Mit diesem Aufruf wird eine release-Ressource erstellt, die das gerenderte Manifest für jedes Ziel darstellt. Jedes Ziel wird mithilfe der angegebenen Renderingquelle, skaffold.yaml, und anhand von 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 mit der ersten Zielumgebung verknüpft. Auf Grundlage dieses Roll-outs wird Ihre Anwendung für das erste Ziel bereitgestellt.

    Sie können ein beliebiges CI-Tool verwenden, solange es ein oder mehrere Container-Images für Ihre Cloud Deploy-Bereitstellungspipeline ausgibt.

    Darüber hinaus muss der Aufruf zum Erstellen eines Release und zum Aufrufen einer Lieferpipeline nicht vom CI-Tool stammen. Sie 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.

    Der Aufruf zum Aufrufen der Hochstufung führt in jedem Fall dazu, dass Cloud Deploy ein neues Roll-out 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 unter Dienstarchitektur von Cloud Deploy ausführlicher beschrieben.

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

Werbung

Zum Hochstufen eines Release stellen Sie ihn für das nächste Ziel in der in Ihrer Pipeline definierten Hochstufungssequenz bereit. Beim ersten Aufruf von Cloud Deploy wird eine release und dann eine Ressource rollout erstellt, die für die Bereitstellung für das erste Ziel in der Hochstufungssequenz verwendet wird. Jeder nachfolgende Aufruf zum Hochstufen des Release führt zu einem Roll-out für das nächste Ziel.

Genehmigungen

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

Wenn ein Ziel genehmigt werden muss, generiert Cloud Deploy eine Pub/Sub-Nachricht, die von einem integrierten System verarbeitet werden kann. Ein Ticketing-System könnte beispielsweise 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.

Benachrichtigungen

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

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

Cloud Deploy verwendet ein Pub/Sub-Thema zum Senden dieser Benachrichtigungen.

Weitere Informationen finden Sie unter Cloud Deploy-Benachrichtigungen verwenden.

Rollbacks

Cloud Deploy unterstützt das Rollback der bereitgestellten Anwendung in jedem beliebigen Ziel. Ein Rollback in Cloud Deploy löst ein Roll-out für den zuletzt erfolgreich bereitgestellten Release aus. Das neue Roll-out verwendet dieselben Parameter, die bei der erfolgreichen Bereitstellung verwendet wurden.

Weitere Informationen finden Sie unter Rollback einer Bereitstellung durchführen.

Informationen zu Skaffold und Cloud Deploy

Cloud Deploy verwendet Skaffold für das Rendering, die Bereitstellung und die Prüfung. Mit Skaffold können Sie außerdem Ihre lokale Entwicklungsschleife ganz einfach mit einer Continuous-Delivery-Pipeline von Cloud Deploy 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 alle vorgelagerten Tools in einer CI/CD-Pipeline. Das heißt, Sie können jedes beliebige Entwicklungsumgebung und Quellcode-Repository, jedes Continuous-Integration-System (CI) und ein beliebiges Artefakt-Repository verwenden.

Cloud Deploy kann nachgelagert in der Google Kubernetes Engine, in Cloud Run und in GKE Enterprise bereitgestellt werden.

Wenn Sie hauptsächlich Google Cloud-Tools verwendet haben, würde Ihr Ablauf von der Quelle zur Produktion so aussehen:

  1. Erstellen Sie die Anwendungsquelle mit Cloud Code.

    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 die 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, aber ansonsten nicht Skaffel in Ihren lokalen Entwicklungsablauf integrieren müssen. Sie können sie 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. Die Ausgabe von Cloud Build ist Artefakte, einschließlich bereitstellbarer Container-Images. Sie können Cloud Deploy einen Aufruf hinzufügen, um einen 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 Artifact Registry ab. Damit können Sie Artefakte und Abhängigkeiten zentral speichern.

  5. Konfigurieren Sie Ihre Bereitstellungspipeline in Cloud Deploy so, dass das Container-Image in einer Abfolge von n Zielen bereitgestellt wird.

    Jedes dieser Ziele, die in Ihrer Bereitstellungspipeline identifiziert wurden, stellt einen GKE-Cluster, Cloud Run- oder GKE-Cluster dar, in dem Ihre Anwendung letztendlich bereitgestellt wird.

  6. Verwalten Sie Ihre Anwendung in GKE, Cloud Run oder GKE Enterprise.

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

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

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

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

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

Nächste Schritte