Componenti di base per il ripristino di emergenza

Last reviewed 2024-07-01 UTC

Questo documento è la seconda parte di una serie che illustra il ripristino di emergenza (RE) in Google Cloud. Questa parte illustra i servizi e i prodotti che puoi utilizzare come componenti di base per il tuo piano di RE: sia i prodotti Google Cloud sia quelli che funzionano su più piattaforme.

La serie è costituita dai seguenti componenti:

Google Cloud offre un'ampia gamma di prodotti che puoi utilizzare come parte della tua architettura di ripristino di emergenza. Questa sezione illustra le funzionalità relative a RE dei prodotti più comunemente usati come componenti di base di Google Cloud per RE.

Molti di questi servizi hanno funzionalità ad alta disponibilità. L'alta disponibilità non si sovrappone completamente con la RE, ma molti degli obiettivi dell'alta disponibilità si applicano anche alla progettazione di un piano di RE. Ad esempio, sfruttando le funzionalità ad alta disponibilità, puoi progettare architetture in grado di ottimizzare l'uptime e mitigare gli effetti di errori su scala ridotta, come l'errore di una singola VM. Per ulteriori informazioni sulla relazione tra RE e alta disponibilità, consulta la Guida alla pianificazione del ripristino di emergenza.

Le sezioni seguenti descrivono questi componenti di base per la RE di Google Cloud e il modo in cui ti aiutano a implementare i tuoi obiettivi di RE.

Computing e archiviazione

La tabella seguente fornisce un riepilogo delle funzionalità dei servizi di computing e archiviazione di Google Cloud che fungono da componenti di base per il RE:

Prodotto Selezione delle
Compute Engine
  • Risorse di calcolo scalabili
  • Tipi di macchina predefinita e personalizzata
  • Tempi di avvio rapidi
  • Snapshot
  • Modelli di istanza
  • gruppi di istanze gestite
  • Prenotazioni
  • Dischi permanenti
  • Manutenzione trasparente
  • Migrazione live
Cloud Storage
  • Archiviazione di oggetti a elevata durabilità
  • Ridondanza tra regioni
  • Classi di archiviazione
  • Gestione del ciclo di vita degli oggetti
  • Trasferimento di dati da altre origini
  • Crittografia at-rest per impostazione predefinita
  • Eliminazione temporanea
Google Kubernetes Engine (GKE)
  • Ambiente gestito per il deployment e la scalabilità di applicazioni containerizzate
  • Riparazione automatica dei nodi
  • Probe di attività e idoneità
  • I volumi permanenti
  • Cluster multizona e a livello di regione
  • Networking multi-cluster

Per ulteriori informazioni su come le funzionalità e la progettazione di questi e altri prodotti Google Cloud potrebbero influenzare la tua strategia di RE, consulta Architecting ripristino di emergenza per interruzioni dell'infrastruttura cloud: riferimento al prodotto.

Compute Engine

Compute Engine fornisce istanze di macchine virtuali (VM): è il modello ideale di Google Cloud. Oltre a configurare, avviare e monitorare le istanze di Compute Engine, in genere utilizzi una serie di funzionalità correlate per implementare un piano di RE.

Per gli scenari di RE, puoi impedire l'eliminazione accidentale delle VM impostando il flag di protezione dall'eliminazione. Ciò è particolarmente utile se ospiti servizi stateful come database.

Per informazioni su come rispettare valori di RTO e RPO bassi, consulta Progettazione di sistemi resilienti.

Modelli di istanza

Puoi utilizzare i modelli di istanze Compute Engine per salvare i dettagli di configurazione della VM e quindi creare istanze di Compute Engine da modelli di istanza esistenti. Puoi utilizzare il modello per avviare tutte le istanze di cui hai bisogno, configurate esattamente nel modo che preferisci quando hai bisogno di supportare il tuo ambiente di destinazione di RE. I modelli di istanza vengono replicati a livello globale, quindi puoi ricreare l'istanza ovunque in Google Cloud con la stessa configurazione.

Per maggiori informazioni, consulta le seguenti risorse:

Per maggiori dettagli sull'utilizzo delle immagini Compute Engine, consulta la sezione su bilanciamento della configurazione dell'immagine e della velocità di deployment più avanti in questo documento.

