In diesem Dokument wird beschrieben, wie Sie ein Release mit der SaaS-Laufzeit bereitstellen.
Mit der SaaS Runtime können Updates für mehrere bereitgestellte Einheiten mithilfe von Rollouts durchgeführt werden. Rollouts richten sich an Einheiten basierend auf ihrem UnitKind und können optional Filter (unit_filter) anwenden, um mit der Google Cloud CLI auf eine bestimmte Teilmenge von Einheiten auszurichten . So können Sie Updates für alle bereitgestellten Geräte verwalten. Ein Rollback kann durch ein Upgrade von Einheiten auf einen früheren Release durchgeführt werden.
Für Vorgänge für eine einzelne, bestimmte Einheit verwenden Sie die Steuerelemente auf der Seite Einheitendetails.
Hinweise
Bevor Sie Ihr SaaS-Angebot aktualisieren, sollten Sie Folgendes tun:
- Prüfen Sie, ob die SaaS-Laufzeit aktiviert ist.
- Prüfen Sie, ob Sie die erforderlichen IAM-Berechtigungen zum Erstellen eines SaaS-Angebots haben.
- SaaS-Angebot erstellen
- UnitKind erstellen
- Einheit erstellen und bereitstellen
- Bereiten Sie einen neuen oder geänderten Terraform-Blueprint vor.
Release erstellen
Bevor Sie Ihr SaaS-Angebot aktualisieren können, müssen Sie einen Release erstellen. Ein Release stellt eine bestimmte Version Ihrer SaaS-Anwendung dar, die durch ein Blueprint-Paket und die zugehörigen Konfigurationen definiert wird. Ein Release enthält das Update für Ihre Einheiten.
Console
Rufen Sie die SaaS-Laufzeit auf.
Klicken Sie auf Releases.
Klicken Sie auf der Seite Releases auf Erstellen.
Auf der Seite Release erstellen:
- Geben Sie im Feld Releasename einen eindeutigen Namen für den Release ein.
- Wählen Sie im Feld Art der Einheit die Art der Einheit aus, die diesem Release zugeordnet ist.
- Im Bereich Nur Upgrade von (optional) können Sie optional Releases auswählen, von denen aus Einheiten auf diesen Release aktualisiert werden können. So können Sie Upgrade-Pfade steuern.
- Wählen Sie in den Schritten Blueprint erstellen und Blueprint speichern Ihren Blueprint aus oder erstellen Sie ihn. Ausführliche Informationen zu den Optionen zum Erstellen von Blueprints finden Sie in der Dokumentation zu Blueprints.
Im Abschnitt Variablen (optional) können Sie optional Eingabevariablen für diesen Release festlegen. Weitere Informationen zum Festlegen von Variablen finden Sie in der Dokumentation zu Variablen.
Klicken Sie auf Erstellen.
Sie haben ein Release erstellt. Die Releasedetails finden Sie auf der Seite Releasedetails. Sie können beim Erstellen eines Roll-outs auf diesen Release verweisen.
gcloud
So erstellen Sie ein Release mit der Google Cloud Console:
gcloud beta saas-runtime releases create RELEASE_NAME --blueprint-package=BLUEPRINT_PACKAGE_URI --unit-kind=UNIT_KIND [--location=LOCATION] [--labels=[KEY=VALUE,...]] [--upgradeable-from-releases=[RELEASE_NAME,...]] [--input-variable-defaults=[variable=VARIABLE,value=VALUE,type=TYPE,...]]
Ersetzen Sie:
RELEASE_NAME: Die ID des Releases, den Sie erstellen möchten. Dieser Name ist Teil des vollständigen Ressourcennamens für den Release.BLUEPRINT_PACKAGE_URI: Der URI des Blueprint-Pakets, das für diese Version verwendet werden soll. Blueprints sind OCI-Images, die in Artifact Registry oder einer anderen OCI-Registry gehostet werden.- Das Blaupausenpaket enthält die Artefakte, die zum Bereitstellen einer Einheit erforderlich sind, sowie Metadaten zur verwendeten Engine (Terraform) und zur Version.
- Wenn Sie den Hostnamen im URI weglassen, wird standardmäßig der regionale Artifact Registry-Pfad verwendet (z. B.
us-east1-docker.pkg.dev). - Weitere Informationen zum Erstellen von Blueprints finden Sie in der Blueprint-Dokumentation.
UNIT_KIND: Die ID oder die vollständig qualifizierte Kennzeichnung für die Art der Einheit, der diese Version entspricht. UNIT_KIND ist nach der Erstellung eines Releases unveränderlich.LOCATION: Der Ort, an dem Sie die Version erstellen möchten. Dieses Flag bietet einen Fallback-Wert für den Release-Speicherort, wenn der vollständige URI-Pfad nicht angegeben ist. Standardmäßig wird der Speicherort verwendet, der in Ihrer Google Cloud CLI-Umgebung konfiguriert ist.LABELS: (Optional) Labels, die zur Kategorisierung auf den Release angewendet werden sollen. Labels sind Schlüssel/Wert-Paare.- Schlüssel müssen mit einem Kleinbuchstaben beginnen und dürfen nur Bindestriche, Unterstriche, Kleinbuchstaben und Zahlen enthalten.
- Werte dürfen nur Bindestriche, Unterstriche, Kleinbuchstaben und Zahlen enthalten.
- Beispiel:
--labels=environment=staging,team=saas-runtime
UPGRADEABLE_FROM_RELEASES: (Optional) Eine durch Kommas getrennte Liste mit Release-Namen, die angibt, welche vorhandenen Releases mit dem neuen Release aktualisiert werden können, das Sie erstellen.- Wenn Sie dieses Flag leer lassen, gibt es keine Einschränkungen hinsichtlich der Releases, die auf diesen Release aktualisiert werden können.
- Wenn diese Einschränkung angegeben wird, wird sie bei Anfragen zum Aktualisieren von Einheiten auf diesen Release erzwungen.
INPUT_VARIABLE_DEFAULTS: (Optional) Standardwerte für Eingabevariablen, die für das Blueprint erforderlich sind.- Sie können Standardwerte für Variablen inline oder durch Verweisen auf eine YAML- oder JSON-Datei angeben.
- Hier definierte Variablen können beim Erstellen des Roll-outs überschrieben werden.
Weitere Informationen zum Festlegen von Variablen finden Sie in der Variablendokumentation.
Weitere Informationen zu Releases finden Sie in der Release-Referenz zur Google Cloud CLI.
Roll-out-Art erstellen
Bevor Sie einen Roll-out erstellen können, müssen Sie eine Roll-out-Art erstellen, die als Vorlage für die Bereitstellung Ihrer Version auf Ihren Geräten dient.
Console
Rufen Sie die SaaS-Laufzeit auf.
Klicken Sie auf Roll-out-Arten.
Klicken Sie auf der Seite Rollout-Arten auf Erstellen.
Auf der Seite Roll-out-Art erstellen:
- Geben Sie im Feld Name des Rollout-Typs einen Namen für den Rollout-Typ ein.
- Wählen Sie im Feld Art der Einheit die Art der Einheit aus, für die der Release eingeführt werden soll.
Wählen Sie im Drop-down-Menü Roll-out-Strategie die Strategie aus, die Sie für die Bereitstellung des Releases auf Ihren Geräten verwenden möchten:
- Jeweils ein Standort (einfach): Es wird jeweils ein Standort aktualisiert (ohne Soak-Zeiten). Bis zu 20% der Einheiten werden gleichzeitig aktualisiert.
- Alle auf einmal (einfach): Die Einführung beginnt gleichzeitig an allen Standorten (ideal für Entwicklungsumgebungen und Notfallszenarien).
- Progressiv (schrittweise): Updates werden schrittweise in prozentualen Gruppen exponentiell an mehreren Standorten eingeführt (mit Soak-Zeiten).
- Progressiv (einzelner Standort): Die Einheiten werden in prozentualen Chargen mit längeren Übergangszeiten aktualisiert, um Probleme an einem einzelnen Standort zu erkennen.
Weitere Informationen zu Roll-out-Strategien finden Sie unter Roll-out-Strategien.
Klicken Sie auf Erstellen.
Sie haben eine Roll-out-Art erstellt. Auf der Seite Details zur Roll‑out-Art können Sie die Parameter für Ihre Roll‑out-Art ansehen und bearbeiten.
gcloud
So erstellen Sie eine Roll-out-Art mit der Google Cloud Console:
gcloud beta saas-runtime rollout-kinds create ROLLOUT_KIND_NAME --unit-kind=UNIT_KIND --location=LOCATION --rollout_strategy=ROLLOUT_STRATEGY --error_budget=ERROR_BUDGET --unit_filter=UNIT_FILTER --update_unit_kind_default=UPDATE_UNIT_KIND_DEFAULT
Ersetzen Sie:
ROLLOUT_KIND_NAME: Der Name der Art des Roll-outs.UNIT_KIND: Definiert, auf welche Einheiten Sie Releases anwenden möchten. Releases werden auf alle Einheiten des ausgewählten Einheitentyps angewendet.LOCATION: Der Ort, an dem Sie die Art des Roll-outs erstellen möchten.ROLLOUT_STRATEGY: Definiert die Roll-out-Strategie für Ihren Roll-out-Typ. Mögliche Werte:Google.Cloud.Simple.OneLocationAtATime: Aktualisiert jeweils einen Standort (ohne Übergangszeiten). Bis zu 20% der Einheiten werden gleichzeitig aktualisiert.Google.Cloud.Simple.AllAtOnce: Die Einführung erfolgt an allen Standorten gleichzeitig (ideal für Entwicklungsumgebungen und Notfallszenarien).Google.Cloud.Progressive.Gradual.v1: Updates werden nach und nach in prozentualen Batches exponentiell an mehreren Standorten eingeführt (mit Vorlaufzeiten).Google.Cloud.Progressive.SingleLocation.v1: Aktualisiert Einheiten in prozentualen Batches mit längeren Testzeiten, um Probleme an einem einzelnen Standort zu erkennen.
Weitere Informationen zu Roll-out-Strategien finden Sie unter Roll-out-Strategien.
ERROR_BUDGET: Die Konfiguration für das Fehlerbudget. Wenn die Anzahl der fehlgeschlagenen Einheiten das Maximum vonerror_budget(definiert durchallowed_count,allowed_ratio*total_units) überschreitet, wird der Roll-out pausiert. Wennerror_budgetnicht festgelegt ist, versucht die SaaS-Laufzeit, alle Einheiten zu aktualisieren, unabhängig von der Anzahl der aufgetretenen Fehler.UNIT_FILTER: CEL-formatierter Filterstring, der für Einheiten verwendet wird. Der Filter wird angewendet, um die infrage kommende Einheitenpopulation zu ermitteln. Mit diesem Filter kann der Umfang der Einführung nur verringert werden. Der Umfang des Roll-outs kann dadurch nicht erweitert werden.UPDATE_UNIT_KIND_DEFAULT: Die Konfiguration zum Aktualisieren der Art der Einheit. Standardmäßig wird die Art der Einheit zum Start des Roll-outs aktualisiert. Mögliche Werte:UPDATE_UNIT_KIND_STRATEGY_UNSPECIFIED: Die Aktualisierungsstrategie für die Art der Einheit ist nicht angegeben.UPDATE_UNIT_KIND_STRATEGY_ON_START: Aktualisieren Sie die Strategie für die Art der Einheit beim Start des Roll-outs.UPDATE_UNIT_KIND_STRATEGY_NEVER: Die Strategie für die Art der Einheit wird nie aktualisiert.
Weitere Informationen finden Sie in der Referenz zur Google Cloud CLI unter RolloutKind.
Funktion „Fehlerbudget“
SaaS Runtime enthält als Sicherheitsmaßnahme eine Fehlerbudgetfunktion (ErrorBudget in RolloutKind). Dadurch kann ein Rollout automatisch pausiert werden, wenn die Anzahl oder der Prozentsatz der Fehler bei Geräteupdates (z. B. während der Anwendung der Infrastruktur) einen konfigurierten Grenzwert überschreitet. So wird die Auswirkung potenzieller Probleme während eines Updates begrenzt.
Roll-out erstellen
Nachdem Sie eine Roll-out-Art erstellt haben, können Sie einen Roll-out erstellen, in dem Sie die Version angeben, mit der Sie Ihre Einheiten aktualisieren möchten.
Sobald der Roll-out erstellt wurde, aktualisiert die SaaS-Laufzeit Ihre Einheiten gemäß der in der Art der Einheit definierten Strategie.
Console
Rufen Sie die SaaS-Laufzeit auf.
Klicken Sie auf Rollouts.
Klicken Sie auf der Seite Rollout-Liste auf Erstellen.
Auf der Seite Roll-out erstellen:
- Wählen Sie im Feld Rollout Kind (Roll-out-Art) die Roll-out-Art aus, die beschreibt, wie Ihr Release auf den angegebenen Einheiten bereitgestellt werden soll.
- Geben Sie im Feld Release den Release an, mit dem die Einheiten aktualisiert werden sollen.
- Geben Sie im Feld Rollout-Name einen Namen für den Rollout ein.
Klicken Sie auf Erstellen.
Ihr Roll-out wurde erstellt.
Auf der Seite Details zum globalen Roll-out können Sie die Roll-out-Details überwachen, einschließlich des Roll-out-Status, des Roll-out-Fortschritts (nach Anzahl der Einheiten) und der Roll-out-Fehler.
gcloud
So erstellen Sie einen Roll-out mit der Google Cloud Console:
gcloud beta saas-runtime rollouts create ROLLOUT_NAME --rollout-kind=ROLLOUT_KIND_NAME --release=RELEASE_NAME --location=LOCATION
Ersetzen Sie:
ROLLOUT_NAME: Der Name des Roll-outs.ROLLOUT_KIND_NAME: Definiert, welche Art von Roll-out Sie verwenden möchten, um Releases auf Ihre Einheiten anzuwenden. Releases werden auf alle Einheiten der Art von Einheit angewendet, die in der Art des Roll‑outs definiert ist.RELEASE_NAME: Definiert die Release-Binärdatei, die Sie auf Ihren Geräten bereitstellen möchten.LOCATION: Der Ort, an dem Sie den Roll-out erstellen möchten.
Weitere Informationen finden Sie in der Referenz zur Google Cloud CLI unter Rollout.
Nächste Schritte
- Weitere Informationen zur SaaS-Laufzeit finden Sie unter SaaS-Laufzeit – Übersicht.
- Eine Anleitung finden Sie unter VM mit SaaS-Laufzeit bereitstellen.
- Informationen zur Verwendung von Dienstkonten und zum Zuweisen detaillierter Berechtigungen für diese Konten finden Sie unter SaaS-Laufzeit-Dienstkonten.