Opzioni di bilanciamento del carico

Azure Load Balancer
Frontdoor di Azure
Gateway applicazione di Azure
Gestione traffico di Azure

Il termine bilanciamento del carico si riferisce alla distribuzione dei carichi di lavoro tra più risorse di calcolo. Il bilanciamento del carico mira a ottimizzare l'uso delle risorse, aumentare la velocità effettiva, ridurre al minimo i tempi di risposta ed evitare di sovraccaricare singole risorse. Consente anche di migliorare la disponibilità condividendo un carico di lavoro tra risorse di elaborazione ridondanti.

Azure offre vari servizi di bilanciamento del carico che è possibile usare per distribuire i carichi di lavoro tra più risorse di calcolo. Queste risorse includono app Azure lication Gateway, Frontdoor di Azure, Azure Load Balancer e Gestione traffico di Azure.

Questo articolo descrive alcune considerazioni per determinare una soluzione di bilanciamento del carico appropriata per le esigenze del carico di lavoro.

Categorizzazioni dei servizi

I servizi di bilanciamento del carico di Azure possono essere classificati in due dimensioni: globale e HTTP(S) rispetto a HTTP(S) e non HTTP(S).

Confronto tra globale e regionale

  • Globale: questi servizi di bilanciamento del carico distribuiscono il traffico tra back-end a livello di area, cloud o servizi locali ibridi. Questi servizi supportano la gestione di un singolo piano di controllo responsabile del routing globale del traffico degli utenti finali a un back-end disponibile. Spesso reagiscono alle modifiche apportate all'affidabilità o alle prestazioni del servizio per ottimizzare la disponibilità e le prestazioni. È possibile considerarli come sistemi che bilanciano il carico tra stamp di applicazioni, endpoint o unità di scala ospitate in aree/aree geografiche diverse.
  • A livello di area: questi servizi di bilanciamento del carico distribuiscono il traffico all'interno di reti virtuali tra macchine virtuali o endpoint di servizio con ridondanza della zona e zona all'interno di un'area. È possibile considerarli come sistemi che bilanciano il carico tra VM, contenitori o cluster all'interno di un'area in una rete virtuale.

HTTP(S) e non HTTP(S)

  • HTTP(S): questi servizi di bilanciamento del carico sono servizi di bilanciamento del carico di livello 7 che accettano solo il traffico HTTP(S). Sono destinati ad applicazioni Web o altri endpoint HTTP(S). Potrebbero avere funzionalità come l'offload SSL, il web application firewall, il bilanciamento del carico basato sul percorso e l'affinità di sessione.
  • Non-HTTP(S): questi servizi di bilanciamento del carico sono servizi di bilanciamento del carico di livello 4 che possono gestire il traffico non HTTP(S), principalmente servizi TCP o UDP.

La tabella seguente riepiloga i servizi di bilanciamento del carico di Azure.

Servizioo Globale/regionale Traffico consigliato
Frontdoor di Azure Generale HTTP(S)
Gestione traffico di Azure Generale Non HTTP(S)
Gateway applicazione di Azure A livello di area HTTP(S)
Azure Load Balancer A livello di area o globale Non HTTP(S)

Nota

Gestione traffico di Azure e Azure Load Balancer hanno le funzionalità per distribuire il traffico HTTP(S), ma non dispongono di funzionalità specifiche da instradare in base alle informazioni sulle unità dati del protocollo superiori al livello 4. Entrambi supportano il traffico HTTP(S), ma solo a livello di funzionalità di livello 4.

Servizi di bilanciamento del carico di Azure

Ecco i principali servizi di bilanciamento del carico attualmente disponibili in Azure:

  • Frontdoor di Azure è una rete di distribuzione di applicazioni che fornisce il servizio globale di bilanciamento del carico e accelerazione del sito per le applicazioni Web. Offre funzionalità di livello 7 per l'applicazione, ad esempio l'offload SSL, il routing basato sul percorso, il failover rapido e la memorizzazione nella cache per migliorare le prestazioni e la disponibilità elevata delle applicazioni.

  • Gestione traffico è un servizio di bilanciamento del carico del traffico basato su DNS che consente di distribuire il traffico in modo ottimale ai servizi tra aree di Azure globali, offrendo al tempo stesso disponibilità elevata e velocità di risposta. Poiché Gestione traffico è un servizio di bilanciamento del carico basato su DNS, il carico viene bilanciato solo a livello di dominio. Per questo motivo, non può eseguire il failover altrettanto rapidamente di Frontdoor di Azure, a causa di problemi comuni relativi alla memorizzazione nella cache DNS e ai sistemi che non rispettano i TTL DNS.

  • gateway applicazione fornisce il controller di recapito delle applicazioni come servizio, offrendo varie funzionalità di bilanciamento del carico di livello 7 e funzionalità web application firewall. Usarlo per passare dallo spazio di rete pubblico ai server Web ospitati nello spazio di rete privato all'interno di un'area.

  • Load Balancer è un servizio di bilanciamento del carico di livello 4 a prestazioni elevate e a bassa latenza (in ingresso e in uscita) per tutti i protocolli UDP e TCP. È progettato per gestire milioni di richieste al secondo assicurando al tempo stesso la disponibilità elevata della soluzione. Load Balancer è ridondante della zona, garantendo la disponibilità elevata tra le zone di disponibilità. Supporta sia una topologia di distribuzione a livello di area che una topologia tra aree.