gruppi di istanze gestite

I gruppi di istanze gestite utilizzano Cloud Load Balancing (illustrato più avanti in questo documento) per distribuire il traffico in gruppi di istanze con configurazione identica che vengono copiate tra le zone. I gruppi di istanze gestite consentono funzionalità come la scalabilità automatica e la riparazione automatica, in cui il gruppo di istanze gestite può eliminare e ricreare le istanze automaticamente.

Prenotazioni

Compute Engine consente la prenotazione di istanze VM in una zona specifica, utilizzando tipi di macchine personalizzate o predefinite, con o senza GPU aggiuntive o SSD locali. Per garantire la capacità per i carichi di lavoro mission critical per RE, devi creare prenotazioni nelle tue zone di destinazione di RE. Senza prenotazioni, è possibile che tu non possa ottenere la capacità on demand necessaria per raggiungere il tuo Recovery Time Objective (RTO). Le prenotazioni possono essere utili in scenariREi emergenza, caldi o freddi. Consentono di mantenere disponibili le risorse di ripristino per il failover in modo da soddisfare esigenze RTO minori, senza doverle configurare e eseguirne il deployment in anticipo.

Dischi permanenti e snapshot

I dischi permanenti sono dispositivi di archiviazione di rete durevoli a cui possono accedere le tue istanze. Sono indipendenti dalle istanze, perciò puoi scollegare e spostare dischi permanenti per conservare i dati anche dopo aver eliminato le istanze.

Puoi creare backup incrementali o snapshot delle VM di Compute Engine, che puoi copiare in più regioni e utilizzare per ricreare i dischi permanenti in caso di emergenza. Inoltre, puoi creare snapshot di dischi permanenti per evitare la perdita di dati a causa di un errore dell'utente. Gli snapshot sono incrementali e la loro creazione richiede solo pochi minuti, anche se i dischi degli snapshot sono collegati a istanze in esecuzione.

I dischi permanenti sono dotati di ridondanza integrata per proteggere i dati da guasti delle apparecchiature e garantire la disponibilità dei dati attraverso eventi di manutenzione del data center. I dischi permanenti sono a livello di zona o di regione. I dischi permanenti a livello di regione replicano le scritture tra due zone di una regione. In caso di interruzione a livello di zona, un'istanza VM di backup può eseguire il collegamento forzato di un disco permanente a livello di regione nella zona secondaria. Per saperne di più, consulta Opzioni di alta disponibilità utilizzando dischi permanenti a livello di regione.

Manutenzione trasparente

Google gestisce regolarmente la propria infrastruttura applicando patch ai sistemi con il software più recente, eseguendo test di routine e manutenzione preventiva e lavorando per garantire che l'infrastruttura di Google sia veloce ed efficiente il più possibile.

Per impostazione predefinita, tutte le istanze di Compute Engine sono configurate in modo che questi eventi di manutenzione siano trasparenti per le applicazioni e i carichi di lavoro. Per maggiori informazioni, consulta Manutenzione trasparente.

Quando si verifica un evento di manutenzione, Compute Engine utilizza la migrazione live per eseguire automaticamente la migrazione delle istanze in esecuzione a un altro host nella stessa zona. La migrazione live consente a Google di eseguire la manutenzione, essenziale per mantenere l'infrastruttura protetta e affidabile, senza interrompere nessuna delle tue VM.

Strumento di importazione dei dischi virtuali

Lo strumento di importazione di dischi virtuali consente di importare formati di file tra cui VMDK, VHD e RAW per creare nuove macchine virtuali Compute Engine. Con questo strumento puoi creare macchine virtuali Compute Engine che hanno la stessa configurazione delle tue macchine virtuali on-premise. Questo è un buon approccio quando non puoi configurare immagini Compute Engine dai programmi binari di origine del software già installato sulle tue immagini.

Backup automatici

Puoi automatizzare i backup delle tue istanze Compute Engine utilizzando i tag. Ad esempio, puoi creare un modello di piano di backup utilizzando il servizio di backup e RE e applicare automaticamente il modello alle tue istanze Compute Engine.

