Condividi tramite


Opzioni di bilanciamento del carico

Il termine bilanciamento del carico si riferisce alla distribuzione dell'elaborazione tra più risorse di calcolo. Il bilanciamento del carico consente di ottimizzare l'utilizzo delle risorse, ottimizzare la velocità effettiva, ridurre al minimo il tempo di risposta ed evitare l'overload di una singola risorsa. Il bilanciamento del carico può anche migliorare la disponibilità condividendo un carico di lavoro tra risorse di calcolo ridondanti.

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

Questo articolo descrive le considerazioni per aiutarti a individuare una soluzione di bilanciamento del carico appropriata per le esigenze del tuo carico.

Servizi di bilanciamento del carico di Azure

In Azure sono disponibili i servizi di bilanciamento del carico e il servizio principali con funzionalità di bilanciamento del carico:

  • Gestione API è un servizio gestito che è possibile usare per pubblicare, proteggere, trasformare, gestire e monitorare le API HTTP(S). Fornisce un gateway per le API e può essere configurato per bilanciare il carico del traffico tra i nodi in un pool back-end con bilanciamento del carico designato. È possibile scegliere tra tre diversi metodi di bilanciamento del carico: round robin, ponderato e basato sulla priorità.

    Importante

    Gestione API non è un servizio di bilanciamento del carico tradizionale per utilizzo generico. È progettato in modo specifico per le API HTTP e le relative funzionalità di bilanciamento del carico sono facoltative all'interno della sua più ampia funzionalità di gestione API. Gestione API è incluso in questo articolo per completezza perché offre funzionalità di bilanciamento del carico per topologie di hosting API specifiche. Tuttavia, lo scopo principale è la funzionalità del gateway API anziché il bilanciamento del carico.

  • Gateway Applicazione è un servizio di bilanciamento del carico del traffico web. Fornisce funzionalità del controller per la distribuzione delle applicazioni come servizio gestito. Offre anche varie funzionalità di bilanciamento del carico di livello 7 e funzionalità web application firewall. Usare il gateway applicazione per eseguire la transizione del traffico dallo spazio di rete pubblico ai server Web ospitati nello spazio di rete privato all'interno di un'area.

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

  • Load Balancer è un servizio di livello 4 che gestisce il traffico in ingresso e in uscita in tutti i protocolli UDP (User Datagram Protocol) e Transmission Control Protocol (TCP). È progettato per prestazioni elevate e latenza ultra bassa. È progettato per gestire milioni di richieste al secondo assicurando al tempo stesso la disponibilità elevata della soluzione. Load Balancer è ridondante per area, che garantisce elevata disponibilità nelle zone di disponibilità. Supporta sia una topologia di distribuzione a livello di area che una topologia tra aree.

  • Gestione traffico è un servizio di bilanciamento del carico basato su DNS (Domain Name System) 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, bilancia il carico solo a livello di dominio. Per questo motivo, non può eseguire il failover più rapidamente di Frontdoor di Azure. La memorizzazione nella cache DNS e i sistemi che ignorano i valori TTL (TIME TO LIVE) DNS spesso causano questo ritardo.

Annotazioni

Le tecnologie di clustering, ad esempio App azure Container o il servizio Azure Kubernetes, contengono costrutti di bilanciamento del carico. Questi costrutti operano principalmente all'interno dell'ambito del proprio limite del cluster. Instradano il traffico alle istanze dell'applicazione disponibili in base alla prontezza e ai controlli di integrità. Questo articolo non illustra le opzioni di bilanciamento del carico.

Categorizzazioni dei servizi

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

Globale o a livello di area

  • Globale: Questi servizi di bilanciamento del carico distribuiscono il traffico tra back-end a livello di area, cloud o servizi locali ibridi. Forniscono un singolo piano di controllo che indirizza il traffico utente ai back-end disponibili a livello globale. Questi servizi 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 indicatori dell'applicazione, endpoint o unità di scala ospitate in aree o aree geografiche diverse.

  • Regionale: Questi servizi di bilanciamento del carico distribuiscono il traffico all'interno delle reti virtuali tra macchine virtuali (VM) o endpoint di servizio zonale e con ridondanza tra zone all'interno di una regione. È possibile considerarli come sistemi che bilanciano il carico tra VM, contenitori o cluster all'interno di un'area in una rete virtuale.

