Quando esegui uno stack di applicazioni su risorse distribuite nel cloud, il traffico di rete deve essere indirizzato in modo efficiente alle risorse disponibili in più località. Questa parte della Guida all'affidabilità dell'infrastruttura Google Cloud descrive le tecniche di gestione del traffico e del carico utili per migliorare l'affidabilità dei carichi di lavoro cloud.
Pianificazione della capacità
per assicurarti che l'applicazione di cui è stato eseguito il deployment in Google Cloud disponga di un'adeguata dell'infrastruttura, devi stimare la capacità richiesta e per gestire la capacità di cui è stato eseguito il deployment. Questa sezione fornisce linee guida per aiutarti a pianificare e gestire la capacità.
Prevedi il carico dell'applicazione
Quando prevedi il carico, considera fattori quali il numero di utenti e con cui l'applicazione potrebbe ricevere richieste. Nelle previsioni, prendi in considerazione le tendenze storiche di caricamento, le variazioni stagionali, i picchi di caricamento durante gli eventi speciali e la crescita dovuta a cambiamenti aziendali come l'espansione in nuove regioni geografiche.
Stimare i requisiti di capacità
In base all'architettura di deployment e considerando le prestazioni e di affidabilità dell'applicazione, stimare la quantità Le risorse Google Cloud necessarie per gestire il carico previsto. Per Ad esempio, se prevedi di utilizzare i gruppi di istanze gestite di Compute Engine, decide la dimensione di ciascun gruppo di istanze gestite, il tipo di macchina VM e il numero, il tipo dei dischi permanenti standard. Puoi utilizzare il Calcolatore prezzi di Google Cloud per stimare il costo delle risorse Google Cloud.
Pianifica una ridondanza adeguata
Quando stimi i requisiti di capacità, fornisci una ridondanza adeguata per ogni componente dello stack dell'applicazione. Ad esempio, per ottenere la redundanza N+1, ogni componente dello stack di applicazioni deve avere almeno un componente ridondante oltre il minimo necessario per gestire il carico previsto.
Esegui il benchmark dell'applicazione
Esegui test di carico per determinare l'efficienza delle risorse della tua applicazione. L'efficienza delle risorse è la relazione tra il carico sull'applicazione e le risorse come CPU e memoria che l'applicazione consuma. La risorsa efficienza operativa di un'applicazione può deteriorarsi quando il carico è eccezionalmente e l'efficienza potrebbe cambiare nel tempo. Esegui i test di carico per entrambi condizioni di carico normale e di picco e ripetere i test di benchmarking a intervalli regolari intervalli.
Gestisci quote
Le quote dei servizi Google Cloud sono limiti per progetto che ti aiutano a controllare il consumo delle risorse cloud. Esistono due tipi di quote: le quote delle risorse sono le risorse massime che puoi creare, ad esempio il numero di cluster Google Kubernetes Engine (GKE) regionali in una regione. Le quote di frequenza limitano il numero di richieste API che possono essere inviate a un servizio in un determinato periodo. Le quote possono essere a livello di zona, di regione o globali. Esamina le quote di risorse e le quote di frequenza API correnti per i servizi che prevedi di utilizzare nei tuoi progetti. Assicurati che le quote siano sufficienti per la capacità di cui hai bisogno. Se necessario, puoi richiedere una quota maggiore.
Prenota capacità di calcolo
assicurati che sia disponibile capacità per le risorse Compute Engine. se necessario, puoi creare prenotazioni. Una prenotazione garantisce in una zona specifica per un numero specifico di VM di un tipo di macchina che scegli. Una prenotazione può essere specifica per un progetto o condivisa tra più progetti. Per ulteriori informazioni sulle prenotazioni, inclusi i considerazioni sulla fatturazione, consulta Prenotazioni di risorse a livello di zona di Compute Engine.
Monitora l'utilizzo e rivaluta periodicamente i requisiti
Dopo aver implementato le risorse richieste, monitora l'utilizzo della capacità. Potresti trovare opportunità per ottimizzare i costi rimuovendo le risorse inattive. Rivaluta periodicamente i requisiti di capacità e prendi in considerazione eventuali modifiche al comportamento dell'applicazione, agli obiettivi di prestazioni e affidabilità, al carico utente e al budget IT.
Scalabilità automatica
Quando esegui un'applicazione su risorse distribuite su più da qualsiasi località, l'applicazione rimane disponibile durante le interruzioni di uno dei luoghi. Inoltre, la ridondanza contribuisce a garantire agli utenti un comportamento coerente delle applicazioni. Ad esempio, quando si verifica un picco di carico, le risorse ridondanti assicurano che l'applicazione continui a funzionare a un livello prevedibile. Tuttavia, quando il carico sull'applicazione è basso, la ridondanza può portare a un utilizzo inefficiente delle risorse cloud.
Ad esempio, il componente del carrello degli acquisti di un'applicazione di e-commerce potrebbe dover elaborare i pagamenti per il 99,9% degli ordini entro 200 millisecondi dalla conferma dell'ordine. Per soddisfare questo requisito durante i periodi di carico elevato, potresti eseguire il provisioning di capacità di calcolo e archiviazione ridondanti. Tuttavia, quando il carico sull'applicazione è ridotto, una parte della capacità fornita in provisioning potrebbe rimanere inutilizzata o sottoutilizzata. Per rimuovere le risorse inutilizzate, devi monitorare e regolare la capacità. La scalabilità automatica ti aiuta a gestire la capacità del cloud e a mantenere il livello di disponibilità richiesto senza il sovraccarico operativo della gestione delle risorse ridondanti. Quando il carico dell'applicazione aumenta, la scalabilità automatica contribuisce a migliorare la disponibilità dell'applicazione eseguendo il provisioning automatico di risorse aggiuntive. Durante i periodi di carico ridotto, la scalabilità automatica rimuove le risorse inutilizzate e contribuisce a ridurre i costi.
Alcuni servizi Google Cloud, come Compute Engine, ti consentono di configurare la scalabilità automatica per le risorse di cui esegui il provisioning. Servizi gestiti come Cloud Run, può scalare automaticamente la capacità senza di te dover configurare nulla. Di seguito sono riportati alcuni esempi di servizi Google Cloud che supportano la scalabilità automatica. Questo elenco non è esaustivo.
- Compute Engine: i gruppi di istanze gestite consentono di scalare le applicazioni stateless il cui deployment viene eseguito automaticamente sulle VM di Compute Engine, con il carico attuale. Per ulteriori informazioni, consulta Gruppi di istanze a scalabilità automatica.
- GKE: puoi configurare GKE per ridimensionare automaticamente i pool di nodi in base al carico attuale. Per ulteriori informazioni, vedi Gestore della scalabilità automatica dei cluster. Per i cluster GKE di cui esegui il provisioning in modalità Autopilot, GKE esegue automaticamente la scalabilità dei nodi e dei carichi di lavoro in base al traffico.
- Cloud Run: i servizi di cui esegui il provisioning Cloud Run fa automaticamente lo scale out in base al numero di container necessarie per gestire il carico attuale. Quando senza carico, il servizio scala automaticamente delle istanze di container a zero. Per ulteriori informazioni, vedi Informazioni sulla scalabilità automatica delle istanze di container.
- Funzioni Cloud Run: ogni richiesta a una funzione viene assegnata a un'istanza della funzione. Se il volume delle richieste in entrata supera il di istanze di funzione esistenti, Cloud Run funziona automaticamente avvia nuove istanze della funzione. Per ulteriori informazioni, consulta Ambiente di esecuzione delle funzioni Cloud Run.
- Bigtable: quando crei un cluster in una Istanza Bigtable, puoi configurare il cluster per la scalabilità automaticamente. Bigtable monitora il carico di CPU e spazio di archiviazione, e regola il numero di nodi nel cluster per mantenere i tassi di utilizzo specificati da te. Per ulteriori informazioni, vedi Scalabilità automatica Bigtable.
- Dataproc Serverless: quando invii un carico di lavoro batch Apache Spark, Dataproc Serverless scala dinamicamente le risorse del carico di lavoro, ad esempio il numero di executor, per eseguirlo in modo efficiente. Per ulteriori informazioni, consulta Scalabilità automatica di Dataproc Serverless per Spark.
Bilanciamento del carico
Il bilanciamento del carico contribuisce a migliorare l'affidabilità dell'applicazione instradando il traffico verso solo quelle disponibili e verificando che le singole risorse sovraccarico.
Quando scegli, considera i seguenti suggerimenti di progettazione relativi all'affidabilità e la configurazione di bilanciatori del carico per il deployment nel cloud.
Bilanciare il traffico interno
Configura il bilanciamento del carico anche per il traffico tra i livelli dello stack dell'applicazione, non solo per il traffico tra i client esterni e l'applicazione. Ad esempio, in uno stack di applicazioni web a 3 livelli, puoi utilizzare un bilanciatore del carico interno per una comunicazione affidabile tra i livelli web e app.
Scegli un tipo di bilanciatore del carico appropriato
Per bilanciare il carico del traffico esterno verso un'applicazione distribuita in più regioni, puoi utilizzare un bilanciatore del carico globale o più bilanciatori del carico regionali. Per ulteriori informazioni, consulta Vantaggi e rischi del bilanciamento del carico globale per i deployment multi-regione.
Se i backend si trovano in un'unica regione e non hai bisogno delle caratteristiche del puoi usare un bilanciatore del carico a livello di regione, resiliente alle zone o in caso di interruzione del servizio.
Quando scegli il tipo di bilanciatore del carico, prendi in considerazione altri fattori oltre alla disponibilità, ad esempio il controllo geografico sulla terminazione TLS, le prestazioni, il costo e il tipo di traffico. Per ulteriori informazioni, consulta la sezione Scegliere un bilanciatore del carico.
Configurare i controlli di integrità
La scalabilità automatica contribuisce ad assicurare che le tue applicazioni dispongano di risorse di infrastruttura adeguate per gestire il carico corrente. Ma anche quando l'infrastruttura è sufficiente
risorse esistenti, un'applicazione o alcune di essa potrebbero non essere reattive. Per
Ad esempio, tutte le VM che ospitano la tua applicazione
RUNNING
. Ma il software dell'applicazione di cui è stato eseguito il deployment
Le VM potrebbero aver subito un arresto anomalo.
Controlli di integrità del bilanciamento del carico
assicura che i bilanciatori del carico instradano il traffico delle applicazioni solo ai backend
adattabili. Se i tuoi backend sono gruppi di istanze gestite, valuta la possibilità di configurare un livello aggiuntivo di controlli di integrità per eseguire la riparazione automatica delle VM non disponibili. Quando la riparazione automatica è configurata per un gruppo di istanze gestite,
le VM non disponibili vengono eliminate in modo proattivo e vengono create nuove VM.
Limitazione di frequenza
Può capitare che la tua applicazione registri un aumento rapido o prolungato della al carico. Se l'applicazione non è progettata per gestire il carico maggiore, un'applicazione o le risorse che utilizza potrebbero non riuscire, il che rende l'applicazione non disponibile. L'aumento del carico potrebbe essere causato da richieste dannose, ad esempio: gli attacchi DDoS (Distributed Denial-of-Service) basati sulla rete. Un improvviso picco di il carico può essere dovuto anche ad altri motivi, come errori di configurazione nella e il software client. Per assicurarti che l'applicazione possa gestire un carico eccessivo, prendere in considerazione l'applicazione di adeguati meccanismi di limitazione della frequenza. Ad esempio, puoi impostare quote per il numero di richieste API che un servizio Google Cloud può ricevere.
Le tecniche di limitazione della frequenza possono anche aiutarti a ottimizzare il costo della tua infrastruttura cloud. Ad esempio, impostando quote a livello di progetto per di risorse, puoi limitare la fatturazione che il progetto può sostenere per Google Cloud.
Livello di servizio di rete
I livelli di servizio di rete di Google Cloud ti consentono di ottimizzare la connettività tra i sistemi su internet e i tuoi carichi di lavoro Google Cloud. Per le applicazioni che servono utenti a livello globale e hanno backend in più di una regione, scegli il livello Premium. Traffico proveniente da internet entra nella rete Google ad alte prestazioni nel punto di presenza (da un periodo all'altro) più vicino al sistema di invio. All'interno della rete di Google, il traffico viene instradato dal PoP di ingresso alla risorsa Google Cloud appropriata, ad esempio una VM Compute Engine. Il traffico in uscita viene inviato tramite uscendo al POP più vicino alla destinazione. Questo metodo di routing aiuta a migliorare la percezione della disponibilità da parte degli utenti riducendo il numero di passa da una rete all'altra tra gli utenti e i PoP più vicini a loro.