Per maggiori informazioni, consulta Automatizzare la protezione delle nuove istanze di Compute Engine.

Cloud Storage

Cloud Storage è un archivio di oggetti ideale per l'archiviazione dei file di backup. Fornisce diverse classi di archiviazione adatte a casi d'uso specifici, come descritto nel diagramma seguente.

Diagramma che mostra Standard Storage per l'accesso ad alta frequenza, Nearline e Coldline per l'accesso a bassa frequenza e Archive per l'accesso a bassa frequenza

Negli scenari RE, Nearline, Coldline e Archive Storage sono di particolare interesse. Queste classi di archiviazione riducono i costi di archiviazione rispetto alla classe di archiviazione Standard. Tuttavia, sono previsti costi aggiuntivi associati al recupero di dati o metadati archiviati in queste classi, nonché durate minime di archiviazione per le quali vengono addebitati i costi. Nearline è progettato per scenari di backup in cui l'accesso è al massimo una volta al mese, ideale per eseguire regolari test di stress di RE mantenendo bassi i costi.

Le classi Nearline, Coldline e Archive sono ottimizzate per gli accessi poco frequenti e il modello di prezzi è progettato tenendo conto di questo aspetto. Di conseguenza, ti vengono addebitati i costi minimi per le durate di archiviazione e sono previsti costi aggiuntivi per il recupero di dati o metadati in queste classi prima della durata minima di archiviazione per la classe.

Per proteggere i tuoi dati in un bucket Cloud Storage da eliminazioni accidentali o dannose, puoi utilizzare la funzionalità Eliminazione temporanea per conservare gli oggetti eliminati e sovrascritti per un periodo specificato e la funzionalità Conserva oggetti per impedire l'eliminazione o gli aggiornamenti degli oggetti.

Storage Transfer Service consente di importare in Cloud Storage i dati da Amazon S3, Azure Blob Storage o origini dati on-premise. Negli scenari di RE, puoi usare Storage Transfer Service per:

  • Esegui il backup dei dati di altri provider di archiviazione in un bucket Cloud Storage.
  • Sposta i dati da un bucket su due o più regioni a un bucket in una regione per ridurre i costi di archiviazione dei backup.

Filestore

Le istanze Filestore sono file server NFS completamente gestiti da utilizzare con applicazioni in esecuzione su istanze di Compute Engine o cluster GKE.

I livelli Filestore base e zonali sono risorse a livello di zona e non supportano la replica tra zone, mentre le istanze del livello Filestore Enterprise sono risorse a livello di regione. Per aumentare la resilienza del tuo ambiente Filestore, ti consigliamo di utilizzare istanze di livello Enterprise.

Google Kubernetes Engine

GKE è un ambiente gestito e pronto per la produzione dedicato al deployment di applicazioni containerizzate. GKE ti consente di orchestrare i sistemi ad alta disponibilità e include le seguenti funzionalità:

  • Riparazione automatica dei nodi. Se un nodo non supera controlli di integrità consecutivi per un periodo di tempo prolungato (circa 10 minuti), GKE avvia un processo di riparazione per quel nodo.
  • Probe di attività e idoneità. Puoi specificare un probe di attività, che comunica periodicamente a GKE che il pod è in esecuzione. Se il pod non supera il probe, puoi riavviarlo.
  • Cluster multizona e a livello di regione. Puoi distribuire le risorse Kubernetes su più zone all'interno di una regione.
  • Gateway multi-cluster consente di configurare risorse di bilanciamento del carico condivise in più cluster GKE in diverse regioni.
  • Backup per GKE consente di eseguire il backup e il ripristino dei carichi di lavoro nei cluster GKE.

Networking e trasferimento di dati

La tabella seguente fornisce un riepilogo delle funzionalità dei servizi di networking e trasferimento di dati di Google Cloud che fungono da componenti di base per la RE:

Prodotto Selezione delle
Cloud Load Balancing
  • Controlli di integrità
  • Bilanciamento del carico globale
  • Bilanciamento del carico a livello di regione
  • Failover in più regioni
  • Bilanciamento del carico multiprotocollo
  • Bilanciamento del carico esterno ed interno
