In diesem Dokument wird beschrieben, wie Sie ein SaaS-Angebot mit App Lifecycle Manager aktualisieren.
Mit dem App Lifecycle Manager können Sie Updates für mehrere bereitgestellte Einheiten mithilfe von Roll-outs durchführen. Roll-outs richten sich an Einheiten basierend auf ihrer UnitKind. Optional können Filter (unit_filter) angewendet werden, um eine bestimmte Teilmenge von Einheiten mithilfe der Google Cloud CLI anzusprechen. So können Sie verwaltete Updates für Ihre gesamte bereitgestellte Basis durchführen. Ein Rollback kann durchgeführt werden, indem Einheiten auf einen früheren Release aktualisiert werden.
Für Vorgänge an einer einzelnen, bestimmten Einheit verwenden Sie die Steuerelemente auf der Seite Einheitsdetails.
Hinweis
Bevor Sie Ihr App-Angebot aktualisieren, sollten Sie Folgendes tun:
- Der App Lifecycle Manager muss aktiviert sein.
- Prüfen Sie, ob Sie die IAM-Berechtigungen haben, die zum Erstellen eines App-Angebots erforderlich sind.
- App-Angebot erstellen
- UnitKind erstellen.
- Einheit erstellen und bereitstellen
- Bereiten Sie einen neuen oder geänderten Terraform-Blueprint vor.
Release erstellen
Bevor Sie Ihr App-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. Im Grunde enthält ein Release das Update für Ihre Geräte.
Console
Rufen Sie den App Lifecycle Manager auf.
Klicken Sie auf Releases.
Klicken Sie auf der Seite Releases auf Erstellen.
Auf der Seite Release erstellen:
- Geben Sie im Feld Release-Name einen eindeutigen Namen für den Release ein.
- Wählen Sie im Feld Art der Einheit die Art der Einheit aus, mit der dieser Release verknüpft ist.
- Im Bereich Nur Upgrade von (optional) können Sie optional Releases auswählen, von denen aus ein Upgrade von Einheiten auf diesen Release möglich ist. So können Sie Upgradepfade 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 für die Erstellung 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 einen Release erstellt. Sie können sich die Releasedetails auf der Seite Releasedetails ansehen. Sie können beim Erstellen eines Roll-outs auf diesen Release verweisen.
gcloud
So erstellen Sie einen Release mit der Google Cloud Console:
gcloud beta app-lifecycle-manager 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 Release, den Sie erstellen möchten. Diese ID ist Teil des vollständigen Ressourcennamens für den Release.BLUEPRINT_PACKAGE_URI: Der URI des Blueprint-Pakets, das für diesen Release verwendet werden soll. Blueprints sind OCI-Images, die in Artifact Registry oder einer anderen OCI-Registry gehostet werden.- Das Blueprint-Paket enthält die Artefakte, die Sie zum Bereitstellen einer Einheit benötigen, 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 Dokumentation zu Blueprints.
UNIT_KIND: Die ID oder der vollständig qualifizierte Bezeichner für die Art der Einheit, der dieser Release entspricht. UNIT_KIND ist nach dem Erstellen eines Release unveränderlich.LOCATION: Der Standort, an dem Sie den Release erstellen möchten. Dieses Flag stellt einen Fallback-Wert für den Release-Speicherort bereit, wenn der vollständige URI-Pfad nicht angegeben ist. Standardmäßig wird der in Ihrer Google Cloud CLI-Umgebung konfigurierte Standort verwendet.LABELS: (Optional) Labels, die dem Release zur Kategorisierung zugewiesen werden sollen. Labels sind Schlüssel/Wert-Paare.- Schlüssel müssen mit einem Kleinbuchstaben beginnen und dürfen nur Bindestriche, Unterstriche, Kleinbuchstaben und Ziffern enthalten.
- Werte dürfen nur Bindestriche, Unterstriche, Kleinbuchstaben und Ziffern enthalten.
- Beispiel:
--labels=environment=staging,team=app-lifecycle-manager
UPGRADEABLE_FROM_RELEASES: (Optional) Eine durch Kommas getrennte Liste von Release-Namen, die angibt, welche vorhandenen Releases mit dem von Ihnen erstellten neuen Release aktualisiert werden können.- Wenn Sie dieses Flag leer lassen, gibt es keine Einschränkungen dafür, welche Releases auf diesen Release aktualisiert werden können.
- Wenn angegeben, wird diese Einschränkung bei Anfragen zur Aktualisierung von Einheiten auf diesen Release erzwungen.
INPUT_VARIABLE_DEFAULTS: (Optional) Standardwerte für Eingabevariablen, die für den Blueprint erforderlich sind.- Sie können Standardwerte für Variablen inline oder durch Verweis auf eine YAML- oder JSON-Datei angeben.
- Hier definierte Variablen können während der Roll-out-Erstellung überschrieben werden.
Weitere Informationen zum Festlegen von Variablen finden Sie in der Dokumentation zu Variablen.
Weitere Informationen zu Releases finden Sie in der Google Cloud CLI-Referenz zu Release.
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 Ihres Release auf Ihren Einheiten dient.
Console
Rufen Sie den App Lifecycle Manager auf.
Klicken Sie auf Rollout-Arten.
Klicken Sie auf der Seite Rollout-Arten auf Erstellen.
Auf der Seite Roll-out-Art erstellen:
- Geben Sie im Feld Name der Roll-out-Art einen Namen für die Roll-out-Art ein.
- Wählen Sie im Feld Art der Einheit die Art der Einheit aus, die Sie mit dem Release aktualisieren möchten.
Wählen Sie im Drop-down-Menü Roll-out-Strategie die Strategie aus, die Sie für die Bereitstellung des Release auf Ihren Geräten verwenden möchten:
- Jeweils ein Standort (einfach): Es wird jeweils ein Standort aktualisiert (ohne Übergangszeiten). Aktualisiert bis zu 5% der Geräte gleichzeitig.
- Alle auf einmal (einfach): Alle Standorte werden gleichzeitig aktualisiert (ideal für Entwicklungsumgebungen und Notfallszenarien).
- Progressiv (schrittweise): Updates werden schrittweise in prozentualen Batches exponentiell an mehreren Standorten (mit Übergangszeiten) bereitgestellt.
- Progressiv (einzelner Standort): Aktualisiert Einheiten in prozentualen Batches mit längeren Übergangszeiten, 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 app-lifecycle-manager 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 Roll-out-Art.UNIT_KIND: Definiert, auf welche Einheiten Sie Releases anwenden möchten. Releases werden auf alle Einheiten der ausgewählten Art angewendet.LOCATION: Der Standort, an dem Sie die Roll-out-Art erstellen möchten.ROLLOUT_STRATEGY: Definiert die Roll-out-Strategie für Ihre Roll-out-Art. Mögliche Werte:Google.Cloud.Simple.OneLocationAtATime: Aktualisiert jeweils einen Standort (ohne Übergangszeiten). Aktualisiert bis zu 5% der Geräte gleichzeitig.Google.Cloud.Simple.AllAtOnce: Alle Standorte werden gleichzeitig aktualisiert (ideal für Entwicklungsumgebungen und Notfallszenarien).Google.Cloud.Progressive.Gradual.v1: Updates werden schrittweise in prozentualen Batches exponentiell über mehrere Standorte hinweg bereitgestellt (mit Übergangszeiten).Google.Cloud.Progressive.SingleLocation.v1: Aktualisiert Einheiten in prozentualen Batches mit verlängerten Übergangszeiten, um Probleme innerhalb eines einzelnen Standorts 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 den maximalen Wert vonerror_budgetüberschreitet (definiert durchallowed_count,allowed_ratio*total_units), wird der Roll-out pausiert. Wennerror_budgetnicht festgelegt ist, versucht App Lifecycle Manager, 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 Grundgesamtheit zu bestimmen. Dieser Filter kann den Umfang des Roll-outs nur verringern. Der Umfang des Roll-outs kann nicht erweitert werden.UPDATE_UNIT_KIND_DEFAULT: Die Konfiguration zum Aktualisieren des Einheitentyps. Standardmäßig wird die Art der Einheit beim 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 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 Google Cloud CLI-Referenz zu RolloutKind.
Fehlerbudget-Funktion
App Lifecycle Manager enthält eine Fehlerbudgetfunktion (ErrorBudget in RolloutKind) als Schutzmaßnahme. Dadurch kann ein Roll-out automatisch pausiert werden, wenn die Anzahl oder der Prozentsatz der Fehler bei der Aktualisierung von Einheiten (z. B. während der Infrastrukturanwendung) einen konfigurierten Schwellenwert überschreitet. So lassen sich die Auswirkungen potenzieller Probleme während eines Updates begrenzen.
Roll-out erstellen
Nachdem Sie eine Roll-out-Art erstellt haben, können Sie einen Roll-out erstellen, der den Release angibt, mit dem Sie Ihre Einheiten aktualisieren möchten.
Nachdem der Roll-out erstellt wurde, aktualisiert App Lifecycle Manager Ihre Einheiten gemäß der in der Einheitenart definierten Strategie.
Console
Rufen Sie den App Lifecycle Manager auf.
Klicken Sie auf Roll-outs.
Klicken Sie auf der Seite Rollout-Liste auf Erstellen.
Auf der Seite Roll-out erstellen:
- Wählen Sie im Feld Roll-out-Art die Roll-out-Art aus, die beschreibt, wie Ihr Release in 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 das Roll-out ein.
Klicken Sie auf Erstellen.
Ihr Roll-out wurde erstellt.
Auf der Seite Details zum globalen Roll‑out können Sie Roll‑out-Details wie den Roll‑out-Status, den Roll‑out-Fortschritt (nach Anzahl der Einheiten) und Roll‑out-Fehler überwachen.
gcloud
So erstellen Sie einen Roll-out mit der Google Cloud Console:
gcloud beta app-lifecycle-manager 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 Roll-out-Art 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 Standort, an dem Sie den Roll-out erstellen möchten.
Weitere Informationen finden Sie in der Google Cloud CLI-Referenz zu Rollout.
Nächste Schritte
- Weitere Informationen zum App Lifecycle Manager finden Sie in der Übersicht über den App Lifecycle Manager.
- Eine Anleitung finden Sie unter MySQL-Instanz mit App Lifecycle Manager bereitstellen.
- Informationen zur Verwendung von Dienstkonten und zum Erteilen detaillierter Berechtigungen für diese Konten finden Sie unter App Lifecycle Manager-Dienstkonten.