Componenti di affidabilità in Google Cloud

Last reviewed 2024-11-20 UTC

I servizi di infrastruttura di Google Cloud vengono eseguiti in località in tutto il mondo. Le località sono suddivise in domini di errore chiamati regioni e zone, che sono i componenti di base per progettare un'infrastruttura affidabile per i tuoi carichi di lavoro cloud.

Un dominio in errore è una risorsa o un gruppo di risorse che può avere esito negativo indipendentemente da altre risorse. Una VM Compute Engine autonoma è un esempio di risorsa che è un dominio in errore. Una regione o una zona Google Cloud è un esempio di dominio in errore costituito da un gruppo di risorse. Quando un'applicazione viene distribuita in modo ridondante tra i domini in errore, può raggiungere un livello aggregato di disponibilità superiore a quello fornito da ciascun dominio in errore.

Questa parte della guida all'affidabilità dell'infrastruttura Google Cloud descrive i componenti di base dell'affidabilità in Google Cloud e in che modo incidono sulla disponibilità delle risorse cloud.

Aree geografiche e zone

Le regioni sono aree geografiche indipendenti costituite da zone. Le zone e le regioni sono astrattive logiche delle risorse fisiche sottostanti. Una regione è composta da tre o più zone ospitate in tre o più data center fisici. Le regioni Messico, Osaka e Montréal hanno tre zone in uno o due data center fisici. Queste regioni sono in fase di espansione in almeno tre data center fisici. Quando architetti le tue soluzioni in Google Cloud, tieni conto delle indicazioni riportate in Località cloud, SLA (accordi sul livello del servizio) della piattaforma Google Cloud, e nella documentazione del prodotto Google Cloud appropriata.

Disponibilità della piattaforma

L'infrastruttura Google Cloud è progettata per tollerare e recuperare da errori. Google investe continuamente in approcci innovativi per mantenere e migliorare l'affidabilità di Google Cloud. Le seguenti funzionalità dell'infrastruttura Google Cloud contribuiscono a fornire una piattaforma affidabile per i tuoi carichi di lavoro cloud:

  • Regioni geograficamente separate per mitigare gli effetti di calamità naturali e interruzioni a livello di regione sui servizi globali.
  • Redundanza e replica hardware per evitare single point of failure.
  • Migrazione live delle risorse durante gli eventi di manutenzione. Ad esempio, durante la manutenzione pianificata dell'infrastruttura, le VM Compute Engine possono essere spostate su un altro host nella stessa zona utilizzando la migrazione live.
  • Una base di infrastruttura sicura "by design" per l'infrastruttura fisica e il software su cui viene eseguito Google Cloud, nonché controlli di sicurezza operativa per proteggere i dati e i carichi di lavoro. Per ulteriori informazioni, consulta la Panoramica sulla progettazione della sicurezza dell'infrastruttura Google.
  • Una rete backbone ad alte prestazioni che utilizza un approccio avanzato di networking software-defined (SDN) alla gestione della rete, con servizi di memorizzazione nella cache perimetrale per offrire prestazioni coerenti e scalabili.
  • Monitoraggio e generazione di report continui. Puoi visualizzare lo stato dei servizi Google Cloud in ogni località utilizzando la dashboard di Google Cloud Service Health.
  • Eventi di test di ripristino di emergenza (DiRT) annuali a livello di azienda per garantire che i servizi Google Cloud e le operazioni aziendali interne continuino a funzionare durante un disastro.
  • Un approccio di gestione del cambiamento che enfatizza l'affidabilità in tutte le fasi del ciclo di vita dello sviluppo del software per eventuali modifiche alla piattaforma e ai servizi Google Cloud.

L'infrastruttura Google Cloud è progettata per supportare i seguenti livelli di disponibilità target per la maggior parte dei carichi di lavoro dei clienti:

Località di deployment % di disponibilità (tempo di attività) Tempo di inattività massimo stimato
Zona singola Tre nove: 99,9% 43,2 minuti in un mese di 30 giorni
Più zone in una regione Quattro nove: 99,99% 4,3 minuti in un mese di 30 giorni
Più regioni 5 nove: 99,999% 26 secondi in un mese di 30 giorni