Cloud Service Mesh
  • Piano di controllo mesh di servizi gestito da Google
  • Routing delle richieste avanzato e criteri avanzati per il controllo del traffico
Cloud DNS
  • Gestione DNS programmatica
  • Controllo dell'accesso
  • Anycast per gestire le zone
  • Criteri DNS
Cloud Interconnect
  • Cloud VPN (VPN IPsec)
  • Peering diretto

Cloud Load Balancing

Cloud Load Balancing offre l'alta disponibilità per i prodotti di computing Google Cloud distribuendo il traffico degli utenti su più istanze delle tue applicazioni. Puoi configurare Cloud Load Balancing con i controlli di integrità che determinano se le istanze sono disponibili per il lavoro in modo che il traffico non venga instradato a istanze che non funzionano.

Cloud Load Balancing fornisce un singolo indirizzo IP anycast per gestire le tue applicazioni. Le tue applicazioni possono avere istanze in esecuzione in diverse regioni (ad esempio, in Europa e negli Stati Uniti) e gli utenti finali vengono indirizzati al gruppo di istanze più vicino. Oltre a fornire il bilanciamento del carico per i servizi esposti a internet, puoi configurare il bilanciamento del carico interno per i tuoi servizi dietro un indirizzo IP di bilanciamento del carico privato. Questo indirizzo IP è accessibile solo alle istanze VM interne al tuo Virtual Private Cloud (VPC).

Per ulteriori informazioni, consulta la panoramica di Cloud Load Balancing.

Cloud Service Mesh

Cloud Service Mesh è un mesh di servizi gestito da Google disponibile su Google Cloud. Cloud Service Mesh fornisce dati di telemetria approfonditi per aiutarti a raccogliere insight dettagliati sulle tue applicazioni. Supporta servizi eseguiti su varie infrastrutture di computing.

Cloud Service Mesh supporta inoltre funzionalità avanzate di gestione del traffico e routing, come interruzione di circuito e fault injection. Con l'interruzione di sicurezza è possibile applicare limiti alle richieste a un particolare servizio. Quando vengono raggiunti i limiti di interruzione dei circuiti, le richieste non possono raggiungere il servizio, il che impedisce un ulteriore degrado del servizio. Con la fault injection, Cloud Service Mesh può introdurre ritardi o interrompere una parte delle richieste a un servizio. Fault injection consente di testare la capacità del servizio di sopravvivere ai ritardi delle richieste o alle richieste interrotte.

Per ulteriori informazioni, consulta Panoramica di Cloud Service Mesh.

Cloud DNS

Cloud DNS offre un metodo programmatico per gestire le voci DNS nell'ambito di un processo di recupero automatico. Cloud DNS utilizza la rete globale di server dei nomi Anycast di Google per la gestione delle zone DNS da località ridondanti in tutto il mondo, offrendo disponibilità elevata e minore latenza ai tuoi utenti.

Se hai scelto di gestire le voci DNS on-premise, puoi consentire alle VM in Google Cloud di risolvere questi indirizzi tramite il forwarding di Cloud DNS.

Cloud DNS supporta i criteri per configurare il modo in cui risponde alle richieste DNS. Ad esempio, puoi configurare criteri di routing DNS per indirizzare il traffico in base a criteri specifici, ad esempio abilitando il failover a una configurazione di backup per fornire disponibilità elevata o instradando le richieste DNS in base alla loro posizione geografica.

Cloud Interconnect

Cloud Interconnect offre modi per spostare informazioni da altre origini a Google Cloud. Parleremo di questo prodotto più avanti nella sezione Trasferimento di dati da e verso Google Cloud.

Gestione e monitoraggio

La tabella seguente fornisce un riepilogo delle funzionalità dei servizi di gestione e monitoraggio di Google Cloud che fungono da componenti di base per il RE:

Prodotto Selezione delle
Dashboard dello stato di Cloud
  • Stato dei servizi Google Cloud
Google Cloud Observability
  • Monitoraggio del tempo di attività
  • Avvisi
  • Logging
  • Error Reporting
Google Cloud Managed Service per Prometheus
  • Soluzione Prometheus gestita da Google

