In diesem Dokument werden die Beziehungen zwischen Cloud Deploy und den externen Systemen beschrieben, mit denen die Anwendung bereitgestellt wird. Diese Systeme sind andere Google Cloud -Dienste und Tools von Drittanbietern.
Gesamtansicht
Das folgende Diagramm zeigt die Beziehungen zwischen Cloud Deploy und den separaten Systemen, auf denen es basiert.
Wie in diesem Diagramm dargestellt, interagiert Cloud Deploy mit den folgenden Systemen:
Ihr CI-System
Cloud Deploy unterstützt die meisten CI-Tools, solange eine Ausgabe Ihres CI-Prozesses ein Aufruf der Cloud Deploy API oderCLI sein kann, um eine Release zu erstellen.
-
Cloud Deploy ruft Cloud Build auf, um Ihre Manifeste zu rendern und in der Ziellaufzeit bereitzustellen.
-
Cloud Deploy verwendet Skaffold über Cloud Build, um Ihre Manifeste zu rendern und bereitzustellen, sodass Ihre Anwendung bereitgestellt wird.
-
Cloud Deploy speichert Renderingquellen und gerenderte Manifeste in einem Cloud Storage-Bucket.
Google Cloud Observability und Cloud-Audit-Logs
Google Cloud Observability erfasst und stellt Logging-Daten für Cloud Deploy bereit.
Siehe auch Audit-Logging.
-
Cloud Deploy veröffentlicht Nachrichten zu mehreren Pub/Sub-Themen. Sie können diesen Dienst verwenden, um ihn in externe Workflows, Tests und andere zugehörige Systeme einzubinden.
Weitere Informationen finden Sie unter Cloud Deploy-Benachrichtigungen abonnieren.
Ziellaufzeit
Cloud Deploy verwendet
skaffold apply
über Cloud Build, um Ihre Anwendungen in Ihrer Ziellaufzeit (GKE oder GKE Enterprise) bereitzustellen.
Cloud Deploy-Ressourcen
Das folgende Diagramm zeigt die Ressourcen, die Cloud Deploy zum Bereitstellen Ihrer Anwendungen verwendet, sowie die Beziehungen zwischen diesen Ressourcen:
Wie in diesem Diagramm dargestellt, sind die Beziehungen zwischen den Ressourcen so:
Die Bereitstellungspipeline kann null oder mehr Releases umfassen und auf ein oder mehrere Ziele verweisen, einschließlich Multi-Zielen und den zugehörigen untergeordneten Zielen.
Die Bereitstellungspipeline kann auch auf eine oder mehrere Automatisierungen verweisen, mit denen Aktionen für Cloud Deploy-Ressourcen automatisiert werden.
Jedes Release enthält die Pipeline-Instanz – einen „Snapshot“ der Bereitstellungspipeline und der Ziele, wie sie beim Erstellen des Release konfiguriert waren.
Jede Version kann null oder mehr Roll-outs umfassen und auf null oder mehr Artefakte verweisen.
Jeder Rollout umfasst mindestens eine Phase, die eine Sammlung von Vorgängen (Jobs) in einem Rollout darstellt, die logisch gruppiert sind, z. B. ein Bereitstellen oder ein Bereitstellen und Überprüfen.
Jede Phase umfasst einen oder mehrere Jobs, die angeben, was beim Roll-out geschehen soll – entweder Bereitstellung oder Überprüfung. Jeder Job kann einen oder mehrere Jobläufe enthalten. Das sind Instanzen von Jobs, z. B. ein Bereitstellungsversuch. Ein Joblauf ist eine untergeordnete Ressource des Roll-outs.
Mehrere Ziele, die für die parallele Bereitstellung verwendet werden, erstellen Controller-Rollouts, die untergeordnete Rollouts erstellen, die untergeordneten Zielen entsprechen.
Jeder Roll-out ist einem Ziel zugeordnet.
Beim parallelen Bereitstellen ist jedes untergeordnete Ziel mit einem untergeordneten Roll-out verknüpft.
Jedes Ziel ist einem GKE- oder Anthos-Cluster oder einem anderen Laufzeitziel für die Anwendung zugeordnet.
Ein Ziel kann mit einer oder mehreren Bereitstellungspipelines verknüpft werden.
Ein Artefakt ist eine beliebige Ausgabe Ihres CI-Prozesses, z. B. ein Container-Image, das im Rahmen eines Rollouts in einer Ziel-Laufzeitumgebung bereitgestellt wird.
Ein Roll-out hat außerdem eine oder mehrere Phasen und Phasen haben einen oder mehrere Jobs und einen oder mehrere Jobläufe.
Wie in diesem Diagramm dargestellt, umfasst ein Roll-out Folgendes:
Phasen
Eine Phase enthält einen oder mehrere Jobs (z. B. „bereitstellen“ oder „bereitstellen und überprüfen“). Jeder Roll-out hat eine oder mehrere Phasen. Eine Phase ist eine Unternachricht bei der Einführung.
Jobs
Der spezifische Vorgang, der für ein Roll-out ausgeführt werden soll, z. B. „deploy“ oder „verify“. Ein Job ist eine untergeordnete Nachricht in einem Roll-out.
JobRuns
Eine Instanz eines Jobs, z. B. ein Versuch, die Identität zu bestätigen. Jeder Job kann null oder mehrere JobRuns haben. Der JobRun ist eine untergeordnete Ressource eines Roll-outs.
Automatisierungen enthalten Automatisierungsregeln, auf die von null oder mehr AutomationRun-Ressourcen verwiesen werden kann. „AutomationRuns“ sind Instanzen von ausgeführten Automatisierungsregeln, z. B. eine automatische Höherstufung von einem Ziel zum nächsten. Die Ressourcen „Automation“ und „AutomationRun“ sind gleichrangige untergeordnete Ressourcen unterhalb einer Bereitstellungspipeline.
So passen sie zusammen, um Ihren Release bereitzustellen
In diesem Abschnitt wird beschrieben, wie Cloud Deploy mit den in diesem Dokument aufgeführten Komponenten interagiert, um die Bereitstellung Ihrer Anwendung als Release zu automatisieren.
Ihr CI-System ruft eine Cloud Deploy-Bereitstellungspipeline auf.
Ihr CI-Prozess ruft Cloud Deploy über die CLI oder die API auf, um einen neuen Release zu erstellen, der die Build-Artefakte oder Verweise auf Images übergibt.
Weitere Informationen zur Integration Ihres CI-Systems finden Sie unter Cloud Deploy in andere Systeme einbinden.
Wenn ein neuer Release erstellt wird, führt Cloud Deploy Folgendes aus:
Speichert eine Instanz der Bereitstellungspipeline als Teil des Releases.
Diese Pipelineinstanz bleibt für diese Version unverändert, auch wenn die Konfiguration der Bereitstellungspipeline geändert wird. Weitere Informationen finden Sie unter Pipelineinstanzen pro Release.
Außerdem wird die Skaffold-Version als Teil des Release gespeichert. In den meisten Fällen ist das die Standardskaffold-Version. Da Sie aber auch andere Versionen angeben können, werden diese Informationen gespeichert.
Ruft Cloud Build auf, das die Skaffold-Rendering-Quelle aus Cloud Storage abruft.
Cloud Deploy speichert die Renderingquelle im standardmäßigen oder alternativen Cloud Storage-Bucket.
Ruft
skaffold diagnose
auf (mit der beim Erstellen erstellten Skaffold-Version), um ein einzelnes effektives Manifest zu generieren.Ruft den Vorgang
render
auf.Wenn Sie integrierte Ziele verwenden, ruft Cloud Deploy
skaffold render
auf, um das Manifest mit den bereitgestellten Images oder Build-Artefakten zu rendern. Cloud Deploy ersetzt Image-Namen inspec.templates.spec.containers.image
durch die vollständigen Image-Pfade (einschließlich Digests oder Tags), die im Befehlgcloud deploy releases create
oder in einer Build-Artefaktdatei bereitgestellt werden, auf die durch diesen Befehl verwiesen wird.Wenn Sie ein benutzerdefiniertes Ziel verwenden, ruft Cloud Deploy den für den benutzerdefinierten Zieltyp definierten
render
-Vorgang auf.Cloud Deploy speichert das gerenderte Manifest im standardmäßigen oder alternativen Cloud Storage-Bucket.
Cloud Deploy führt diese Aktionen mit der Standard- oder einer alternativen Ausführungsumgebung aus.
Wenn ein Rollout erstellt wird (automatisch nach der Release-Erstellung oder später auf Anfrage), führt Cloud Deploy Folgendes aus:
Ruft Pre-Deploy-Hooks auf, sofern welche angegeben sind.
Wenn Sie eine Canary-Bereitstellungsstrategie verwenden, werden Pre-Deploy-Hooks zu Beginn der ersten Phase aufgerufen.
Ruft den Vorgang
deploy
auf.Wenn Sie integrierte Ziele verwenden, erstellt und stellt Cloud Deploy automatisch einen Rollout für das erste Ziel bereit. Dazu wird
skaffold apply
aufgerufen. Wenn Sie ein integriertes Ziel verwenden, wird der erste Rollout automatisch beim Erstellen des Releases erstellt.Wenn Sie ein benutzerdefiniertes Ziel verwenden, erstellt Cloud Deploy automatisch einen Rollout für das erste Ziel und ruft den
deploy
-Vorgang auf, der für den benutzerdefinierten Zieltyp definiert ist.Bei integrierten und benutzerdefinierten Zielen erfolgt die Einführung für das erste Ziel nur dann automatisch, wenn der Release über die Befehlszeile erstellt wird.
Der Prozess für die Bereitstellung auf dem ersten Ziel entspricht dem Vorgang für Hochstufungen, wie im nächsten Schritt beschrieben.
Ruft
skaffold verify
auf, wennverify
für das Ziel in der Konfiguration der Bereitstellungspipelinetrue
ist und die Bestätigung in der Skaffold-Konfiguration angegeben ist.Ruft nach
verify
die Hooks nach der Bereitstellung auf, sofern welche angegeben sind.verify
Andernfalls werden Post-Deploy-Hooks nachdeploy
aufgerufen.Wenn Sie eine Canary-Bereitstellungsstrategie verwenden, werden Post-Deploy-Hooks als letzter Job in der endgültigen Rollout-Phase ausgeführt.
Wenn es Zeit ist, den Release zum nächsten Ziel hochzustufen, ruft Cloud Build das zielspezifische Manifest aus Cloud Storage ab. Anschließend ruft Cloud Build
skaffold apply
auf, um das gerenderte Manifest auf die angegebene Ziellaufzeit anzuwenden.Wenn das Ziel eine Genehmigung erfordert, können Sie die Genehmigung über die Befehlszeile oder über die Konsole vornehmen oder ablehnen.
Außerdem generiert Cloud Deploy eine Pub/Sub-Nachricht, die Sie abonnieren können, um automatisch einen Genehmigungsworkflow zu starten.
Cloud Deploy verwendet die Skaffold-Version und die Pipelineinstanz, die mit diesem Release verknüpft ist, und führt diesen Schritt in der Standard- oder benutzerdefinierten Ausführungsumgebung aus.
Dieser Prozess gilt nicht nur für Werbeaktionen, sondern auch für Rollbacks und für erneute Bereitstellungen.
Während der Cloud Deploy-Vorgänge veröffentlicht der Dienst Benachrichtigungen in mehreren Pub/Sub-Themen (z. B. wenn eine Einführung eine Genehmigung erfordert).
Diese und andere Integrationen werden unter Cloud Deploy in externe Systeme einbinden weiter beschrieben.
Sie können eine Automatisierung angeben, um verschiedene Vorgänge in der Bereitstellungspipeline automatisch auszuführen. Sie können zum festgelegten Zeitpunkt ausgeführt werden. Ein
automationRun
steht für die Ausführung einer Automatisierungsregel.Während des gesamten Cloud Deploy-Vorgangs schreibt der Dienst Plattformlogs und Audit-Logs in Google Cloud Observability und Cloud-Audit-Logs.
Durch alle diese Schritte werden die Ablaufsteuerung und der Zugriff auf Ressourcen mithilfe der Identitäts- und Zugriffsverwaltung eingeschränkt.
Nächste Schritte
Wichtige Informationen zum Lebenszyklus der Skaffold-Version
Weitere Informationen zu Ausführungsumgebungen für Cloud Deploy
Schritt-für-Schritt-Anleitung für Skaffold-Profile für Cloud Deploy ausprobieren