Utilizza le visualizzazioni regionali per letture del control plane resilienti

Le dipendenze del control plane sono le API e i servizi di metadati che gestiscono le definizioni delle risorse nelle tue applicazioni. Per creare applicazioni resilienti e ad alta affidabilità e per automatizzare i workflow di deployment su Compute Engine, è fondamentale isolare queste dipendenze. Sebbene gli endpoint API globali forniscano una elevata coerenza in tutte le regioni, qualsiasi picco di latenza transitorio o interruzione nel control plane globale o in una regione remota può ritardare o bloccare i servizi locali.

Per creare applicazioni affidabili in grado di sopravvivere alle interruzioni delle API globali e operare in modo indipendente all'interno di ogni regione, puoi configurare i tuoi servizi in modo che eseguano query sulle visualizzazioni regionali delle risorse globali. Utilizzando gli endpoint API di sola lettura regionalizzati per leggere le definizioni delle risorse, l'applicazione comunica rigorosamente con il control plane per una regione specifica. Questo isolamento degli errori regionali garantisce che i tuoi servizi rimangano altamente disponibili e reattivi anche in caso di interruzioni globali.

Tipi di risorse supportati

Gli endpoint delle visualizzazioni regionali sono disponibili per le seguenti risorse globali:

  • Progetti: l'endpoint projectViews fornisce l'accesso di sola lettura regionale alla risorsa progetto globale.
  • Immagini sistema operativo: l'endpoint imageViews fornisce l'accesso di sola lettura regionale alle risorse delle immagini sistema operativo globali.

Limitazioni

I metadati di tutte le risorse globali vengono archiviati in un database globale centrale. Quando crei, leggi, aggiorni o elimini una risorsa utilizzando gli endpoint API globali standard, Compute Engine richiede la lettura e la scrittura direttamente nel database globale centrale, fornendo una elevata coerenza.

Gli endpoint delle visualizzazioni regionali leggono i metadati delle risorse dalle repliche di sola lettura regionali del database globale centrale. Poiché le modifiche vengono copiate in queste repliche regionali in modo asincrono, potresti riscontrare i seguenti comportamenti quando esegui query sulle visualizzazioni regionali:

  • Leggeri ritardi: quando crei, aggiorni o elimini una risorsa a livello globale, possono essere necessari fino a 60 secondi prima che la modifica venga copiata in tutti gli endpoint delle visualizzazioni regionali. Durante questa breve finestra, la lettura da una visualizzazione regionale potrebbe restituire dati leggermente meno recenti.
  • Fallback automatico: se richiedi una risorsa da una visualizzazione regionale prima che la copia nella regione sia completata, Compute Engine legge automaticamente direttamente dal database globale centrale in modo che la richiesta vada a buon fine.

Differenze tra la visualizzazione regionale e l'API globale

Le seguenti schede riepilogano le differenze tra gli endpoint delle visualizzazioni regionali e gli endpoint API globali standard per ogni tipo di risorsa:

Progetti

Le seguenti tabelle riepilogano le differenze tra gli endpoint delle visualizzazioni regionali e gli endpoint API globali standard per la risorsa progetto:

Funzionalità API globale API delle visualizzazioni regionali
Endpoint Globale Regionale
URL risorsa /projects/PROJECT_ID /projects/PROJECT_ID/regions/REGION/projectViews
Dominio in errore Globale Isolato nella regione specificata
Metodi supportati Lettura e scrittura Sola lettura (Get)
Quota API Utilizza i bucket di quota di lettura e scrittura delle API globali Utilizza i bucket di quota di lettura delle API regionali
Coerenza read-after-write Coerenza elevata (letture dal database globale centrale) Coerenza finale (letture dalla replica regionale)
Comportamento del campo della quota Restituisce l'array quota, utilizzando i fanout tra regioni per fornire dati sull'utilizzo della quota in tempo reale in tutte le regioni e le zone. L'quota array è escluso dall'oggetto Project restituito. Poiché l'endpoint projectViews legge rigorosamente da una replica regionale e non esegue fanout tra regioni per raccogliere le metriche delle quote, l'array quota non viene restituito. Per i limiti di configurazione delle quote e le metriche di utilizzo in tempo reale accurate, esegui una query sull'endpoint globale projects.get.

Immagini sistema operativo

Le seguenti tabelle riepilogano le differenze tra gli endpoint delle visualizzazioni regionali e gli endpoint API globali standard per la risorsa immagine sistema operativo:

Funzionalità API globale API delle visualizzazioni regionali
Endpoint Globale Regionale
URL risorsa /projects/PROJECT_ID/global/images /projects/PROJECT_ID/regions/REGION/imageViews
Dominio in errore Globale Isolato nella regione specificata
Metodi supportati Lettura e scrittura Sola lettura (Get e List)
Quota API Utilizza i bucket di quota di lettura e scrittura delle API globali Utilizza i bucket di quota di lettura delle API regionali
Coerenza read-after-write Coerenza elevata (letture dal database globale centrale) Coerenza finale (letture dalla replica regionale)

Prezzi

L'accesso alle visualizzazioni regionali tramite gli endpoint API di sola lettura regionali non comporta costi aggiuntivi. Come le richieste API Compute Engine globali standard, le richieste agli endpoint delle visualizzazioni regionali utilizzano le quote API standard del progetto, in particolare le quote di lettura delle API regionali, ma non comportano costi aggiuntivi.

Best practice per l'alta disponibilità

Per massimizzare la resilienza delle applicazioni, evitare un carico sproporzionato del control plane ed evitare di creare hotspot a livello di singola regione, segui queste pratiche di affidabilità quando configuri sistemi automatizzati e workload client:

  • Esegui query sulle regioni locali per ridurre l'area interessata: invia le richieste API projectViews e imageViews alla regione esatta in cui viene eseguito il workload client o il cluster di deployment. Per i workload a livello di zona, utilizza la regione principale. La localizzazione delle letture garantisce che un'interruzione di rete o un'interruzione in un'altra regione non influisca sul servizio locale.
  • Rileva dinamicamente le stringhe delle regioni: non codificare in modo rigido stringhe di regioni predefinite specifiche nelle librerie client condivise o nei modelli di deployment. Rileva invece dinamicamente la regione di esecuzione corrente del workload dal relativo ambiente di runtime locale in modo che i failover multiregionali funzionino in modo trasparente.
  • Utilizza l'isolamento delle quote regionali rispetto ai workload concorrenti: Compute Engine applica i limiti di frequenza delle API per regione. I picchi di traffico o gli script non controllati in una regione utilizzano la quota di lettura dal bucket della regione specifica senza influire sulla disponibilità delle API o attivare limiti di frequenza (429 Too Many Requests) nelle altre regioni critiche.

Passaggi successivi