Dashboard dello stato di Cloud

La dashboard dello stato di Cloud mostra la disponibilità attuale dei servizi Google Cloud. Puoi visualizzare lo stato nella pagina e iscriverti a un feed RSS che viene aggiornato ogni volta che ci sono notizie su un servizio.

Cloud Monitoring

Cloud Monitoring raccoglie metriche, eventi e metadati da Google Cloud, AWS, probe di uptime ospitati, strumentazione delle applicazioni e una varietà di altri componenti delle applicazioni. Puoi configurare gli avvisi in modo che inviino notifiche a strumenti di terze parti come Slack o Pagerduty, per fornire aggiornamenti tempestivi agli amministratori.

Cloud Monitoring consente di creare controlli di uptime per endpoint disponibili pubblicamente e per endpoint all'interno dei tuoi VPC. Ad esempio, puoi monitorare URL, istanze di Compute Engine, revisioni di Cloud Run e risorse di terze parti, come le istanze Amazon Elastic Compute Cloud (EC2).

Google Cloud Managed Service per Prometheus

Google Cloud Managed Service per Prometheus è una soluzione multi-cloud, multiprogetto, gestita da Google per le metriche Prometheus. Consente di monitorare e creare avvisi a livello globale sui carichi di lavoro utilizzando Prometheus, senza dover gestire e utilizzare manualmente Prometheus su larga scala.

Per maggiori informazioni, consulta Google Cloud Managed Service per Prometheus.

Componenti di base per RE multipiattaforma

Quando esegui carichi di lavoro su più piattaforme, un modo per ridurre l'overhead operativo consiste nel selezionare strumenti che funzionino con tutte le piattaforme che utilizzi. In questa sezione vengono descritti alcuni strumenti e servizi indipendenti dalla piattaforma che supportano scenari di RE multipiattaforma.

Infrastructure as Code (IaC)

Definendo la tua infrastruttura mediante codice, anziché interfacce grafiche o script, puoi adottare strumenti per la creazione di modelli dichiarativi e automatizzare il provisioning e la configurazione dell'infrastruttura su più piattaforme. Ad esempio, puoi utilizzare Terraform e Infrastructure Manager per attivare la configurazione dichiarativa dell'infrastruttura.

Strumenti di gestione delle configurazioni

Per infrastrutture RE di grandi dimensioni o complesse, consigliamo strumenti di gestione del software indipendenti dalla piattaforma, come Chef e Ansible. Questi strumenti consentono di applicare configurazioni riproducibili indipendentemente da dove si trova il carico di lavoro di calcolo.

Strumenti Orchestrator

I container possono anche essere considerati un componente di base per la RE. I container sono un modo per pacchettizzare i servizi e introdurre coerenza tra le piattaforme.

Se lavori con i container, in genere utilizzi un agente di orchestrazione. Kubernetes non solo gestisce i container all'interno di Google Cloud (utilizzando GKE), ma fornisce anche un modo per orchestrare i carichi di lavoro basati sui container su più piattaforme. Google Cloud, AWS e Microsoft Azure forniscono tutte versioni gestite di Kubernetes.

Per distribuire il traffico ai cluster Kubernetes in esecuzione su piattaforme cloud diverse, puoi utilizzare un servizio DNS che supporti record ponderati e incorpora il controllo di integrità.

Devi inoltre assicurarti di poter eseguire il pull dell'immagine nell'ambiente di destinazione. Ciò significa che devi poter accedere al registro di immagini in caso di emergenza. Una buona opzione indipendente dalla piattaforma è Artifact Registry.

Trasferimento di dati

Il trasferimento di dati è un componente fondamentale degli scenari di RE multipiattaforma. Assicurati di progettare, implementare e testare i tuoi scenari di RE multipiattaforma utilizzando prototipi realistici di ciò che richiede lo scenario di trasferimento di dati di RE. Gli scenari di trasferimento di dati verranno illustrati nella prossima sezione.

Servizio Backup & DR

Il servizio di backup e RE è una soluzione di backup e RE per i carichi di lavoro cloud. Consente di recuperare i dati e riprendere le operazioni aziendali critiche. Inoltre, supporta diversi prodotti Google Cloud, database e sistemi di archiviazione di dati di terze parti.

