Load Balancer: aumentare le prestazioni con il bilanciamento intelligente dei carichi tra i server
Ottimizzazione dell’infrastruttura per un’esperienza gratificante
Ottimizzare l’infrastruttura in modo da poter offrire ai potenziali clienti un’esperienza gratificante è quindi il primo step per il successo. Il load balancer è uno strumento fondamentale in questa architettura ideale: rende la rete più veloce, scalabile e sicura, con benefici significativi a livello di costi e di qualità UX.
[divilifeshortcode id=’9530′]
Load Balancer: la velocità prima di tutto
Oltre che una questione tecnica, la velocità di caricamento per un sito è un aspetto sempre più importante. Questo è vero sia per Google – che lo considera un fattore determinante per il ranking – sia per gli utenti, che mentre la rotellina continua a girare possono decidere di uscire dal tuo sito e passare a quello di un tuo competitor.
Per abbattere i tempi di caricamento e fornire una navigazione veloce anche in contesti dove c’è una grande oscillazione di traffico e quindi di utilizzo delle risorse (si pensi al sito di una big company o a un e-commerce con migliaia di prodotti), diventa quindi fondamentale giocare tutte le carte che la tecnologia oggi offre. Il load balancing è una fra queste e fra i processi che la tua infrastruttura dovrebbe gestire non può mancare. Vediamo perché.
Load Balancer: cos’è
Quello del load balancing – ovvero del bilanciamento dei carichi sulle risorse disponibili – è un sistema di distribuzione dei contenuti web ideato per gestire in maniera efficiente i carichi. Ogni sito web è soggetto nei vari periodi della giornata o dell’anno a variazioni dei flussi di traffico e questo assume particolare importanza quando si tratta di oscillazioni notevoli.
Per siti di importanza strategica per il business diventa quindi fondamentale monitorare costantemente tutte le metriche relative all’utilizzo delle risorse e gestire i picchi in modo da poter garantire questi requisiti:
che i server non vadano in overloading, riducendo la qualità di servizio;
che l’erogazione dei contenuti abbia sempre il massimo delle prestazioni con ridotti tempi di latenza.
Load balancer fisici e virtuali (hardware/software)
Il load balancing può essere effettuato a livello fisico, ovvero installando dei server deputati a questa funzione, oppure virtuale, attraverso la gestione di un software. Nel primo caso si ha a che fare un’infrastruttura statica dai costi elevati, mentre nel secondo si ha un’infrastruttura in grado di adattarsi in tempo reale al traffico effettivo.
Un’infrastruttura statica può andare incontro a due possibili problemi: se sovradimensionata comporta costi inutili, se sottodimensionata può andare incontro a sovraccarichi, con conseguente rischio di fornire un servizio lento e oltre un certo limite di far crollare i server e interrompere il servizio, con conseguenze disastrose sia a livello di immagine che di fatturato.
Un’infrastruttura scalabile invece permette di aggiungere ulteriori server al cluster di erogazione al momento del bisogno, assicurando il mantenimento delle performance di velocità. L’altro vantaggio che rende un’infrastruttura scalabile molto più affidabile è la sua flessibilità: prima di assegnare la richiesta di un client a un server, infatti, il sistema controlla la corretta erogazione e in caso di fault passa la richiesta ad un altro server del cluster di erogazione, garantendo così la continuità di servizio.
Load Balancer: come funziona e bilanciamento dei carichi
I load balancer possono essere configurati con varie modalità di routing delle richieste; in ogni caso la struttura funge da interfaccia unica tra client e i diversi server verso i quali distribuisce, solitamente dislocati in aree geografiche diverse. Vediamo lo schema di funzionamento generico (ogni sistema può avere caratteristiche diverse, a livello di regole di smistamento, gestione degli indirizzi IP, ecc.):
Dopo aver ricevuto una richiesta dal server DNS, il load balancer in base alla propria configurazione la assegna ad un server;
Prima di trasmettere la richiesta esegue un controllo sullo stato di salute del server selezionato interrogando la porta TCP 80 mediante protocollo http;
Se l’esito è positivo avviene la trasmissione della richiesta, altrimenti se il server è troppo lento o fuori servizio, restituisce un errore e il load balancer inoltra la richiesta all’istanza successiva, finché non ne trova una che risponde positivamente.
Le priorità in base alle quali il software assegna le richieste che gli arrivano ai vari cluster dipendono dalla logica dell’algoritmo impiegato. I principali algoritmi utilizzati sono quattro:
Round robin
Weighted Round robin
Least connections
Weighted least connections
Senza addentrarci nei dettagli possiamo dire che le principali differenze consistono nel dare priorità in maniera diversa a quattro fattori fondamentali:
Ordine della richiesta
Numero di richieste in coda
Peso della risorsa richiesta
Capacità del server
Load Balancer: principali vantaggi di implementazione
I vantaggi di un’infrastruttura dotata del supporto di una soluzione di bilanciamento sono molti. Li riassumiamo qui schematicamente:
Velocità: un sistema di gestione dei carichi flessibile garantisce tempi di risposta più veloci. I server nella rete condividono le richieste dei client, preservando così le risorse disponibili per lavorare ad alte prestazioni.
Scalabilità: la struttura si dimensiona automaticamente in base al numero di richieste che riceve, evitando un inutile e costoso sovradimensionamento o, al contrario, rischiosi sovraccarichi.
Continuità di servizio: un sistema di load balancing, in caso di fault di un server, è in grado di isolare il server ha problemi dirottando il traffico verso le catene di delivery funzionante, scongiurando interruzioni di servizio e assicurando la continuità operativa.
Il Load Balancer come parte di un’infrastruttura ottimizzata per la sicurezza e la velocità
In un sistema di delivery finalizzato a massimizzare le performance e la sicurezza, il load balancing rappresenta uno dei moduli di un’infrastruttura più articolata, nella quale si situa al primo livello di interazione con l’utente.
Come si è visto, l’integrazione di un sistema di load balancing rappresenta un importante contributo sotto molti aspetti: nell’ottimizzazione delle risorse, in termini di sicurezza e di incremento delle performance di caricamento delle risorse. Un’infrastruttura disegnata per fornire un servizio web veloce e affidabile non può dunque prescindere dall’implementazione di un load balancer.
iSmartFrame integra nella propria infrastruttura di erogazione load balancer con gestione delle politiche di smistamento personalizzabili. Ogni datacenter ha i propri load balancer a controllo della catena di erogazione dei contenuti, con nodi distribuiti in tutto il mondo. Prima di servire una pagina HTML vengono eseguiti oltre 100 task di ottimizzazione, con enormi benefici per la velocità e, di riflesso, per la user experience e il posizionamento sui motori di ricerca.