Gestire i gate di funzionalità

Che cos'è un gate di funzionalità e perché lo utilizziamo?

Alcuni clienti di Google Distributed Cloud (GDC) con air gap devono completare una procedura di accreditamento per soddisfare una serie di requisiti di conformità. Questi clienti potrebbero avere funzionalità specifiche che devono essere sottoposte a revisione di accreditamento da parte di una terza parte prima di poter essere attivate per i carichi di lavoro di produzione.

Per essere finalizzate, alcune funzionalità potrebbero richiedere più versioni e non devono essere esposte a tutti i clienti finché non sono stabili e pronte. Tuttavia, altri clienti potrebbero voler collaborare con Google per eseguire test proof of concept con la funzionalità non rilasciata.

GDC introduce diversi concetti per contenere le funzionalità prima che siano pronte:

  • Soglia del livello della funzionalità di deployment (soglia di deployment): definisce il livello minimo da utilizzare per l'universo. Questa impostazione viene configurata al momento dell'avvio.

  • Risorsa FeatureGate: definisce la configurazione di primo livello che monitora il livello di maturità predefinito per funzionalità. La risorsa tiene traccia anche di eventuali override delle funzionalità aggiunti dall'operatore.

  • Livello di funzionalità: monitora il livello di maturità a cui è impostata una determinata funzionalità. Una funzionalità viene attivata quando è maggiore o uguale alla soglia di implementazione.

I valori possibili del livello di funzionalità in ordine crescente sono: DEV, TEST, PREVIEW, PRODUCTION e ACCREDITED.

Ad esempio, se la soglia di implementazione è impostata su PRODUCTION, le funzionalità impostate con il livello di funzionalità ACCREDITED o PRODUCTION sono attive. Se la soglia di implementazione è impostata su ACCREDITED, vengono attivate solo le funzionalità di livello ACCREDITED.

Le funzionalità o i livelli non sono gli stessi dei test A/B che potresti vedere nei prodotti di consumo. I gate di funzionalità sono attivati o disattivati per l'intero universo GDC. I feature gate sono progettati per essere attivati al termine della revisione dell'accreditamento e rimanere attivi. Questa non è una configurazione per personalizzare la zona GDC.

I deployment con requisiti di accreditamento devono avere una propria configurazione FeatureGate per organizzazione, che deve corrispondere a quella accreditata per la versione in questione o per le versioni precedenti.

Utilizzo a livello di funzionalità

Esistono tre definizioni di risorse personalizzate correlate alla configurazione di feature gate e livelli:

  • Stage: definisce la soglia di deployment per un cluster. Memorizza la soglia minima di fase del deployment, che viene confrontata con i gate di funzionalità per determinare l'attivazione delle funzionalità.
  • FeatureGate: memorizza la fase predefinita di ogni funzionalità e tiene traccia di eventuali override.
  • SubcomponentOverride: utilizzato dal sistema di funzionalità gate per ignorare la fase predefinita di una funzionalità e abilitarla nella zona. Appare altrove in altri contesti.

Il valore di fase è la soglia minima di deployment archiviata in ogni cluster. Questo deve essere impostato solo durante il bootstrapping e mai modificato dopo. Tutte le funzionalità con un valore di fase della funzionalità uguale o superiore sono attive. L'operatore può attivare o disattivare le funzionalità in diversi modi. Non tutti sono applicabili a ogni funzionalità.

  • Imposta la fase al momento del bootstrap: per maggiori informazioni, consulta il passaggio per impostare la soglia della fase della funzionalità per l'intero deployment.
  • Modifica di una fase della funzionalità utilizzando Infrastructure as Code (IaC) nel cluster di amministrazione principale: Consulta IAC-R0004 per informazioni dettagliate sul flusso di lavoro e sulla struttura delle directory. Modifichi un file all'interno della directory di un componente operativo. Ad esempio, per modificare la funzionalità PGMigration, che è una funzionalità del componente operabile dbs, devi aggiornare il file infrastructure/zonal/zones/ZONE_NAME/root-admin/components/dbs/dbs-common-override.yaml.
  • Modifica di una fase della funzionalità utilizzando IaC nel cluster dell'organizzazione: A seconda del tipo di organizzazione, il cluster è il cluster dell'infrastruttura o il cluster di amministrazione dell'organizzazione. Consulta IAC-R0004 per informazioni dettagliate sul flusso di lavoro e sulla struttura delle directory. Modifichi un file all'interno della directory di un componente utilizzabile. Ad esempio, per modificare la funzionalità PGMigration, che è una funzionalità del componente operabile dbs, devi aggiornare il file infrastructure/zonal/zones/ZONE_NAME/ORG_NAME/components/dbs/dbs-sub-override.yaml.
  • Aggiornamento GDC: per ogni release, il valore predefinito dello stato per funzionalità potrebbe cambiare in base alle nuove valutazioni della classificazione. Tieni presente che i valori predefiniti non influiscono su eventuali override già impostati nell'infrastruttura come codice per una determinata funzionalità.

I gate di funzionalità sono simili a un upgrade. Nessuna modifica a immagini o versioni, ma è effettivamente il passaggio finale di un upgrade per attivare le funzionalità aggiunte in un upgrade precedente. L'attivazione di questa funzionalità potrebbe avvenire settimane o mesi dopo l'upgrade iniziale, a seconda dei tempi di accreditamento. Continua a eseguire regolarmente gli upgrade per scaricare correzioni e patch durante l'accreditamento.

Quando le funzionalità vengono sostituite, ad esempio seguendo la procedura IaC, GDC attiva un riconciliatore per riavviare tutti i pod che dipendono dalla funzionalità. Questa operazione deve essere eseguita durante un periodo di manutenzione, poiché alcune modifiche potrebbero richiedere tempi di inattività.

Alcune funzionalità hanno un runbook del manuale di servizio di accompagnamento che descrive quando deve essere abilitata e cosa cercare dopo l'applicazione dell'override. Questo potrebbe essere per i casi che richiedono più di un riavvio del pod o che devono essere eseguiti dopo l'attivazione di altre funzionalità.

Puoi trovare questi runbook delle funzionalità nel manuale di assistenza allegato al componente azionabile pertinente.

L'elenco dei feature gate attivi è disponibile nella documentazione Fasi delle funzionalità.