Per ulteriori informazioni, consulta Panoramica del servizio di backup e RE.

Modelli per RE

Questa sezione illustra alcuni dei pattern più comuni per le architetture di RE in base ai componenti di base discussi in precedenza.

Trasferimento di dati da e verso Google Cloud

Un aspetto importante del tuo piano di RE è la velocità con cui i dati possono essere trasferiti e provenienti da Google Cloud. Questo è fondamentale se il tuo piano di RE si basa sullo spostamento dei dati da on-premise a Google Cloud o da un altro cloud provider a Google Cloud. Questa sezione illustra i servizi di networking e Google Cloud che possono garantire una buona velocità effettiva.

Quando utilizzi Google Cloud come sito di ripristino per i carichi di lavoro on-premise o su un altro ambiente cloud, considera i seguenti elementi chiave:

  • Come puoi connetterti a Google Cloud?
  • Qual è la larghezza di banda tra te e il provider di interconnessione?
  • Qual è la larghezza di banda fornita dal provider direttamente a Google Cloud?
  • Quali altri dati verranno trasferiti usando questo collegamento?

Per ulteriori informazioni sul trasferimento dei dati in Google Cloud, consulta Eseguire la migrazione a Google Cloud: trasferire i set di dati di grandi dimensioni.

Bilanciamento della configurazione delle immagini e della velocità di deployment

Quando configuri un'immagine macchina per il deployment di nuove istanze, considera l'effetto che la configurazione avrà sulla velocità di deployment. C'è un compromesso tra la quantità di preconfigurazione delle immagini, i costi di gestione dell'immagine e la velocità di deployment. Ad esempio, se un'immagine macchina è configurata al minimo, le istanze che la utilizzano richiedono più tempo per l'avvio, perché devono scaricare e installare le dipendenze. Se invece l'immagine della tua macchina è altamente configurata, le istanze che la utilizzano vengono avviate più rapidamente, ma devi aggiornare l'immagine più spesso. Il tempo impiegato per avviare un'istanza completamente operativa avrà una correlazione diretta con il tuo RTO.

Diagramma che mostra 3 livelli di bundling (da non bundle a completamente in bundle) mappati rispetto al tempo di avvio dell'immagine (il più in bundle è il più veloce ad avvio)

Mantenimento della coerenza delle immagini delle macchine negli ambienti ibridi

Se implementi una soluzione ibrida (da on-premise a cloud o da cloud a cloud), devi trovare un modo per mantenere la coerenza delle immagini in tutti gli ambienti di produzione.

Se è necessaria un'immagine completamente configurata, prendi in considerazione Packer, che può creare immagini macchina identiche per più piattaforme. Puoi utilizzare gli stessi script con file di configurazione specifici della piattaforma. Nel caso di Packer, puoi applicare il controllo della versione al file di configurazione per tenere traccia della versione di cui viene eseguito il deployment in produzione.

In alternativa, puoi utilizzare strumenti di gestione delle configurazioni come Chef, Puppet, Ansible o Saltstack per configurare le istanze con maggiore granularità, creare immagini di base, immagini con configurazione minima o completamente configurate in base alle esigenze.

Puoi anche convertire e importare manualmente immagini esistenti, come Amazon AMI, immagini Virtualbox e immagini disco RAW in Compute Engine.

Implementazione dell'archiviazione a più livelli

Il pattern di archiviazione a più livelli viene in genere utilizzato per i backup in cui il backup più recente si trova su uno spazio di archiviazione più veloce ed esegui lentamente la migrazione dei backup meno recenti a uno spazio di archiviazione a costo inferiore (ma lento). Se applichi questo pattern, esegui la migrazione dei backup tra bucket di diverse classi di archiviazione, in genere da classi di archiviazione Standard a classi di costo inferiore, come Nearline e Coldline.

Per implementare questo pattern, puoi utilizzare Gestione del ciclo di vita degli oggetti. Ad esempio, puoi modificare automaticamente in Coldline la classe di archiviazione degli oggetti più vecchi di un determinato periodo di tempo.

Passaggi successivi

Collaboratori

Autori: