In diesem Dokument werden die Beziehungen zwischen Cloud Deploy und den externen Systemen beschrieben, mit denen es bei der Bereitstellung Ihrer Anwendungen verwendet wird. Diese Systeme sind andere Google Cloud-Dienste und Tools von Drittanbietern.
Gesamtansicht
Das folgende Diagramm zeigt die Beziehungen zwischen Cloud Deploy und den verschiedenen Systemen, von denen es abhängig ist.
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 API oder der CLI zum Erstellen eines Release sein kann.
-
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 und somit Ihre Anwendung bereitzustellen.
-
Cloud Deploy speichert die Renderingquelle und gerenderte Manifeste in einem Cloud Storage-Bucket.
Beobachtbarkeit in Google Cloud und Cloud-Audit-Logs.
Mit Google Cloud Observability werden Logging-Daten für Cloud Deploy erfasst und verfügbar gemacht.
Siehe auch Audit-Logging.
-
Cloud Deploy veröffentlicht Nachrichten in 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 zur Bereitstellung Ihrer Anwendungen verwendet, und die Beziehungen zwischen diesen Ressourcen:
Wie in diesem Diagramm dargestellt, sind die Beziehungen zwischen den Ressourcen wie folgt:
Die Bereitstellungspipeline kann null oder mehr Releases liefern und auf ein oder mehrere Ziele verweisen, einschließlich Multi-Ziele und ihrer zugehörigen untergeordneten Ziele.
Die Bereitstellungspipeline kann auch auf eine oder mehrere Automatisierungen verweisen, die Aktionen für Cloud Deploy-Ressourcen automatisieren.
Jeder Release enthält die Pipeline-Instanz – einen „Snapshot“ der Bereitstellungspipeline und Ziele, wie sie beim Erstellen des Release konfiguriert wurden.
Jeder Release kann null oder mehr Rollouts liefern und auf null oder mehr Artefakte verweisen.
Jedes Roll-out umfasst mindestens eine Phase, die eine Sammlung von Vorgängen (Jobs) in einem Roll-out darstellt, die logisch gruppiert sind, z. B. eine Bereitstellung oder eine Bereitstellung und Prüfung.
Jede Phase umfasst einen oder mehrere Jobs, die angeben, was bei dem Rollout zu tun ist – Bereitstellung oder Überprüfung. Jeder Job kann eine oder mehrere Jobausführungen enthalten, bei denen es sich um Instanzen von Jobs handelt, z. B. ein Bereitstellungsversuch. Eine Jobausführung ist eine untergeordnete Ressource des Roll-outs.
Multi-Ziele, die für die parallele Bereitstellung verwendet werden, erstellen Controller-Roll-outs. Dabei werden untergeordnete Roll-outs erstellt, die untergeordneten Zielen entsprechen.
Jedes Roll-out ist einem Ziel zugeordnet.
Bei der parallelen Bereitstellung ist jedes untergeordnete Ziel einem untergeordneten Roll-out zugeordnet.
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 sein.
Ein Artefakt ist eine beliebige Ausgabe Ihres CI-Prozesses (z. B. ein Container-Image), die im Rahmen eines Roll-outs für eine Ziellaufzeit bereitgestellt wird.
Ein Roll-out umfasst außerdem eine oder mehrere Phasen, die wiederum einen oder mehrere Jobs und eine oder mehrere Jobausführungen enthalten.
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). Jedes Roll-out umfasst eine oder mehrere Phasen. Eine Phase ist eine untergeordnete Botschaft in einem Roll-out.
Jobs
Der spezifische Vorgang, der bei einem Roll-out ausgeführt werden soll, z. B. Bereitstellen oder Überprüfen. Ein Job ist eine untergeordnete Nachricht in einem Roll-out.
JobRuns
Eine Instanz eines Jobs, z. B. ein Versuch zur Bestätigung. Jeder Job kann null oder mehr JobRuns haben. JobRun ist eine untergeordnete Ressource eines Roll-outs.
Automatisierungen enthalten Automatisierungsregeln, auf die möglicherweise von null oder mehr AutomationRun-Ressourcen verwiesen wird. AutomationRuns sind Instanzen ausgeführter Automatisierungsregeln, z. B. eine automatisierte Hochstufung von einem Ziel zu einem anderen. Automatisierungs- und AutomationRun-Ressourcen sind untergeordnete Ressourcen unter 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 mithilfe der CLI oder der API auf, um einen neuen Release zu erstellen. Dabei werden die Build-Artefakte oder Verweise auf Images übergeben.
Weitere Informationen zum Einbinden Ihres CI-Systems finden Sie unter Cloud Deploy in andere Systeme einbinden.
Wenn ein neuer Release erstellt wird, geht Cloud Deploy so vor:
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 dies die Skafold-Standardversion. Da Sie jedoch 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 die 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-Artefaktedatei bereitgestellt werden, auf die dieser Befehl verweist.Wenn Sie ein benutzerdefiniertes Ziel verwenden, ruft Cloud Deploy den
render
-Vorgang auf, der für seinen benutzerdefinierten Zieltyp definiert ist.Cloud Deploy speichert das gerenderte Manifest im standardmäßigen oder alternativen Cloud Storage-Bucket.
Cloud Deploy führt diese Aktionen in der Standard- oder einer alternativen Ausführungsumgebung aus.
Wenn ein Roll-out erstellt wird (automatisch nach der Release-Erstellung oder bei Bedarf), geht Cloud Deploy so vor:
Ruft Hooks für die Vorab-Bereitstellung auf, sofern welche angegeben sind.
Bei einer Canary-Bereitstellungsstrategie werden Hooks vor der Bereitstellung zu Beginn der ersten Phase aufgerufen.
Ruft den Vorgang
deploy
auf.Wenn Sie integrierte Ziele verwenden, erstellt Cloud Deploy durch Aufrufen von
skaffold apply
automatisch ein Roll-out und stellt es für das erste Ziel bereit. Wenn Sie ein integriertes Ziel verwenden, wird das erste Roll-out beim Erstellen des Release automatisch erstellt.Wenn Sie ein benutzerdefiniertes Ziel verwenden, erstellt Cloud Deploy automatisch ein Roll-out für das erste Ziel und ruft den
deploy
-Vorgang auf, der für seinen benutzerdefinierten Zieltyp definiert ist.Bei integrierten und benutzerdefinierten Zielen erfolgt das Roll-out 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 Überprüfung in der Skaffold-Konfiguration angegeben ist.Ruft nach der Bereitstellung Hooks auf, sofern vorhanden, nach
verify
, wennverify
angegeben ist. Andernfalls werden Hooks nach der Bereitstellung nachdeploy
aufgerufen.Wenn Sie eine Canary-Bereitstellungsstrategie verwenden, werden Hooks nach der Bereitstellung als letzter Job in der abschließenden Roll-out-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 sind, und führt diesen Schritt in der standardmäßigen oder benutzerdefinierten Ausführungsumgebung aus.
Dieser Prozess gilt nicht nur für Werbeaktionen, sondern auch für Rollbacks und für erneute Bereitstellungen.
Bei Cloud Deploy-Vorgängen veröffentlicht der Dienst Benachrichtigungen an mehrere Pub/Sub-Themen, z. B. wenn ein Roll-out eine Genehmigung erfordert.
Diese und andere Integrationen werden unter Cloud Deploy in externe Systeme einbinden beschrieben.
Sie können eine Automatisierung angeben, um verschiedene operations in der Bereitstellungspipeline automatisch auszuführen. Diese 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-Beobachtbarkeits- 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
Weitere Informationen zur Einbindung von Cloud Deploy in andere Systeme
Wichtige Informationen zum Lebenszyklus der Skaffold-Version
Informationen zu Ausführungsumgebungen von Cloud Deploy
Schritt-für-Schritt-Anleitung für Cloud Deploy-Skaffold-Profile durcharbeiten