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
projectViewsfornisce l'accesso di sola lettura regionale alla risorsa progetto globale. - Immagini sistema operativo: l'endpoint
imageViewsfornisce 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
projectViewseimageViewsalla 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
- Scopri come accedere alle risorse globali a livello regionale per l'alta disponibilità.
- Scopri come risolvere i problemi relativi alle visualizzazioni regionali delle risorse globali.