Le percentuali di disponibilità nella tabella precedente sono target. Gli accordi sul livello del servizio (SLA) relativi all'uptime per servizi Google Cloud specifici potrebbero essere diversi da questi obiettivi di disponibilità. Ad esempio, il SLA di uptime per un'istanza Bigtable dipende dal numero di cluster, dalla loro distribuzione nelle località e dal criterio di routing che configuri.

Lo SLA di uptime minimo per un'istanza Bigtable con cluster in tre o più regioni è del 99,999% se è configurato il criterio di routing a cluster multipli. Tuttavia, se è configurato il criterio di routing a cluster singolo, lo SLA (accordo sul livello del servizio) con uptime minimo è del 99,9%, indipendentemente dal numero di cluster e dalla loro distribuzione.

I diagrammi in questa sezione mostrano istanze Bigtable con dimensioni del cluster diverse e le conseguenti differenze negli SLA di uptime.

Cluster singolo

Il seguente diagramma mostra un'istanza Bigtable a cluster singolo con uno SLA di tempo di attività minimo del 99, 9%:

Istanze Bigtable a cluster singolo (SLA di disponibilità minima: 99,9%).

Più cluster

Il seguente diagramma mostra un'istanza Bigtable multi-cluster in più zone all'interno di una singola regione, con routing a cluster multipli (SLA di uptime minimo: 99,99%):

Istanza Bigtable multicluster in più zone all'interno di una singola regione, con routing a cluster multipli (SLA di uptime minimo: 99,99%).

Più cluster

Il seguente diagramma mostra un'istanza Bigtable multi-cluster in tre regioni con routing a cluster multipli (SLA di uptime minimo: 99, 999%):

Istanze Bigtable multi-cluster in tre regioni, con routing a cluster multipli (SLA di tempo di attività minimo: 99,999%).

Disponibilità dell'infrastruttura aggregata

Per eseguire le tue applicazioni in Google Cloud, utilizzi risorse di infrastruttura come VM e database. Queste risorse di infrastruttura costituiscono insieme lo stack dell'infrastruttura della tua applicazione.

Il seguente diagramma mostra un esempio di un'infrastruttura in Google Cloud e l'accordo sul livello del servizio (SLA) di disponibilità per ogni risorsa nello stack:

Deployment dual-zone.

Questo stack di infrastruttura di esempio include le seguenti risorse Google Cloud:

  • Un bilanciatore del carico delle applicazioni esterno regionale riceve e risponde alle richieste degli utenti.
  • Un gruppo di istanze gestite (MIG) regionale è il backend per il bilanciatore del carico delle applicazioni esterno regionale. Il gruppo di istanze gestite contiene due VM Compute Engine in zone diverse. Ogni VM ospita un'istanza di un server web.
  • Un bilanciatore del carico interno gestisce la comunicazione tra il server web e le istanze del server di applicazioni.
  • Un secondo gruppo di istanze gestite regionale è il backend per il bilanciatore del carico interno. Questo gruppo di istanze gestite ha due VM Compute Engine in zone diverse. Ogni VM ospita un'istanza di un server di applicazioni.
  • Un'istanza Cloud SQL configurata per l'alta disponibilità è il database per l'applicazione. L'istanza di database principale viene replicata in modo sincrono in un'istanza di database di riserva.

La disponibilità aggregata che puoi aspettarti da uno stack di infrastruttura come quello dell'esempio precedente dipende dai seguenti fattori:

SLA (accordi sul livello del servizio) di Google Cloud

Gli SLA di uptime dei servizi Google Cloud che utilizzi nello stack dell'infrastruttura influiscono sulla disponibilità aggregata minima che puoi aspettarti dallo stack.

Le seguenti tabelle presentano un confronto degli SLA di uptime per alcuni servizi:

Servizi di calcolo SLA per il tempo di attività mensile Tempo di riposo massimo stimato in un mese di 30 giorni
VM di Compute Engine 99,9% 43,2 minuti
Pod GKE Autopilot in più zone 99,9% 43,2 minuti
Servizio Cloud Run 99,95% 21,6 minuti
Servizi di database SLA per il tempo di attività mensile Tempo di riposo massimo stimato in un mese di 30 giorni
Instanza Cloud SQL per PostgreSQL (versione Enterprise) 99,95% 21,6 minuti
Instanza AlloyDB per PostgreSQL 99,99% 4,3 minuti
Istanze Spanner multiregione 99,999% 26 secondi