Nota

La tecnologia di clustering, ad esempio App Azure Container o servizio Azure Kubernetes contiene costrutti di bilanciamento del carico che operano principalmente nell'ambito dei limiti del cluster, instradando il traffico alle istanze dell'applicazione disponibili in base all'idoneità e ai probe di integrità. Queste opzioni di bilanciamento del carico non sono descritte in questo articolo.

Albero delle decisioni per il bilanciamento del carico in Azure

Quando si seleziona una soluzione di bilanciamento del carico, tenere presente questi fattori, ad esempio:

  • Tipo di traffico: si tratta di un'applicazione HTTP(S) Web? Si tratta di un'applicazione pubblica o privata?
  • Globale e regionale: è necessario bilanciare il carico di macchine virtuali o contenitori all'interno di una singola rete virtuale o di bilanciare il carico di unità/distribuzioni di scalabilità tra aree o entrambi?
  • Disponibilità: qual è il contratto di servizio?
  • Costo: per altre informazioni, vedere Prezzi di Azure. Oltre al costo del servizio stesso, prendere in considerazione il costo delle operazioni per la gestione di una soluzione basata su tale servizio.
  • Funzionalità e limiti: quali funzionalità sono supportate in ogni servizio e quali sono i limiti del servizio di ogni servizio?

! [SUGGERIMENTO] Il portale di Azure offre una guida basata su questionari simile al diagramma di flusso seguente. Nella portale di Azure cercare "Bilanciamento del carico - Aiutami a scegliere". Rispondendo alle domande, è possibile limitare le opzioni di bilanciamento del carico.

Il diagramma di flusso seguente consente di scegliere una soluzione di bilanciamento del carico per l'applicazione. Il diagramma di flusso illustra un set di criteri decisionali chiave per ottenere delle indicazioni.

Considerare questo diagramma di flusso come un punto di partenza. Dato che ogni applicazione presenta requisiti specifici, usare le indicazioni come punto di partenza Eseguire quindi una valutazione più dettagliata.

Quando il carico di lavoro include diversi servizi che richiedono il bilanciamento del carico, è importante valutare singolarmente ogni servizio. In molti casi, una configurazione efficace usa più di un tipo di soluzione di bilanciamento del carico. È possibile incorporare queste soluzioni in posizioni diverse nell'architettura del carico di lavoro, ognuna che gestisce una funzione o un ruolo univoco.

Diagramma che mostra un albero delle decisioni per il bilanciamento del carico in Azure.