HTTP(S) o 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 progettati per applicazioni Web o altri endpoint HTTP(S). Le funzionalità includono 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 includono servizi TCP e UDP di livello 4 o servizi di bilanciamento del carico basati su DNS.

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

Servizio Globale o regionale Traffico consigliato
Gestione API Globale o a livello di area SOLO API HTTP(S)
Gateway delle applicazioni Regionale HTTP(S)
Frontdoor di Azure Generale HTTP(S)
Bilanciatore di carico Globale o a livello di area Non-HTTP(S)
Gestore del traffico Generale Non-HTTP(S)

Annotazioni

Gestione traffico e Load Balancer possono distribuire qualsiasi tipo di traffico, incluso HTTP(S). Tuttavia, questi servizi non forniscono funzionalità di livello 7. A differenza di Load Balancer, Gestione traffico non gestisce direttamente il traffico. Gestione traffico usa DNS per indirizzare i client agli endpoint appropriati.

Scegliere una soluzione di bilanciamento del carico per lo scenario

Quando si seleziona una soluzione di bilanciamento del carico, tenere presenti i fattori seguenti:

  • Tipo di traffico: Determinare se si tratta di un'applicazione HTTP(S) Web e se è pubblica o un'applicazione privata.

  • Globale e regionale: Chiarire se è necessario bilanciare il carico di macchine virtuali o contenitori all'interno di una singola rete virtuale, bilanciare il carico di unità di scala o distribuzioni tra aree o entrambi.

  • Disponibilità: Esaminare il contratto di servizio.

  • Costo: Tenere conto del costo del servizio stesso, nonché del costo operativo della gestione di una soluzione basata su tale servizio. Per altre informazioni, vedere Prezzi di Azure.

  • Funzionalità e limiti: Identificare le funzionalità supportate da ogni servizio e i limiti del servizio applicabili.

Il grafico di flusso seguente consente di scegliere una soluzione di bilanciamento del carico per l'applicazione. Il grafico di flusso illustra un set di criteri decisionali chiave per raggiungere una raccomandazione.

Suggerimento

È possibile usare Microsoft Copilot in Azure per semplificare questa decisione, analogamente al grafico di flusso descritto qui. Per altre informazioni, vedere Usare Azure Load Balancer con Microsoft Copilot in Azure.

Ogni applicazione ha requisiti univoci non acquisiti in semplici alberi delle decisioni. Considerare questo diagramma di flusso o una raccomandazione di Copilot come punto di partenza. Eseguire quindi una valutazione più dettagliata.

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

