Questo documento fornisce indicazioni tecniche e best practice per la progettazione e il deployment di carichi di lavoro a disponibilità elevata (HA) in più zone in un universo air-gap di Google Distributed Cloud (GDC). La guida descrive i principali pattern architetturali, le configurazioni dei servizi e le considerazioni operative per ridurre al minimo i tempi di inattività e garantire la continuità aziendale.
Le strategie descritte in questo documento sono destinate ai seguenti professionisti tecnici:
Architetti cloud che progettano architetture di applicazioni e infrastrutture resilienti.
Ingegneri DevOps e Site Reliability Engineer che implementano strategie di deployment, automazione, monitoraggio e risposta agli incidenti per carichi di lavoro HA.
Sviluppatori di applicazioni che creano applicazioni a tolleranza di errore che si integrano con i pattern HA.
Per saperne di più, consulta la documentazione relativa ai segmenti di pubblico per GDC air-gapped.
Importanza dell'alta disponibilità
Nei moderni sistemi distribuiti, la pianificazione dell'alta disponibilità è fondamentale. I tempi di inattività possono causare interruzioni significative dell'attività, perdita di fatturato e un'esperienza utente scadente.
Per i carichi di lavoro eseguiti in data center privati che utilizzano GDC, la disponibilità spesso è direttamente correlata al successo operativo principale, soprattutto per le applicazioni sensibili alla latenza o mission-critical. La progettazione per l'alta disponibilità fin dall'inizio è essenziale per creare servizi resilienti e affidabili.
GDC offre funzionalità di iperscalabilità all'interno del tuo ambiente con air gap con più data center disconnessi o zone. L'alta disponibilità per le tue app multizona dipende da servizi multizona, come il bilanciamento del carico e l'archiviazione asincrona. Per saperne di più sui servizi importanti da utilizzare per l'alta affidabilità, consulta le sezioni Scalabilità e bilanciamento del carico e Deployment di app ad alta affidabilità in più zone con archiviazione asincrona di questo documento.
Funzionalità di iperscalabilità, fornite localmente
GDC estende l'infrastruttura e i servizi a livello perimetrale e ai tuoi data center. Google Cloud GDC fornisce una soluzione hardware e software completamente gestita, che ti consente di eseguire Google Kubernetes Engine (GKE) sui cluster GDC e altri serviziGoogle Cloud più vicini al luogo in cui i dati vengono generati e utilizzati.
Questo documento si concentra sugli universi GDC configurati in una topologia multizona. In questa configurazione, un singolo universo comprende più zone fisicamente isolate all'interno della stessa località.
Queste zone dispongono di alimentazione, raffreddamento e networking indipendenti, fornendo protezione da guasti localizzati dell'infrastruttura fisica. La connettività di rete a bassa latenza e a banda larga tra le zone consente la replica dei dati e il failover rapido, costituendo la base per la creazione di applicazioni ad alta disponibilità.
Scalabilità e bilanciamento del carico
Oltre alla ridondanza di base dei componenti, la gestione efficace del traffico e l'attivazione della scalabilità senza interruzioni sono fondamentali per mantenere l'alta disponibilità, soprattutto in presenza di condizioni di carico variabili. GDC fornisce diversi meccanismi per il bilanciamento del carico e la gestione sofisticata del traffico.
Bilanciatore del carico esterno per il traffico nord-sud
Per esporre le tue applicazioni a utenti o sistemi esterni a un cluster GKE su GDC (traffico nord-sud), utilizza le funzionalità di bilanciamento del carico esterno gestito di GDC. Il servizio di bilanciamento del carico esterno (ELB) fornisce queste funzionalità e si integra perfettamente con Kubernetes.
Le caratteristiche principali del servizio ELB che fornisce HA e scalabilità sono le seguenti:
Servizio gestito: viene eseguito come servizio specifico di GDC ed è progettato per l'alta disponibilità e la resilienza in un ambiente air-gap.
Accesso esterno: esegue il provisioning di indirizzi IP esterni stabili da pool gestiti da GDC, fornendo un punto di ingresso coerente per i client esterni.
Integrazione del bilanciatore del carico con Kubernetes: esegue automaticamente il provisioning e configura il bilanciatore del carico quando crei un
Serviceditype: LoadBalancerdi Kubernetes senza annotazioni interne specifiche.Rilevamento della zona: distribuisce il traffico in entrata tra i pod dell'applicazione integri in esecuzione in tutte le zone disponibili all'interno dell'universo GDC. L'ELB si basa sui probe di idoneità dei pod per determinare l'integrità del backend.
Scalabilità: gestisce la distribuzione del traffico esterno man mano che la tua applicazione viene scalata orizzontalmente tra nodi e zone.
Per ottenere l'alta disponibilità per l'ingresso del traffico esterno, in modo che le richieste dei client vengano instradate automaticamente lontano dalle zone o dalle istanze non funzionanti, ti consigliamo di utilizzare un bilanciatore del carico esterno.
Per saperne di più, consulta Configura i bilanciatori del carico esterni.
Bilanciatore del carico interno per il traffico est-ovest
Per la comunicazione tra i servizi in esecuzione all'interno dello stesso cluster GKE su GDC (traffico est-ovest), GDC fornisce un bilanciatore del carico interno (ILB). Un bilanciamento del carico interno è fondamentale per separare i servizi interni e fornire percorsi di comunicazione interni che siano anche altamente disponibili e scalabili.
Le caratteristiche principali del servizio ILB che offre HA e scalabilità sono le seguenti:
Accesso interno: esegue il provisioning di un indirizzo IP interno stabile accessibile solo dall'interno della rete GDC, ad esempio nodi del cluster o altri servizi interni.
Integrazione del bilanciatore del carico con Kubernetes: esegue il provisioning del bilanciamento del carico creando un
ServiceKubernetes ditype: LoadBalancercon un'annotazione specifica per indicare che deve essere interno. Ad esempionetworking.gke.io/load-balancer-type: "Internal".Rilevamento della zona: distribuisce il traffico tra i pod di backend integri, identificati con probe di preparazione, che si trovano in tutte le zone disponibili. Questa distribuzione impedisce errori di comunicazione interni se una zona presenta problemi.
Service Discovery e disaccoppiamento: fornisce un indirizzo IP interno stabile e un nome DNS con l'integrazione di kube-dns e CoreDNS. I servizi possono rilevare e comunicare tra loro, eliminando la necessità per i client di conoscere i singoli indirizzi IP dei pod.
Scalabilità: facilita lo scaling dei servizi di backend interni distribuendo il traffico tra tutte le repliche integre disponibili.
L'utilizzo di un bilanciamento del carico interno per la comunicazione interna tra servizi rende il flusso di traffico interno resiliente agli errori di zona e fornisce uno scaling efficace, integrando l'alta disponibilità fornita dal bilanciamento del carico esterno e dalla distribuzione di calcolo sottostante. Questa strategia viene spesso utilizzata per le applicazioni a più livelli in cui le API frontend devono comunicare con le API o i database di backend all'interno del cluster Kubernetes.
Per saperne di più, consulta Configura i bilanciatori del carico interni.
Deployment di app ad alta disponibilità tra zone con archiviazione asincrona
GDC ti consente di eseguire infrastruttura e applicazioni più vicino alle tue origini dati. Per eseguire il deployment di applicazioni ad alta affidabilità con un'origine dati resiliente, implementa la replica asincrona dell'archiviazione per la persistenza dei dati e il ripristino di emergenza.
Le zone rappresentano domini in errore distinti all'interno di un singolo universo. Distribuendo i componenti dell'applicazione e replicando i dati tra le zone, migliori in modo significativo la resilienza contro i guasti hardware localizzati o gli eventi di manutenzione.
Per saperne di più, vedi Protezione dei dati con l'archiviazione multizona.
Passaggi successivi
Per eseguire il deployment di un servizio come raccolta di macchine virtuali (VM) distribuite tra zone utilizzando l'archiviazione a blocchi replicata asincrona, consulta Eseguire il deployment di un'app VM HA.
Per eseguire il deployment di un servizio come applicazione containerizzata su Kubernetes in più zone utilizzando volumi permanenti replicati in modo asincrono, consulta Eseguire il deployment di un'app containerizzata ad alta disponibilità.
Per saperne di più su zone e universi, consulta Zone in GDC air-gapped.