Per gli SLA di altri servizi Google Cloud, consulta gli accordi sul livello del servizio di Google Cloud.

Come mostrano le tabelle precedenti, i servizi Google Cloud che scegli per ogni livello dello stack di infrastruttura influiscono direttamente sull'uptime complessivo che puoi aspettarti dallo stack di infrastruttura. Per aumentare la disponibilità prevista di un carico di lavoro di cui è stato eseguito il deployment in una risorsa Google Cloud, puoi eseguire il provisioning di istanze ridondanti della risorsa, come descritto nella sezione successiva.

Ridondanza delle risorse

La ridondanza delle risorse indica il provisioning di due o più istanze identiche di una risorsa e il deployment dello stesso carico di lavoro su tutte le risorse del gruppo. Ad esempio, per ospitare il livello web di un'applicazione, puoi eseguire il provisioning di un gruppo di istanze gestite contenente più VM Compute Engine identiche.

Se distribuisci un gruppo di risorse in modo ridondante su più domini di errore, ad esempio due zone Google Cloud, la disponibilità delle risorse che puoi aspettarti da questo gruppo è superiore allo SLA di uptime di ogni risorsa nel gruppo. Questa maggiore disponibilità è dovuta al fatto che la probabilità che tutte le risorse del gruppo si guastino contemporaneamente è inferiore alla probabilità che le risorse di un singolo dominio in errore abbiano un errore coordinato.

Ad esempio, se lo SLA (accordo sul livello del servizio) di disponibilità per una risorsa è del 99,9%, la probabilità che la risorsa non funzioni è 0,001 (1 meno lo SLA). Se distribuisci un carico di lavoro su due istanze di questa risorsa di cui è stato eseguito il provisioning in domini di errore distinti, la probabilità che entrambe le risorse non funzionino contemporaneamente è 0,000001 (ovvero 0,001 x 0,001). Questa probabilità di guasto si traduce in una disponibilità teorica del 99,9999% per il gruppo di due risorse. Tuttavia, la disponibilità effettiva che puoi aspettarti è limitata alla disponibilità di destinazione della posizione di implementazione: 99,9% se le risorse si trovano in una singola zona Google Cloud, 99,99% per un'implementazione multizona e 99,999% se le risorse ridondanti sono distribuite su più regioni.

Profondità dello stack

La profondità di uno stack di infrastruttura è il numero di livelli (o livelli) distinti nello stack. Ogni livello in uno stack di infrastruttura contiene risorse che forniscono una funzione distinta per l'applicazione. Ad esempio, il livello intermedio di uno stack a tre livelli potrebbe utilizzare VM Compute Engine o un cluster GKE per ospitare i server delle applicazioni. Ogni livello di un livello di infrastruttura ha in genere una stretta interdipendenza con i livelli adiacenti. Ciò significa che se un livello della pila non è disponibile, l'intera pila diventa non disponibile.

Puoi calcolare la disponibilità aggregata prevista di uno stack di infrastrutture a N livelli utilizzando la seguente formula:

$$ tier1\_availability * tier2\_availability * tierN\_availability $$

Ad esempio, se ogni livello di uno stack a tre livelli è progettato per fornire una disponibilità del 99,9%, la disponibilità aggregata dello stack è approssimativamente del 99,7% (0,999 x 0,999 x 0,999). Ciò significa che la disponibilità aggregata di un livello è inferiore alla disponibilità del livello che offre la dispositività minima.

Con l'aumento del numero di livelli interdipendenti in uno stack, la disponibilità aggregata dello stack diminuisce, come mostrato nella tabella seguente. Ogni impostazione di esempio nella tabella ha un numero diverso di livelli e si presume che ogni livello offra una disponibilità del 99,9%.