L'immagine mostra un diagramma di flusso ramificato in cui ogni percorso conduce a una soluzione di bilanciamento del carico. Il primo percorso inizia dall'applicazione Web (HTTP/HTTPs), punta all'applicazione con connessione Internet tramite la freccia No, quindi a Load Balancer tramite un'altra freccia No. Il secondo percorso inizia dall'applicazione Web (HTTP/HTTPs), punta all'applicazione con connessione Internet tramite la freccia No, punta a Globale/distribuita in più aree tramite la freccia Sì e quindi a Load Balancer tramite la freccia No. Il terzo percorso inizia dall'applicazione Web (HTTP/HTTPs), punta all'applicazione con connessione Internet tramite la freccia No, punta a Globale/distribuita in più aree tramite la freccia Sì, quindi a Gestione traffico e bilanciamento del carico tramite la freccia Sì. Il quarto percorso inizia dall'applicazione Web (HTTP/HTTPs), punta all'applicazione con connessione Internet tramite la freccia Sì, all'hosting delle API solo tramite la freccia No, a Gestione API tramite la freccia Sì. Il quinto percorso inizia dall'applicazione Web (HTTP/HTTPs), punta all'applicazione esposta su Internet tramite la freccia Sì, all'hosting solo delle API tramite la freccia No, al gateway applicativo tramite la freccia No. Il sesto percorso inizia dall'applicazione Web (HTTP/HTTPs), punta all'applicazione esposta a Internet tramite la freccia Sì, poi a globale/distribuita in più regioni tramite la freccia Sì, richiedi l'offload SSL o l'elaborazione al livello applicativo per ogni richiesta, verso Azure Front Door e Application Gateway tramite la freccia Sì. Il settimo percorso inizia dall'applicazione Web (HTTP/HTTPs), punta all'applicazione con connessione Internet tramite la freccia Sì, a Aree globali/distribuite tramite la freccia Sì, per richiedere l'offload SSL o l'elaborazione a livello di applicazione per ogni richiesta, in Frontdoor di Azure e Gestione API tramite la freccia Solo API. L'ottavo percorso inizia dall'applicazione Web (HTTP/HTTPs), punta all'applicazione con connessione Internet tramite la freccia Sì, a Globale/Distribuita più aree tramite la freccia Sì, alla domanda: "Richiedi l'offload SSL o l'elaborazione a livello di applicazione per richiesta?", a Hosting - PaaS, IaaS, AKS tramite la freccia No, ad Azure Front Door tramite la freccia PaaS. Il nono percorso inizia dall'applicazione Web (HTTP/HTTPs), punta all'applicazione con connessione Internet tramite la freccia Sì, a Aree globali/distribuite tramite la freccia Sì, per richiedere l'offload SSL o l'elaborazione a livello di applicazione per richiesta, all'hosting - PaaS, IaaS, servizio Azure Kubernetes tramite la freccia No, al controller di ingresso frontdoor di Azure e al gateway applicazione tramite la freccia del servizio Azure Kubernetes. Il decimo percorso inizia dall'applicazione Web (HTTP/HTTPs), punta all'applicazione esposta a Internet tramite la freccia Sì, alle regioni globali/distribuite tramite la freccia Sì, a "Richiedi il disaccoppiamento SSL o l'elaborazione a livello di applicazione per richiesta", all'hosting - PaaS, IaaS, AKS tramite la freccia No, a Azure Front Door e al servizio di bilanciamento del carico tramite la freccia VM IaaS. L'undicesimo percorso inizia dall'applicazione Web (HTTP/HTTPs), punta all'applicazione rivolta a Internet tramite la freccia Sì, a Globale/Distribuita in più regioni tramite la freccia Sì, a "Richiedi un'accelerazione delle prestazioni?" tramite la freccia No, al Gateway applicazione tramite la freccia No. Il dodicesimo percorso inizia dall'applicazione Web (HTTP/HTTPS), punta all'applicazione con connessione Internet tramite la freccia Sì, verso Più aree globali/distribuite tramite la freccia Sì, per sapere se richiedi l'accelerazione delle prestazioni tramite la freccia No, per sapere se richiedi l'offload SSL o l'elaborazione a livello di applicazione per ogni richiesta tramite la freccia Sì, a Azure Front Door e al Application Gateway tramite la freccia Sì. Il tredicesimo percorso inizia dall'applicazione web (HTTP/HTTPs), punta all'applicazione esposta a Internet tramite la freccia Sì, a Più regioni distribuite globalmente tramite la freccia Sì, alla domanda "Richiedi l'accelerazione delle prestazioni?" tramite la freccia No, a "Richiedi l'offload SSL o l'elaborazione a livello di applicazione per richiesta?" tramite la freccia Sì, ad Azure Front Door e Gestione API tramite la freccia Solo API. Il quattordicesimo percorso inizia dall'applicazione Web (HTTP/HTTPs), punta all'applicazione esposta su Internet tramite la freccia Sì, a Globale/Distribuito in più regioni tramite la freccia Sì, a richiedi l'accelerazione delle prestazioni tramite la freccia No, a Gateway Applicazione tramite la freccia No. Il quindicesimo percorso inizia dall'applicazione Web (HTTP/HTTPs), punta all'applicazione accessibile via Internet tramite la freccia Sì, a Globale/Distribuita in più regioni tramite la freccia Sì, alla domanda se richiedi l'accelerazione delle prestazioni tramite la freccia No, al Gateway applicazione e gestione API tramite la freccia Solo API.

Quando il carico di lavoro include diversi servizi che richiedono il bilanciamento del carico, valutare singolarmente ogni servizio. Una configurazione efficace usa spesso più di un tipo di soluzione di bilanciamento del carico. È possibile incorporare queste soluzioni in posizioni diverse nell'architettura del carico di lavoro per gestire funzioni o ruoli univoci.