Definizioni

  • Applicazione Web (HTTP/HTTPS): si riferisce alla necessità di prendere una decisione di routing per i dati di livello 7, ad esempio il percorso URL, supportare l'ispezione del payload di comunicazione (ad esempio un corpo della richiesta HTTP) o gestire la funzionalità TLS.

  • Applicazione con connessione Internet: applicazioni accessibili pubblicamente da Internet. Come procedura consigliata, i proprietari di applicazioni applicano criteri di accesso restrittivi o proteggono l'applicazione configurando offerte come web application firewall e protezione DDoS.

  • Globale/Distribuito in più aree: se questo servizio di bilanciamento del carico deve avere un singolo piano di controllo a disponibilità elevata responsabile del routing del traffico verso endpoint pubblici nell'applicazione distribuita a livello globale. Può trattarsi di supportare topologie attive-attive o attive-passive tra aree.

    Nota

    È possibile usare un servizio a livello di area, ad esempio gateway applicazione, per bilanciare il carico tra back-end che si estendono su più aree e controllare il routing tramite un singolo piano di controllo. Questa architettura è resa possibile usando collegamento privato tra aree, peering di reti virtuali globali o persino indirizzi IP pubblici di servizi in altre aree.

    Questo scenario non è tuttavia il punto principale di questa decisione.

    L'uso di una risorsa a livello di area come router per back-end distribuiti a livello globale introduce un singolo punto di errore a livello di area e comporta una latenza aggiuntiva perché il traffico viene forzato attraverso un'area prima di passare a un'altra e quindi tornare di nuovo.

  • Piattaforma distribuita come servizio (PaaS): fornisce un ambiente di hosting gestito, in cui è possibile distribuire l'applicazione senza dover gestire le macchine virtuali o le risorse di rete. In questo caso, PaaS fa riferimento ai servizi che forniscono il bilanciamento del carico integrato all'interno di un'area. Per altre informazioni, vedere Scegliere un servizio di calcolo - Scalabilità.

  • servizio Azure Kubernetes (servizio Azure Kubernetes): consente di distribuire e gestire applicazioni in contenitori. Il servizio Azure Kubernetes offre kubernetes serverless, un'integrazione continua integrata e un'esperienza di recapito continuo e sicurezza e governance di livello aziendale. Per altre informazioni sulle risorse dell'architettura del servizio Azure Kubernetes, vedere servizio Azure Kubernetes progettazione dell'architettura.

  • Infrastruttura distribuita come servizio (IaaS): opzione di elaborazione in cui si effettua il provisioning delle macchine virtuali necessarie, insieme ai componenti di rete e archiviazione associati. Le applicazioni IaaS richiedono il bilanciamento del carico interno all'interno di una rete virtuale tramite Load Balancer.

  • Elaborazione a livello di applicazione: fa riferimento a un routing speciale all'interno di una rete virtuale. Ad esempio, il routing basato sul percorso all'interno della rete virtuale tra macchine virtuali o set di scalabilità di macchine virtuali. Per altre informazioni, vedere Quando distribuire un gateway applicazione dietro Frontdoor di Azure?.

  • Accelerazione delle prestazioni: si riferisce alle funzionalità che accelerano l'accesso Web. L'accelerazione delle prestazioni può essere ottenuta usando reti per la distribuzione di contenuti (CDN) o un punto di ingresso ottimizzato per l'onboarding accelerato dei client nella rete di destinazione. Frontdoor di Azure supporta sia le reti CDN che l'accelerazione del traffico Anycast. I vantaggi di entrambe le funzionalità possono essere ottenuti con o senza gateway applicazione nell'architettura.

Considerazioni aggiuntive

Ogni servizio di bilanciamento del carico include anche funzionalità di supporto o dettagli di implementazione che devono essere presi in considerazione. Ecco alcuni esempi che potrebbero essere rilevanti per lo scenario di bilanciamento del carico.

  • Supporto di Web Socket
  • Supporto HTTP/2 (ricezione e continuazione dei nodi back-end)
  • Supporto per sessioni permanenti
  • Meccanismo di monitoraggio dell'integrità dei nodi back-end
  • Esperienza client o ritardo tra il rilevamento di nodi non integri e la rimozione dalla logica di routing.

Esempi

La tabella seguente elenca vari articoli basati sui servizi di bilanciamento del carico usati come soluzione.

Servizi Articolo Descrizione
Load Balancer Bilanciare il carico delle macchine virtuali tra zone di disponibilità Bilanciare il carico delle macchine virtuali tra zone di disponibilità per proteggere le app e i dati da un probabile errore o perdita di un intero data center. Con la ridondanza della zona, una o più zone di disponibilità possono avere esito negativo e il percorso dati rimane integro finché una zona nell'area rimane integra.
Frontdoor di Azure Condivisione della posizione in tempo reale usando servizi di Azure serverless a basso costo Usare Frontdoor di Azure per offrire una disponibilità più elevata per le applicazioni rispetto alla distribuzione in una singola area. Se un'interruzione a livello di area influisce sull'area primaria, è possibile usare Frontdoor di Azure per eseguire il failover nell'area secondaria.
Gestione traffico Applicazione Web multilicenza creata per la disponibilità elevata e il ripristino di emergenza Distribuire applicazioni multilicenza resilienti create per la disponibilità elevata e il ripristino di emergenza. Se l’area primaria non è più disponibile, Gestione traffico effettua il failover all'area secondaria.
Frontdoor di Azure e gateway applicazione SaaS multitenant in Azure Usare una soluzione multi-tenant che include una combinazione di Frontdoor di Azure e gateway applicazione. Frontdoor di Azure consente di bilanciare il carico del traffico tra aree. gateway applicazione instradare e bilanciare il carico del traffico internamente nell'applicazione ai vari servizi che soddisfano le esigenze aziendali dei clienti.
Gestione traffico + Bilanciamento del carico Applicazione multiregione a più livelli Applicazione a più livelli che usa Gestione traffico per instradare le richieste in ingresso a un'area primaria. Se tale area non è più disponibile, Gestione traffico effettua il failover all'area secondaria.
Gestione traffico + gateway applicazione Bilanciamento del carico su più aree con Gestione traffico e gateway applicazione Informazioni su come gestire i carichi di lavoro Web e distribuire applicazioni multilicenza resilienti in più aree di Azure per ottenere disponibilità elevata e un'infrastruttura di ripristino di emergenza affidabile.

Passaggi successivi