Livello Pila A Pila B Pila C
Frontend 99,9% 99,9% 99,9%
Livello di applicazione 99,9% 99,9% 99,9%
Livello intermedio 99,9% 99,9%
Livello dei dati 99,9%
Disponibilità aggregata dello stack 99,8% 99,7% 99,6%
Tempo di riposo massimo stimato dello stack in un mese di 30 giorni 86 minuti 130 minuti 173 minuti

Riepilogo delle considerazioni sul design

Quando progetti le tue applicazioni, considera la disponibilità aggregata dello stack dell'infrastruttura Google Cloud.

  • La disponibilità di ogni risorsa Google Cloud nello stack dell'infrastruttura influisce sulla disponibilità aggregata dello stack. Quando scegli i servizi Google Cloud per creare il tuo stack di infrastruttura, prendi in considerazione lo SLA di disponibilità dei servizi.
  • Per migliorare la disponibilità della funzione (ad esempio, calcolo o database) fornita da una risorsa, puoi eseguire il provisioning di istanze ridondanti della risorsa. Quando progetti un'architettura con risorse ridondanti, oltre ai vantaggi in termini di disponibilità, devi considerare anche i potenziali effetti su complessità operativa, latenza e costi.
  • Il numero di livelli in uno stack di infrastruttura (ovvero la profondità dello stack) ha una relazione inversa con la disponibilità aggregata dello stack. Tieni presente questa relazione quando progetti o modifichi la tua suite.

Per esempi di calcolo della disponibilità aggregata, consulta le seguenti sezioni:

Ambiti di località

L'ambito della località di una risorsa Google Cloud determina l'entità in cui un errore dell'infrastruttura può influire sulla risorsa. La maggior parte delle risorse che provisioni in Google Cloud ha uno dei seguenti ambiti di località: zonale, regionale, multiregionale o globale.

L'ambito geografico di alcuni tipi di risorse è fisso, ovvero non puoi scegliere o modificare l'ambito geografico. Ad esempio, le reti Virtual Private Cloud (VPC) sono risorse globali, mentre le macchine virtuali (VM) Compute Engine sono risorse zonali. Per alcune risorse, puoi scegliere l'ambito della località durante il provisioning della risorsa. Ad esempio, quando crei un cluster Google Kubernetes Engine (GKE), puoi scegliere di creare un cluster GKE zonale o regionale.

Le sezioni seguenti descrivono in modo più dettagliato gli ambiti di località.

Risorse di zona

Le risorse di zona vengono implementate all'interno di un'unica zona in una regione Google Cloud. Di seguito sono riportati alcuni esempi di risorse zonali. Questo elenco non è completo.

  • VM Compute Engine
  • Gruppi di istanze gestite zonali (MIG)
  • Dischi permanenti a livello di zona
  • Cluster GKE a zona singola
  • Istanze Filestore di base e zonali
  • Job Dataflow
  • Istanze Cloud SQL
  • Cluster Dataproc su Compute Engine

Un errore in una zona potrebbe influire sulle risorse di zona di cui è stato eseguito il provisioning in quella zona. Le zone sono progettate per ridurre al minimo il rischio di guasti correlati con altre zone della regione. Un errore in una zona di solito non influisce sulle risorse delle altre zone della regione. Inoltre, un guasto in una zona non comporta necessariamente la mancata disponibilità di tutta l'infrastruttura in quella zona. La zona definisce semplicemente il confine previsto per l'effetto di un guasto.

Per proteggere le applicazioni che utilizzano risorse a livello di zona dagli incidenti a livello di zona, puoi distribuire o replicare le risorse in più zone o regioni. Per maggiori informazioni, consulta Progettare un'infrastruttura affidabile per i carichi di lavoro in Google Cloud.

Risorse regionali

Le risorse di regione vengono distribuite tramite deployment in modo ridondante in più zone all'interno di una regione. Di seguito sono riportati alcuni esempi di risorse regionali. Questo elenco non è completo.

  • MIG a livello di area geografica
  • Bucket Cloud Storage regionali
  • Dischi permanenti a livello di regione
  • Cluster GKE a livello di regione con la configurazione predefinita (multi-zona)
  • Subnet VPC
  • Bilanciatori del carico delle applicazioni esterni regionali
  • Istanze Spanner regionali
  • Istanze Filestore Enterprise
  • Servizi Cloud Run