Definizioni

  • L'applicazione Web (HTTP/HTTPS) fa riferimento a un'applicazione che richiede almeno una delle funzionalità seguenti:

    • Prende una decisione di routing per i dati di livello 7, ad esempio un percorso URL
    • Supporta l'ispezione del payload di comunicazione, come il corpo della richiesta HTTP
    • Gestisce la funzionalità Tls (Transport Layer Security)
  • L'applicazione con connessione Internet fa riferimento a un'applicazione accessibile 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 Denial of Service distribuita.

  • Globale o distribuito in più aree significa che il servizio di bilanciamento del carico deve avere un singolo piano di controllo a disponibilità elevata che instrada il traffico agli endpoint pubblici nell'applicazione distribuita a livello globale. Questa configurazione può supportare topologie attive-attive o attive-passive tra aree.

    Annotazioni

    È possibile usare un servizio regionale, come Application Gateway, per effettuare il bilanciamento del carico tra back-end che coprono più regioni e controllare il routing attraverso un singolo piano di controllo. Funziona usando un collegamento privato tra regioni, un'interconnessione di rete virtuale globale o anche indirizzi IP pubblici di servizi in altre regioni.

    Questo scenario non è il punto principale di questa decisione.

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

  • La piattaforma distribuita come servizio (PaaS) offre 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 per la scalabilità.

  • Il servizio Azure Kubernetes consente di distribuire e gestire applicazioni in contenitori. AKS fornisce Kubernetes serverless, un'esperienza integrata di integrazione continua e consegna continua (CI/CD), e sicurezza e governance di livello aziendale. Per ulteriori informazioni, consultare AKS architecture design.

  • L'infrastruttura distribuita come servizio (IaaS) è un'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.

  • L'elaborazione a livello di applicazione si riferisce a un routing speciale all'interno di una rete virtuale. Gli esempi includono il routing basato sul percorso tra macchine virtuali o set di scalabilità di macchine virtuali. Per ulteriori informazioni, consultare Distribuire un gateway applicativo dietro Azure Front Door.

  • Solo le API fanno riferimento alla necessità di bilanciare il carico delle API HTTP(S) che non sono applicazioni Web. In questo caso, se i tuoi carichi di lavoro usano già la Gestione API per le funzionalità del gateway, potresti considerare la sua funzionalità di bilanciamento del carico facoltativa per indirizzare il traffico tra i back-end API che non sono già bilanciati tramite un altro meccanismo. Se il carico di lavoro non usa Gestione API, non usarlo esclusivamente per il bilanciamento del carico.

  • L'accelerazione delle prestazioni si riferisce alle funzionalità che accelerano l'accesso Web. L'accelerazione delle prestazioni può essere ottenuta utilizzando reti per la distribuzione di contenuti o punti di presenza ottimizzati per l'onboarding accelerato dei client nella rete di destinazione. Frontdoor di Azure supporta sia le reti per la distribuzione di contenuti che l'accelerazione del traffico Anycast. È possibile ottenere i vantaggi di entrambe le funzionalità con o senza gateway applicazione nell'architettura.

Altre considerazioni

Ogni servizio di bilanciamento del carico include anche funzionalità di supporto o dettagli di implementazione da considerare. Ecco alcuni esempi che potrebbero essere rilevanti per lo scenario di bilanciamento del carico:

  • Supporto di WebSocket
  • Supporto degli eventi inviati dal server
  • 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 e la rimozione di nodi non integri dalla logica di routing

Offload delle funzionalità per il servizio di bilanciamento del carico

Alcune opzioni di bilanciamento del carico in Azure consentono di eseguire l'offload delle funzionalità dai nodi back-end al servizio di bilanciamento del carico. Queste opzioni implementano il modello di progettazione cloud Gateway Offloading. Ad esempio, il gateway applicazione può eseguire l'offload di TLS, in modo che il certificato pubblico del carico di lavoro sia gestito in un'unica posizione anziché tra nodi back-end. La gestione delle API può essere configurata per delegare alcune preoccupazioni di autorizzazione di base, come la convalida delle attestazioni nei token di accesso JWT (JSON Web Token). L'offload delle problematiche trasversali può contribuire a ridurre la complessità della logica nei back-end e migliorare le prestazioni.

Esempi

Nella tabella seguente sono elencati vari articoli basati sui servizi di bilanciamento del carico usati nella soluzione.

Servizi Articolo Descrizione
Bilanciatore di carico 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.
Gestore del 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.
Gateway delle applicazioni e Gestione delle API Architettura della zona di atterraggio di gestione delle API Usare Application Gateway per scaricare il web application firewall e TLS. Usare Gestione API per bilanciare il carico tra back-end API.
Traffic Manager e Application Gateway 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