NETWORK LOAD BALANCING: DEFINIZIONE E VANTAGGI
Cos’è il network load balancing?
In informatica il load balancing (in italiano bilanciamento del carico) è una tecnica che migliora la distribuzione dei workload attraverso molteplici risorse computazionali, come computer, cluster, dischi, server.
L’obiettivo del load balancing è di ottimizzare l’uso delle risorse a disposizione, massimizzandone la capacità produttiva e minimizzando il tempo di risposta, ed evitando il sovraccarico della singola risorsa. Usando il load balancing con molteplici risorse invece di un singolo componente, l’affidabilità e la scalabilità dell’architettura vengono notevolmente incrementate.

Questa definizione di load balancing si applica a tutti gli aspetti di computing, mentre noi ci concentreremo specificatamente sulle reti. Per quanto riguarda i network infatti, i load balancer vengono usati per pianificare le attività della rete sui backend disponibili.
Un certo numero di client richiede risorse a un certo numero di backend. Il load balancer si pone nel mezzo tra client e backend e ad un alto livello è in grado di svolgere alcune attività critiche, tra le quali:
– Service discovery: quali backends sono disponibili nel sistema? Quali sono i loro indirizzi?
– Controllo dello stato di salute: quali backend sono al momento pronti e disponibili ad accettare le richieste?
– Load balancing: quale algoritmo dev’essere usato per bilanciare le richieste individuali sui backend disponibili?
Quali sono i vantaggi del network load balancing?
L’utilizzo appropriato del load balancing in un sistema distribuito fornisce diversi vantaggi:
- Naming abstraction: il client può rivolgersi al load balancer tramite un meccanismo predefinito e, in seguito, l’attività della risoluzione dei nomi potrà essere delegata al load balancer. Questo meccanismo include librerie incorporate e DNS/IP/posizione delle porte.
- Fault tolerance: attraverso il controllo dello stato di salute e varie tecniche algoritmiche, il load balancer può aggirare un backend sovraccarico o malfunzionante. Ciò significa che un operatore potrà risolvere il problema nei tempi dovuti invece che come un’urgenza.
- Costi e performance: le reti dei sistemi distribuiti sono rararmente omogenee. E’ probabile che un sistema attraversi più zone e regioni e tra le zone, un overload di richieste è nella norma. Un load balancing intelligente è in grado di mantenere il più possibile le richieste di traffico dentro le zone, in modo da aumentare le performance (minor latenza) e ridurre il costo complessivo del sistema (meno banda e fibra necessaria tra le zone).