Introduzione
I siti Web e le applicazioni moderne generano molto traffico e soddisfano numerose richieste dei clienti contemporaneamente. Il bilanciamento del carico aiuta a soddisfare queste richieste e mantiene la risposta del sito Web e dell'applicazione rapida e affidabile.
In questo articolo imparerai cos'è il bilanciamento del carico, come funziona e quali diversi tipi di bilanciamento del carico esistono.
Definizione del bilanciamento del carico
Il bilanciamento del carico distribuisce un traffico di rete elevato su più server, consentendo alle organizzazioni di scalare orizzontalmente per soddisfare i carichi di lavoro ad alto traffico. Il bilanciamento del carico indirizza le richieste dei client ai server disponibili per distribuire il carico di lavoro in modo uniforme e migliorare la reattività delle applicazioni, aumentando così la disponibilità del sito web.
Il bilanciamento del carico si applica ai livelli 4-7 nell'interconnessione a sistema aperto a sette livelli (OSI ) modello. Le sue capacità sono:
- L4. Dirigere il traffico in base ai dati di rete e ai protocolli del livello di trasporto, ad esempio indirizzo IP e porta TCP.
- L7 . Aggiunge il passaggio del contenuto al bilanciamento del carico, consentendo decisioni di instradamento in base a caratteristiche come intestazione HTTP, identificatore di risorsa uniforme, ID sessione SSL e dati del modulo HTML.
- GSLB. Global Server Load Balancing espande le capacità L4 e L7 ai server in siti diversi.
Perché il bilanciamento del carico è importante?
Il bilanciamento del carico è essenziale per mantenere il flusso di informazioni tra il server e i dispositivi degli utenti utilizzati per accedere al sito (es. computer, tablet, smartphone).
Ci sono diversi vantaggi per il bilanciamento del carico:
- Affidabilità. Un sito Web o un'app deve fornire una buona UX anche quando il traffico è elevato. I sistemi di bilanciamento del carico gestiscono i picchi di traffico spostando i dati in modo efficiente, ottimizzando l'utilizzo delle risorse di distribuzione delle applicazioni e prevenendo il sovraccarico del server. In questo modo, le prestazioni del sito Web rimangono elevate e gli utenti rimangono soddisfatti.
- Disponibilità. Il bilanciamento del carico è importante perché comporta controlli periodici dello stato di salute tra il sistema di bilanciamento del carico e le macchine host per assicurarsi che ricevano le richieste. Se una delle macchine host è inattiva, il sistema di bilanciamento del carico reindirizza la richiesta ad altri dispositivi disponibili.
I bilanciatori del carico inoltre rimuovere i server difettosi dalla piscina fino alla risoluzione del problema. Alcuni sistemi di bilanciamento del carico creano persino nuovi server delle applicazioni virtualizzati per soddisfare un numero maggiore di richieste.
- Sicurezza. Il bilanciamento del carico sta diventando un requisito nella maggior parte delle applicazioni moderne, in particolare con le funzionalità di sicurezza aggiuntive man mano che il cloud computing si evolve. La funzione di offload del sistema di bilanciamento del carico protegge dagli attacchi DDoS spostando il traffico di attacco a un provider di cloud pubblico anziché al server aziendale.
- Intuizione predittiva. Il bilanciamento del carico include analisi in grado di prevedere i colli di bottiglia del traffico e consentire alle organizzazioni di prevenirli. Le informazioni predittive potenziano l'automazione e aiutano le organizzazioni a prendere decisioni per il futuro.
Come funziona il bilanciamento del carico?
I sistemi di bilanciamento del carico si trovano tra i server delle applicazioni e gli utenti su Internet. Una volta che il sistema di bilanciamento del carico riceve una richiesta, determina quale server in un pool è disponibile e quindi instrada la richiesta a quel server.
instradando le richieste ai server disponibili o server con carichi di lavoro inferiori, il bilanciamento del carico riduce la pressione sui server stressati e garantisce disponibilità e affidabilità elevate.
I bilanciatori del carico aggiungono o eliminano dinamicamente i server in caso di alta o bassa domanda. In questo modo, offre flessibilità nell'adattarsi alla domanda.
Il bilanciamento del carico fornisce anche il failover oltre a migliorare le prestazioni. Il sistema di bilanciamento del carico reindirizza il carico di lavoro da un server guasto a uno di backup, mitigando l'impatto sugli utenti finali.
Tipi di bilanciamento del carico
I sistemi di bilanciamento del carico variano in base al tipo di archiviazione, alla complessità del sistema di bilanciamento e alla funzionalità. Di seguito vengono illustrati i diversi tipi di bilanciamento del carico.
Basato su hardware
Un sistema di bilanciamento del carico basato su hardware è hardware dedicato con software proprietario installato. Può elaborare grandi quantità di traffico da vari tipi di applicazioni.
I bilanciatori del carico basati su hardware contengono funzionalità di virtualizzazione integrate che consentono più istanze di bilanciamento del carico virtuale sullo stesso dispositivo.
Basato su software
Un sistema di bilanciamento del carico basato su software viene eseguito su macchine virtuali o server white box, generalmente incorporati in ADC (application delivery controllers). Il bilanciamento del carico virtuale offre una flessibilità superiore rispetto a quella fisica.
I bilanciatori del carico basati su software vengono eseguiti su hypervisor, container comuni o come processi Linux con un sovraccarico trascurabile su un server bare metal.
Virtuale
Un sistema di bilanciamento del carico virtuale distribuisce il software proprietario di bilanciamento del carico da un dispositivo dedicato su una macchina virtuale per combinare i due tipi sopra menzionati. Tuttavia, i sistemi di bilanciamento del carico virtuali non possono superare le sfide architetturali di scalabilità e automazione limitate.
Basato su cloud
Il bilanciamento del carico basato su cloud utilizza l'infrastruttura cloud. Alcuni esempi di bilanciamento del carico basato su cloud sono:
- Bilanciamento del carico di rete . Il bilanciamento del carico di rete si basa sul livello 4 e sfrutta le informazioni del livello di rete per determinare dove inviare il traffico di rete. Il bilanciamento del carico di rete è la soluzione di bilanciamento del carico più veloce, ma manca di bilanciare la distribuzione del traffico tra i server.
- Bilanciamento del carico HTTP(S) . Il bilanciamento del carico HTTP(S) si basa sul livello 7. È uno dei tipi di bilanciamento del carico più flessibili, consentendo agli amministratori di prendere decisioni sulla distribuzione del traffico in base a qualsiasi informazione fornita con un indirizzo HTTP.
- Bilanciamento del carico interno . Il bilanciamento del carico interno è quasi identico al bilanciamento del carico di rete, tranne per il fatto che può bilanciare la distribuzione nell'infrastruttura interna.
Algoritmi di bilanciamento del carico
Diversi algoritmi di bilanciamento del carico offrono vantaggi e complessità diversi, a seconda del caso d'uso. Gli algoritmi di bilanciamento del carico più comuni sono:
Round Robin
Distribuisce le richieste in sequenza al primo server disponibile e sposta quel server alla fine della coda al termine. L'algoritmo Round Robin viene utilizzato per pool di server uguali, ma non considera il carico già presente sul server.
Connessioni minime
L'algoritmo Least Connections prevede l'invio di una nuova richiesta al server meno occupato . Il metodo di connessione minima viene utilizzato quando sono presenti molte connessioni persistenti distribuite in modo non uniforme nel pool di server.
Tempo di risposta minimo
Il bilanciamento del carico del tempo di risposta minimo distribuisce le richieste al server con il minor numero di connessioni attive e con la risposta media più veloce tempo a una richiesta di monitoraggio sanitario. La velocità di risposta indica quanto è caricato il server.
Hash
L'algoritmo Hash determina dove distribuire le richieste in base a una chiave designata , come l'indirizzo IP del client, il numero di porta o l'URL della richiesta. Il metodo Hash viene utilizzato per le applicazioni che si basano su informazioni archiviate specifiche dell'utente, ad esempio i carrelli sui siti Web di e-commerce.
Carico personalizzato
L'algoritmo di caricamento personalizzato indirizza le richieste ai singoli server tramite SNMP (Protocollo di gestione della rete semplice). L'amministratore definisce il carico del server che il sistema di bilanciamento del carico deve tenere in considerazione durante l'instradamento della query (ad es. utilizzo di CPU e memoria e tempo di risposta).