Le risorse di regione sono resilienti agli incidenti in una zona specifica. Un tempo di inattività della regione può interessare alcune o tutte le risorse regionali di cui è stato eseguito il provisioning all'interno della regione. Queste interruzioni possono essere causate da calamità naturali o da guasti dell'infrastruttura su larga scala.

Risorse multiregione

Le risorse multi-regione sono distribuite in regioni specifiche. Di seguito sono riportati alcuni esempi di risorse multiregione. Questo elenco non è esaustivo.

  • Bucket Cloud Storage con due regioni e su più regioni
  • Istanze Spanner multiregione
  • Istanze Bigtable multi-cluster (multi-regione)
  • Portachiavi multiregione in Cloud Key Management Service

Per un elenco completo dei servizi Google disponibili nelle configurazioni multiregione, consulta Prodotti disponibili per località.

Le risorse multiregione sono resilienti agli incidenti in regioni e zone specifiche. Un'interruzione dell'infrastruttura che si verifica in più regioni può influire sulla disponibilità di alcune o di tutte le risorse multi-regione di cui è stato eseguito il provisioning nelle regioni interessate.

Risorse globali

Le risorse globali sono disponibili in tutte le località di Google Cloud. Di seguito sono riportati alcuni esempi di risorse globali. Questo elenco non è esaustivo.

  • progetti e pagano per i progetti. Per indicazioni e best practice su come organizzare le risorse Google Cloud in cartelle e progetti, consulta Decidere una gerarchia delle risorse per la zona di destinazione Google Cloud.

  • Reti VPC, incluse route e regole del firewall associate

  • Zone Cloud DNS

  • Bilanciatori del carico delle applicazioni esterni globali

  • Portachiavi globali in Cloud Key Management Service

  • Argomenti Pub/Sub

  • Secret in Secret Manager

Per un elenco completo dei servizi Google disponibili a livello globale, consulta Prodotti globali.

Le risorse globali sono resilienti agli incidenti zonali e regionali. Queste risorse non si basano sull'infrastruttura di una regione specifica. Google Cloud dispone di sistemi e processi che contribuiscono a ridurre al minimo il rischio di interruzioni dell'infrastruttura globale. Inoltre, Google monitora continuamente l'infrastruttura e risolve rapidamente eventuali interruzioni globali.

La tabella seguente riassume la resilienza relativa delle risorse zonali, regionali, su più regioni e globali ai problemi di applicazioni e infrastruttura. Inoltre, descrive lo sforzo necessario per configurare queste risorse e i consigli per mitigare gli effetti delle interruzioni.

Ambito risorsa Resilienza Consigli per ridurre al minimo gli effetti delle interruzioni dell'infrastruttura
A livello di zona Bassa Esegui il deployment delle risorse in modo ridondante in più zone o regioni.
Regionale Medio Esegui il deployment delle risorse in modo ridondante in più regioni.
Multiregionale o globale Alta Gestisci attentamente le modifiche e, se possibile, utilizza strategie di difesa in profondità. Per ulteriori informazioni, consulta Consigli per gestire il rischio di interruzioni delle risorse globali.

Consigli per gestire il rischio di interruzioni delle risorse globali

Per sfruttare la resilienza delle risorse globali alle interruzioni di zone e regioni, ti consigliamo di utilizzare determinate risorse globali nella tua architettura. Google consiglia i seguenti approcci per gestire il rischio di interruzioni delle risorse globali:

Gestione attenta delle modifiche alle risorse globali

Le risorse globali sono resilienti ai guasti fisici. La configurazione di queste risorse è a livello globale. Pertanto, la configurazione e la gestione di una singola risorsa globale è più semplice rispetto all'utilizzo di più risorse regionali. Tuttavia, un errore critico nella configurazione di una risorsa globale potrebbe renderla un singolo punto di défaillance (SPOF). Ad esempio, puoi utilizzare un bilanciatore del carico globale come frontend per un'applicazione distribuita geograficamente. Un bilanciatore del carico globale è spesso una buona scelta per un'applicazione di questo tipo. Tuttavia, un errore nella configurazione del bilanciatore del carico può causare la sua indisponibilità in tutte le aree geografiche. Per evitare questo rischio, devi gestire attentamente le modifiche alla configurazione delle risorse globali. Per ulteriori informazioni, consulta Controllare le modifiche alle risorse globali.

