Questo documento descrive come eseguire il rollout di una release utilizzando Runtime SaaS.
Runtime SaaS consente gli aggiornamenti su più unità di cui è stato eseguito il provisioning utilizzando
i rollout. I rollout hanno come target le unità in base al relativo UnitKind e possono facoltativamente
applicare filtri (unit_filter) per scegliere come target un sottoinsieme specifico di unità utilizzando Google Cloud CLI . Ciò consente
aggiornamenti gestiti in tutta la base di deployment. Un rollback può essere eseguito
aggiornando le unità a una release precedente.
Per le operazioni su una singola unità specifica, utilizza i controlli disponibili nella pagina Dettagli unità.
Prima di iniziare
Prima di aggiornare la tua offerta SaaS, devi:
- Assicurati di aver attivato Runtime SaaS.
- Assicurati di disporre delle autorizzazioni IAM necessarie per creare un'offerta SaaS.
- Crea un'offerta SaaS.
- Crea un UnitKind.
- Crea e fornisci un'unità.
- Prepara un progetto iniziale Terraform nuovo o modificato.
Crea una release
Prima di poter aggiornare la tua offerta SaaS, devi creare una release. Una release rappresenta una versione specifica dell'applicazione SaaS definita da un pacchetto blueprint e dalle relative configurazioni. In sostanza, una release contiene l'aggiornamento delle unità.
Console
Vai a Runtime SaaS.
Fai clic su Uscite.
Nella pagina Uscite, fai clic su Crea.
Nella pagina Crea release:
- Nella casella Nome release, inserisci un nome univoco per la release.
- Nella casella Tipo di unità, seleziona il tipo di unità a cui è associata questa release.
- Nella sezione Eseguibile solo l'upgrade da (facoltativo), puoi selezionare facoltativamente le release da cui è possibile eseguire l'upgrade delle unità a questa release. In questo modo puoi controllare i percorsi di upgrade.
- Nei passaggi Crea blueprint e Archivia blueprint, seleziona o crea il blueprint. Per informazioni dettagliate sulle opzioni di creazione dei blueprint, consulta la documentazione sui blueprint.
Nella sezione Variabili (facoltativo), puoi impostare facoltativamente le variabili di input per questa release. Per ulteriori informazioni sull'impostazione delle variabili, consulta la documentazione sulle variabili.
Fai clic su Crea.
Hai creato una release. Puoi visualizzare i dettagli della release nella pagina Dettagli della release. Potrai fare riferimento a questa release quando crei un'implementazione.
gcloud
Per creare una release utilizzando la console Google Cloud :
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,...]]
Sostituisci:
RELEASE_NAME: l'ID della release che vuoi creare. Questo farà parte del nome completo della risorsa per la release.BLUEPRINT_PACKAGE_URI: l'URI del pacchetto blueprint da utilizzare per questa release. I blueprint sono immagini OCI ospitate in Artifact Registry o in un altro registro OCI.- Il pacchetto del progetto contiene gli artefatti necessari per il provisioning di un'unità e include i metadati sul motore utilizzato (Terraform), nonché la versione.
- Se ometti il nome host nell'URI, viene utilizzato per impostazione predefinita il percorso regionale di Artifact Registry (ad esempio
us-east1-docker.pkg.dev). - Per saperne di più sulla creazione di blueprint, consulta la documentazione sui blueprint.
UNIT_KIND: l'ID o l'identificatore completo del tipo di unità a cui corrisponde questa release. UNIT_KIND è immutabile dopo la creazione di una release.LOCATION: la località in cui vuoi creare la release. Questo flag fornisce un valore di riserva per la posizione di rilascio se non viene fornito il percorso URI completo. Il valore predefinito è la località configurata nell'ambiente Google Cloud CLI.LABELS: (facoltativo) etichette da applicare alla release per la classificazione. Le etichette sono coppie chiave-valore.- Le chiavi devono iniziare con un carattere minuscolo e contenere solo trattini, trattini bassi, caratteri minuscoli e numeri.
- I valori devono contenere solo trattini, trattini bassi, caratteri minuscoli e numeri.
- Ad esempio:
--labels=environment=staging,team=saas-runtime
UPGRADEABLE_FROM_RELEASES: (facoltativo) un elenco separato da virgole di nomi delle release che specifica quali release esistenti possono essere aggiornate con la nuova release che crei.- Se lasci vuoto questo flag, non ci sono vincoli sulle release che possono essere aggiornate a questa release.
- Se fornito, le richieste di aggiornamento delle unità a questa release applicheranno questo vincolo.
INPUT_VARIABLE_DEFAULTS: (facoltativo) valori predefiniti per le variabili di input richieste dal progetto.- Puoi specificare i valori predefiniti delle variabili inline o facendo riferimento a un file YAML o JSON.
- Le variabili definite qui possono essere sostituite durante la creazione del lancio.
Per saperne di più sull'impostazione delle variabili, consulta la documentazione sulle variabili.
Per saperne di più sulle release, consulta il riferimento a Release di Google Cloud CLI.
Crea un tipo di implementazione
Prima di poter creare un'implementazione, devi creare un tipo di implementazione che fungerà da modello per la modalità di deployment della release nelle unità.
Console
Vai a Runtime SaaS.
Fai clic su Tipi di implementazione.
Nella pagina Tipi di implementazione, fai clic su Crea.
Nella pagina Crea un tipo di implementazione:
- Nella casella Nome tipo di implementazione, inserisci un nome per il tipo di implementazione.
- Nella casella Tipo di unità, seleziona il tipo di unità che descrive il tipo di unità per cui vuoi eseguire l'implementazione della release.
Nel menu a discesa Strategia di implementazione, seleziona la strategia che vuoi utilizzare per eseguire il deployment della release sulle tue unità:
- Una località alla volta (semplice): aggiorna una località alla volta (senza tempi di attesa). Aggiorna fino al 20% delle unità contemporaneamente.
- Tutto in una volta (semplice): tutte le località iniziano l'implementazione contemporaneamente (ideale per ambienti di sviluppo e scenari di emergenza).
- Progressiva (graduale): implementa gradualmente gli aggiornamenti in batch percentuali in modo esponenziale in più posizioni (con tempi di attesa).
- Progressiva (singola località): aggiorna le unità in batch percentuali con tempi di soak estesi per rilevare i problemi all'interno di una singola località.
Per saperne di più sulle strategie di implementazione, consulta Strategie di implementazione.
Fai clic su Crea.
Hai creato un tipo di implementazione. Nella pagina Dettagli tipo di implementazione, puoi visualizzare e modificare i parametri per il tipo di implementazione.
gcloud
Per creare un tipo di implementazione utilizzando la console Google Cloud :
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
Sostituisci:
ROLLOUT_KIND_NAME: il nome del tipo di implementazione.UNIT_KIND: definisce a quali unità vuoi applicare le release. Le release vengono applicate a tutte le unità del tipo di unità selezionato.LOCATION: la località in cui vuoi creare il tipo di implementazione.ROLLOUT_STRATEGY: definisce la strategia di implementazione per il tipo di implementazione. I valori possibili sono:Google.Cloud.Simple.OneLocationAtATime: aggiorna una posizione alla volta (senza tempi di sospensione). Aggiorna fino al 20% delle unità contemporaneamente.Google.Cloud.Simple.AllAtOnce: Tutte le località iniziano l'implementazione contemporaneamente (ideale per ambienti di sviluppo e scenari di emergenza).Google.Cloud.Progressive.Gradual.v1: implementa gradualmente gli aggiornamenti in batch percentuali in modo esponenziale in più posizioni (con tempi di soak).Google.Cloud.Progressive.SingleLocation.v1: aggiorna le unità in batch percentuali con tempi di soak estesi per rilevare problemi all'interno di una singola posizione.
Per saperne di più sulle strategie di implementazione, consulta Strategie di implementazione.
ERROR_BUDGET: La configurazione per il budget di errore. Se il numero di unità non riuscite supera il valore massimo dierror_budget(definito daallowed_count,allowed_ratio*total_units), l'implementazione verrà messa in pausa. Seerror_budgetnon è impostato, il runtime SaaS tenterà di aggiornare tutte le unità indipendentemente dal numero di errori riscontrati.UNIT_FILTER: stringa di filtro formattata CEL utilizzata per le unità. Il filtro verrà applicato per determinare la popolazione di unità idonee. Questo filtro può solo ridurre l'ambito dell'implementazione. Non può espandere l'ambito del lancio.UPDATE_UNIT_KIND_DEFAULT: La configurazione per l'aggiornamento del tipo di unità. Per impostazione predefinita, il tipo di unità verrà aggiornato all'inizio dell'implementazione. I valori possibili sono:UPDATE_UNIT_KIND_STRATEGY_UNSPECIFIED: La strategia di aggiornamento del tipo di unità non è specificata.UPDATE_UNIT_KIND_STRATEGY_ON_START: Aggiorna la strategia del tipo di unità all'inizio dell'implementazione.UPDATE_UNIT_KIND_STRATEGY_NEVER: Non aggiornare mai la strategia del tipo di unità.
Per saperne di più, consulta
RolloutKind
Riferimento a Google Cloud CLI.
Funzionalità del budget di errore
Runtime SaaS include una funzionalità di budget di errore (ErrorBudget in
RolloutKind) come misura di salvaguardia. In questo modo, un'implementazione può essere sospesa automaticamente se il numero o la percentuale di errori di aggiornamento delle unità (durante l'applicazione dell'infrastruttura, ad esempio) supera una soglia configurata, contribuendo a limitare l'impatto di potenziali problemi durante un aggiornamento.
Crea un'implementazione
Dopo aver creato un tipo di implementazione, puoi creare un'implementazione che specifichi la release con cui vuoi aggiornare le unità.
Una volta creata l'implementazione, Runtime SaaS aggiorna le unità in base alla strategia definita nel tipo di unità.
Console
Vai a Runtime SaaS.
Fai clic su Implementazioni.
Nella pagina Elenco di implementazione, fai clic su Crea.
Nella pagina Crea un'implementazione:
- Nella casella Tipo di implementazione, seleziona il tipo di implementazione che descrive in dettaglio come eseguire l'implementazione della release nelle unità specificate.
- Nella casella Release, specifica la release con cui aggiornare le unità.
- Nella casella Nome rollout, inserisci un nome per il rollout.
Fai clic su Crea.
L'implementazione è stata creata.
Nella pagina Dettagli implementazione globale, puoi monitorare i dettagli dell'implementazione, tra cui lo stato, l'avanzamento (per conteggio unità) e gli errori.
gcloud
Per creare un rollout utilizzando la console Google Cloud :
gcloud beta saas-runtime rollouts create ROLLOUT_NAME --rollout-kind=ROLLOUT_KIND_NAME --release=RELEASE_NAME --location=LOCATION
Sostituisci:
ROLLOUT_NAME: il nome del lancio.ROLLOUT_KIND_NAME: definisce il tipo di implementazione che vuoi utilizzare per applicare le release alle tue unità. Le release vengono applicate a tutte le unità del tipo di unità definito nel tipo di implementazione.RELEASE_NAME: definisce il binario di rilascio che vuoi eseguire il deployment nelle tue unità.LOCATION: la località in cui vuoi creare il rollout.
Per saperne di più, consulta
Rollout
Riferimento a Google Cloud CLI.
Passaggi successivi
- Per saperne di più su Runtime SaaS, consulta la panoramica di Runtime SaaS.
- Per provare un tutorial, consulta Esegui il deployment di una VM con Runtime SaaS.
- Per capire come vengono utilizzati i service account e come concedere autorizzazioni granulari per questi account, consulta Service account del servizio Runtime SaaS.