Grazie al bilanciamento del carico (conosciuto in inglese come “load balancing”), gli accessi al server possono essere distribuiti uniformemente su diverse risorse hardware da un’istanza tecnica a monte, il cosiddetto load balancer. In questo modo viene garantita una velocità di accesso stabile, fondamentale per generare contatti e clienti.

Server virtuali (VPS)
Virtualizzazione totale con accesso root completo
  • Traffico illimitato e fino a 1 Gbit/s di larghezza di banda
  • Storage SSD NVMe veloce
  • Plesk Web Host Edition incluso

Cos’è il bilanciamento del carico?

Il bilanciamento del carico è particolarmente diffuso nella tecnologia dei server e descrive un processo in cui le richieste vengono distribuite a diversi server in background, senza che gli utenti se ne accorgano. Il load balancer utilizzato a tale scopo può essere implementato come hardware o software. Assegna diversi server a un dominio senza causare conflitti di indirizzi ed è di dominio pubblico.

N.B.

Generalmente ogni dominio è collegato a un solo server web. Se a causa di un sovraccarico non è possibile portare a termine la richiesta, l’utente riceve un messaggio di errore sotto forma di un codice di stato HTTP e la pagina non viene visualizzata.

I server web subordinati verranno denominati con aggiunte di dominio www1, www2, www3, ecc. Così facendo il load balancing mette a disposizione una pagina sempre allo stesso indirizzo, malgrado dietro si nascondano diversi server. Ciò impedisce un sovraccarico del server, dato che le richieste vengono ripartite tra i diversi computer fisici all’interno del cluster. L’utente non si accorge di niente poiché la distribuzione delle richieste avviene in base a complessi algoritmi in background.

Al di là dei server web, il bilanciamento del carico può giocare un ruolo anche sui computer che lavorano con diversi processori. In un caso simile il load balancer assicura che le richieste vengano distribuite equamente sui diversi processori per ottenere maggiori prestazioni. I load balancer sono richiesti anche quando si utilizza un software per container come Kubernetes. In questo caso assicurano che i carichi di lavoro siano distribuiti in modo sensato tra i diversi pod.

Come funziona il load balancing?

Le richieste che giungono a un server web, fatte ad esempio aprendo le pagine, passano per prima cosa tramite un load balancer che si occupa di bilanciare il carico, reindirizzando gli accessi su diversi server. Il load balancer di per sé può essere realizzato come hardware o software e in entrambi i casi il principio rimane uguale: una richiesta arriva al load balancer e in base al procedimento utilizzato il dispositivo o il software inoltra i dati al server giusto.

La base tecnica è costituita dal procedimento DNS: l’utente richiama un sito solo tramite URL, che grazie al DNS (Domain Name System) è convertito in un indirizzo IP che rimanda di nuovo al load balancer. Solitamente l’utente non si accorge di questi processi.

Immagine: Schema sul funzionamento del bilanciamento del carico
Schema: un load balancer distribuisce il carico degli accessi dei clienti via internet o web a diversi server.

Quali sono i vantaggi del bilanciamento del carico?

I tre vantaggi più importanti di un load balancer ben implementato sono i seguenti:

  • Tempi di accesso ottimizzati: distribuendo il traffico su più server, è possibile ottenere tempi di accesso più brevi, anche in presenza di molte richieste contemporaneamente.
  • Maggiore affidabilità: un load balancer garantisce una maggiore sicurezza contro i guasti, poiché il traffico da un server troppo lento viene automaticamente inoltrato ad altri server del cluster. Se un server non è raggiungibile, il sito web ospitato rimane disponibile.
  • Manutenzione semplificata del sistema: il bilanciamento del carico è un ottimo supporto per la manutenzione di un sistema di server. Le configurazioni e gli aggiornamenti possono essere eseguiti durante il funzionamento del server senza intaccare le prestazioni. Il load balancer riconosce lo stato di manutenzione e reindirizza le richieste di conseguenza.

Quali sono i procedimenti più conosciuti per il load balancing?

La scelta degli algoritmi è decisiva per stabilire come distribuire le richieste in entrata. Gli algoritmi più conosciuti per il load balancing sono: Round Robin, Weighted Round Robin, Least Connections e Weighted Least Connections.

Round Robin

Round Robin indica un processo circolare in cui le richieste in entrata del server vengono gestite dal load balancer in una lista di attesa e vengono distribuite tra i server attivati nell’ordine. Così ogni nuova richiesta viene assegnata al server successivo della serie e gli accessi vengono ripartiti equamente nel cluster di load balancing. Utilizzando il procedimento Round Robin, tutti i processi vengono trattati alla stessa maniera, indipendentemente dall’urgenza della richiesta o dal carico a cui il server è sottoposto. Un load balancer che opera secondo il principio Round Robin è particolarmente adatto ad ambienti in cui tutti i server del cluster possono attingere praticamente alle stesse risorse.

Weighted Round Robin

I punti deboli del classico algoritmo Round Robin nei cluster di server eterogenei possono essere riequilibrati tramite una distribuzione bilanciata Round Robin. In questo modo le richieste in entrata vengono distribuite considerando il carico statico del singolo server, definito inizialmente dall’amministratore o dall’amministratrice.