Utilizzo di risorse regionali come alternative di difesa in profondità

Per le applicazioni con requisiti di disponibilità eccezionalmente elevati, le strategie di riserva regionale di difesa in profondità possono contribuire a ridurre al minimo l'effetto delle interruzioni delle risorse globali. Prendi ad esempio un'applicazione geograficamente distribuita che ha un bilanciatore del carico globale come frontend. Per assicurarti che l'applicazione rimanga accessibile anche se il bilanciatore del carico globale è interessato da un'interruzione globale, puoi implementare bilanciatori del carico a livello di regione. Puoi configurare i client in modo che preferiscano il bilanciatore del carico globale, ma esegui il failover al bilanciatore del carico regionale più vicino se il bilanciatore del carico globale non è disponibile.

Architettura di esempio con risorse a livello di zona, di regione e globali

La topologia cloud può includere una combinazione di risorse zonali, regionali e globali, come mostrato nel seguente diagramma. Il seguente diagramma mostra un'architettura di esempio per un'applicazione a più livelli di cui è stato eseguito il deployment in Google Cloud.

Ambiti di località delle risorse Google Cloud.

Come mostrato nel diagramma precedente, un bilanciatore del carico HTTP/S esterno globale riceve le richieste dei client. Il bilanciatore del carico distribuisce le richieste al backend, ovvero un gruppo di istanze gestite a livello di regione con due VM Compute Engine. L'applicazione in esecuzione sulle VM scrive e legge dati da un database Cloud SQL. Il database è configurato per l'alta disponibilità. Le istanze principali e di standby del database vengono provisionate in zone separate e il database principale viene replicato in modo sincrono nel database di standby. Inoltre, il backup del database viene eseguito automaticamente in un bucket multiregione in Cloud Storage.

La tabella seguente riassume le risorse Google Cloud nell'architettura precedente e la resilienza di ogni risorsa alle interruzioni di zone e regioni:

Risorsa Resilienza alle interruzioni
Rete VPC Le reti VPC, route associate e regole del firewall incluse, sono risorse globali. Sono resilienti alle interruzioni di zone e regioni.
Subnet Le subnet VPC sono risorse a livello di area geografica. Sono resilienti alle interruzioni di servizio nelle zone.
Bilanciatore del carico HTTP/S esterno globale I bilanciatori del carico HTTP/S esterni globali sono resilienti alle interruzioni di zone e regioni.
Gruppo di istanze gestite a livello di regione I MIG a livello di area geografica sono resilienti alle interruzioni delle zone.
VM Compute Engine Le VM Compute Engine sono risorse zonali. Se si verifica un'interruzione del servizio in una zona, le singole VM Compute Engine potrebbero essere interessate. Tuttavia, l'applicazione può continuare a gestire le richieste perché il backend per il bilanciatore del carico è un MIG regionale e non VM autonome.
Istanze Cloud SQL Il deployment di Cloud SQL in questa architettura è configurato per l'alta disponibilità, ovvero include una coppia di istanze di database principali e di standby. Il database principale viene replicato in modo sincrono nel database di standby utilizzando i dischi permanenti a livello di area geografica.
  • Se si verifica un'interruzione nella zona che ospita il database principale, il servizio Cloud SQL esegue automaticamente il failover sul database di riserva.
  • In caso di interruzione di una regione, puoi ripristinare il database in un'altra regione utilizzando i backup del database.
Bucket Cloud Storage multiregionale I dati archiviati nei bucket Cloud Storage a più regioni sono resilienti alle interruzioni in una singola regione.
Dischi permanenti I dischi permanenti possono essere a livello di zona o di regione. I dischi permanenti a livello di regione sono resilienti alle interruzioni del servizio nelle zone. Per prepararti al recupero dalle interruzioni di servizio nelle regioni, puoi pianificare gli snapshot dei dischi permanenti e archiviarli in un bucket Cloud Storage multiregionale.