Ad esempio, ai server con prestazioni elevate si può assegnare il valore “100” e ai server meno efficienti il valore “50”. In una struttura simile il load balancer assegnerebbe due richieste al server caricato con “100”, mentre il server caricato con “50” riceverebbe solo una richiesta. Weighted Round Robin è consigliabile per un load balancing in cui sono a disposizione risorse differenti tra i server collegati in un cluster.

Least Connections

Nella distribuzione seriale delle richieste al server tramite load balancer, entrambi gli algoritmi Round Robin non considerano quante connessioni i server subordinati devono mantenere in un determinato intervallo di tempo. Così è possibile accumulare più connessioni in un server del cluster. Questo comporta che il server viene sovraccaricato, anche se stabilisce meno connessioni rispetto agli altri. A questo punto entra in aiuto l’algoritmo Least Connections che distribuisce le richieste in base alle connessioni già stabilite sul server corrispondente: il load balancer assegna la richiesta successiva al server con il minor numero di connessioni attive.

Questo metodo di load balancing è consigliato per i cluster di server omogenei che hanno a disposizione su tutti i computer risorse equivalenti.

Weighted Least Connections

Se un cluster di server presenta diverse capacità, al posto dell’algoritmo Least Connections deve essere applicato un load balancing che distribuisce il carico secondo le connessioni già esistenti. Per questo vengono conteggiati sia il numero delle connessioni attive che il carico definito dall’amministratore, assicurando un bilanciamento del carico equilibrato all’interno del cluster di server. Le nuove richieste vengono assegnate automaticamente dal load balancer ai server che si presuppone siano meno carichi in quel momento, considerando il numero di connessioni attive stabilite sul server.

Quali problemi possono sorgere utilizzando il load balancing?

Utilizzando il load balancing sorgono spesso problemi, specialmente nel settore e-commerce. Ad esempio: il visitatore o la visitatrice di un sito riempie il carrello con articoli che vorrebbe comprare. Questi articoli rimangono memorizzati per tutta la durata della sessione, indipendentemente dalle pagine che la persona apre sull’e-commerce. Un load balancer classico distribuirebbe le richieste su diversi server, ma così facendo il contenuto del carrello andrebbe perso.

Per risolvere questo problema ci sono due approcci applicabili. Il primo metodo prevede che il load balancer reagisca all’indirizzo IP dell’utente, di modo che le richieste provenienti dallo stesso indirizzo IP vengano inoltrate sempre allo stesso server. Il secondo, invece, consisterebbe nel carpire l’ID della sessione, rilevabile dalla richiesta effettuata, per stabilire così a quale server deve essere inviata la richiesta.

Perché i load balancer sono così importanti?

Se i servizi che offri online rappresentano per te una fonte di guadagno, la tua azienda non può permettersi che i server siano irraggiungibili. Nel caso poi che ne utilizzi solo uno che però non funziona più a causa di un sovraccarico, il sito non sarà più disponibile per i potenziali clienti. Ciò comporta diversi problemi: da una parte non guadagnerai niente durante il sovraccarico, perché non c’è modo di richiedere i tuoi servizi o di procedere con gli acquisti, mentre dall’altra la fiducia riposta in te da parte dei (potenziali) clienti diminuirà.

Ancora più grave per gli utenti è se si verifica un sovraccarico del server durante l’ordine. Spesso in un caso simile si instaura un clima di grande insicurezza e i diretti interessati non sanno se l’ordine abbia effettivamente raggiunto il sistema e sia stato registrato.

Ma anche se non offri i tuoi servizi principalmente su internet, il sito dovrebbe comunque essere sempre raggiungibile. Il sito web è diventato uno dei canali principali per ottenere informazioni, per cui se un potenziale cliente alla ricerca di maggiori dettagli online sulla tua azienda non riuscisse a visitare il tuo sito, prenderebbe sicuramente in considerazione uno dei tuoi concorrenti. Se però ti affidi a un load balancer, diminuirai questi rischi.

Come realizzare il load balancing nella tua azienda

Il load balancing è realizzabile sia su soluzioni hardware e software che su un server virtuale. Molti provider mettono a disposizione delle aziende dei pacchetti completi professionali sia sotto forma di Infrastructure as a Service (IaaS) sia come componenti di rete per la propria infrastruttura informatica.

Dato che l’acquisto di load balancer proprietari generalmente comporta dei costi elevati, le piccole aziende usufruiscono di soluzioni open source come NGINX, che costituisce una possibilità conveniente di assicurarsi che il sito di un’azienda o altri progetti web siano sempre disponibili grazie a una distribuzione del carico efficiente all’interno della rete di server. Nell’ambito del web hosting il load balancing viene spesso offerto come funzione aggiuntiva nei server cloud.

Novità: offerta VPS
Il tuo server virtuale a prezzi imbattibili

Prova il nostro VPS. I primi 30 giorni sono in omaggio e se allo scadere del periodo di prova non sarai convinto, ti rimborseremo tutte le spese sostenute.

Hai trovato questo articolo utile?
Vai al menu principale