Grazie al bi­lan­cia­men­to del carico (co­no­sciu­to in inglese come “load balancing”), gli accessi al server possono essere di­stri­bui­ti uni­for­me­men­te su diverse risorse hardware da un’istanza tecnica a monte, il co­sid­det­to load balancer. In questo modo viene garantita una velocità di accesso stabile, fon­da­men­ta­le per generare contatti e clienti.

Server virtuali (VPS)
Affidati ai VPS e server di IONOS, il tuo partner digitale cer­ti­fi­ca­to ISO
  • 1 Gbps di larghezza di banda e traffico il­li­mi­ta­to
  • Di­spo­ni­bi­li­tà del 99,99% e cer­ti­fi­ca­zio­ne ISO
  • As­si­sten­za 24/7 e con­su­len­te personale

Cos’è il bi­lan­cia­men­to del carico?

Il bi­lan­cia­men­to del carico è par­ti­co­lar­men­te diffuso nella tec­no­lo­gia dei server e descrive un processo in cui le richieste vengono di­stri­bui­te a diversi server in back­ground, senza che gli utenti se ne accorgano. Il load balancer uti­liz­za­to a tale scopo può essere im­ple­men­ta­to come hardware o software. Assegna diversi server a un dominio senza causare conflitti di indirizzi ed è di dominio pubblico.

N.B.

Ge­ne­ral­men­te ogni dominio è collegato a un solo server web. Se a causa di un so­vrac­ca­ri­co 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 vi­sua­liz­za­ta.

I server web su­bor­di­na­ti verranno de­no­mi­na­ti con aggiunte di dominio www1, www2, www3, ecc. Così facendo il load balancing mette a di­spo­si­zio­ne una pagina sempre allo stesso indirizzo, malgrado dietro si na­scon­da­no diversi server. Ciò impedisce un so­vrac­ca­ri­co 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 di­stri­bu­zio­ne delle richieste avviene in base a complessi algoritmi in back­ground.

Al di là dei server web, il bi­lan­cia­men­to del carico può giocare un ruolo anche sui computer che lavorano con diversi pro­ces­so­ri. In un caso simile il load balancer assicura che le richieste vengano di­stri­bui­te equamente sui diversi pro­ces­so­ri per ottenere maggiori pre­sta­zio­ni. I load balancer sono richiesti anche quando si utilizza un software per container come Ku­ber­ne­tes. In questo caso as­si­cu­ra­no che i carichi di lavoro siano di­stri­bui­ti 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 bi­lan­cia­re il carico, rein­di­riz­zan­do gli accessi su diversi server. Il load balancer di per sé può essere rea­liz­za­to come hardware o software e in entrambi i casi il principio rimane uguale: una richiesta arriva al load balancer e in base al pro­ce­di­men­to uti­liz­za­to il di­spo­si­ti­vo o il software inoltra i dati al server giusto.

La base tecnica è co­sti­tui­ta dal pro­ce­di­men­to DNS: l’utente richiama un sito solo tramite URL, che grazie al DNS (Domain Name System) è con­ver­ti­to in un indirizzo IP che rimanda di nuovo al load balancer. So­li­ta­men­te l’utente non si accorge di questi processi.

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

Quali sono i vantaggi del bi­lan­cia­men­to del carico?

I tre vantaggi più im­por­tan­ti di un load balancer ben im­ple­men­ta­to sono i seguenti:

  • Tempi di accesso ot­ti­miz­za­ti: di­stri­buen­do il traffico su più server, è possibile ottenere tempi di accesso più brevi, anche in presenza di molte richieste con­tem­po­ra­nea­men­te.
  • Maggiore af­fi­da­bi­li­tà: un load balancer ga­ran­ti­sce una maggiore sicurezza contro i guasti, poiché il traffico da un server troppo lento viene au­to­ma­ti­ca­men­te inoltrato ad altri server del cluster. Se un server non è rag­giun­gi­bi­le, il sito web ospitato rimane di­spo­ni­bi­le.
  • Ma­nu­ten­zio­ne sem­pli­fi­ca­ta del sistema: il bi­lan­cia­men­to del carico è un ottimo supporto per la ma­nu­ten­zio­ne di un sistema di server. Le con­fi­gu­ra­zio­ni e gli ag­gior­na­men­ti possono essere eseguiti durante il fun­zio­na­men­to del server senza intaccare le pre­sta­zio­ni. Il load balancer riconosce lo stato di ma­nu­ten­zio­ne e rein­di­riz­za le richieste di con­se­guen­za.

Quali sono i pro­ce­di­men­ti più co­no­sciu­ti per il load balancing?

La scelta degli algoritmi è decisiva per stabilire come di­stri­bui­re le richieste in entrata. Gli algoritmi più co­no­sciu­ti per il load balancing sono: Round Robin, Weighted Round Robin, Least Con­nec­tions e Weighted Least Con­nec­tions.

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 di­stri­bui­te tra i server attivati nell’ordine. Così ogni nuova richiesta viene assegnata al server suc­ces­si­vo della serie e gli accessi vengono ripartiti equamente nel cluster di load balancing. Uti­liz­zan­do il pro­ce­di­men­to Round Robin, tutti i processi vengono trattati alla stessa maniera, in­di­pen­den­te­men­te dall’urgenza della richiesta o dal carico a cui il server è sot­to­po­sto. Un load balancer che opera secondo il principio Round Robin è par­ti­co­lar­men­te adatto ad ambienti in cui tutti i server del cluster possono attingere pra­ti­ca­men­te alle stesse risorse.

Weighted Round Robin

I punti deboli del classico algoritmo Round Robin nei cluster di server ete­ro­ge­nei possono essere rie­qui­li­bra­ti tramite una di­stri­bu­zio­ne bi­lan­cia­ta Round Robin. In questo modo le richieste in entrata vengono di­stri­bui­te con­si­de­ran­do il carico statico del singolo server, definito ini­zial­men­te dall’am­mi­ni­stra­to­re o dall’am­mi­ni­stra­tri­ce.

Ad esempio, ai server con pre­sta­zio­ni elevate si può assegnare il valore “100” e ai server meno ef­fi­cien­ti il valore “50”. In una struttura simile il load balancer as­se­gne­reb­be due richieste al server caricato con “100”, mentre il server caricato con “50” ri­ce­ve­reb­be solo una richiesta. Weighted Round Robin è con­si­glia­bi­le per un load balancing in cui sono a di­spo­si­zio­ne risorse dif­fe­ren­ti tra i server collegati in un cluster.

Least Con­nec­tions

Nella di­stri­bu­zio­ne seriale delle richieste al server tramite load balancer, entrambi gli algoritmi Round Robin non con­si­de­ra­no quante con­nes­sio­ni i server su­bor­di­na­ti devono mantenere in un de­ter­mi­na­to in­ter­val­lo di tempo. Così è possibile ac­cu­mu­la­re più con­nes­sio­ni in un server del cluster. Questo comporta che il server viene so­vrac­ca­ri­ca­to, anche se sta­bi­li­sce meno con­nes­sio­ni rispetto agli altri. A questo punto entra in aiuto l’algoritmo Least Con­nec­tions che di­stri­bui­sce le richieste in base alle con­nes­sio­ni già stabilite sul server cor­ri­spon­den­te: il load balancer assegna la richiesta suc­ces­si­va al server con il minor numero di con­nes­sio­ni attive.

Questo metodo di load balancing è con­si­glia­to per i cluster di server omogenei che hanno a di­spo­si­zio­ne su tutti i computer risorse equi­va­len­ti.

Weighted Least Con­nec­tions

Se un cluster di server presenta diverse capacità, al posto dell’algoritmo Least Con­nec­tions deve essere applicato un load balancing che di­stri­bui­sce il carico secondo le con­nes­sio­ni già esistenti. Per questo vengono con­teg­gia­ti sia il numero delle con­nes­sio­ni attive che il carico definito dall’am­mi­ni­stra­to­re, as­si­cu­ran­do un bi­lan­cia­men­to del carico equi­li­bra­to all’interno del cluster di server. Le nuove richieste vengono assegnate au­to­ma­ti­ca­men­te dal load balancer ai server che si pre­sup­po­ne siano meno carichi in quel momento, con­si­de­ran­do il numero di con­nes­sio­ni attive stabilite sul server.

Quali problemi possono sorgere uti­liz­zan­do il load balancing?

Uti­liz­zan­do il load balancing sorgono spesso problemi, spe­cial­men­te nel settore e-commerce. Ad esempio: il vi­si­ta­to­re o la vi­si­ta­tri­ce di un sito riempie il carrello con articoli che vorrebbe comprare. Questi articoli rimangono me­mo­riz­za­ti per tutta la durata della sessione, in­di­pen­den­te­men­te dalle pagine che la persona apre sull’e-commerce. Un load balancer classico di­stri­bui­reb­be le richieste su diversi server, ma così facendo il contenuto del carrello andrebbe perso.

Per risolvere questo problema ci sono due approcci ap­pli­ca­bi­li. Il primo metodo prevede che il load balancer reagisca all’indirizzo IP dell’utente, di modo che le richieste pro­ve­nien­ti dallo stesso indirizzo IP vengano inoltrate sempre allo stesso server. Il secondo, invece, con­si­ste­reb­be nel carpire l’ID della sessione, ri­le­va­bi­le dalla richiesta ef­fet­tua­ta, per stabilire così a quale server deve essere inviata la richiesta.

Perché i load balancer sono così im­por­tan­ti?

Se i servizi che offri online rap­pre­sen­ta­no per te una fonte di guadagno, la tua azienda non può per­met­ter­si che i server siano ir­rag­giun­gi­bi­li. Nel caso poi che ne utilizzi solo uno che però non funziona più a causa di un so­vrac­ca­ri­co, il sito non sarà più di­spo­ni­bi­le per i po­ten­zia­li clienti. Ciò comporta diversi problemi: da una parte non gua­da­gne­rai niente durante il so­vrac­ca­ri­co, perché non c’è modo di ri­chie­de­re i tuoi servizi o di procedere con gli acquisti, mentre dall’altra la fiducia riposta in te da parte dei (po­ten­zia­li) clienti diminuirà.

Ancora più grave per gli utenti è se si verifica un so­vrac­ca­ri­co del server durante l’ordine. Spesso in un caso simile si instaura un clima di grande in­si­cu­rez­za e i diretti in­te­res­sa­ti non sanno se l’ordine abbia ef­fet­ti­va­men­te raggiunto il sistema e sia stato re­gi­stra­to.

Ma anche se non offri i tuoi servizi prin­ci­pal­men­te su internet, il sito dovrebbe comunque essere sempre rag­giun­gi­bi­le. Il sito web è diventato uno dei canali prin­ci­pa­li per ottenere in­for­ma­zio­ni, per cui se un po­ten­zia­le cliente alla ricerca di maggiori dettagli online sulla tua azienda non riuscisse a visitare il tuo sito, pren­de­reb­be si­cu­ra­men­te in con­si­de­ra­zio­ne uno dei tuoi con­cor­ren­ti. Se però ti affidi a un load balancer, di­mi­nui­rai questi rischi.

Come rea­liz­za­re il load balancing nella tua azienda

Il load balancing è rea­liz­za­bi­le sia su soluzioni hardware e software che su un server virtuale. Molti provider mettono a di­spo­si­zio­ne delle aziende dei pacchetti completi pro­fes­sio­na­li sia sotto forma di In­fra­struc­tu­re as a Service (IaaS) sia come com­po­nen­ti di rete per la propria in­fra­strut­tu­ra in­for­ma­ti­ca.

Dato che l’acquisto di load balancer pro­prie­ta­ri ge­ne­ral­men­te comporta dei costi elevati, le piccole aziende usu­frui­sco­no di soluzioni open source come NGINX, che co­sti­tui­sce una pos­si­bi­li­tà con­ve­nien­te di as­si­cu­rar­si che il sito di un’azienda o altri progetti web siano sempre di­spo­ni­bi­li grazie a una di­stri­bu­zio­ne del carico ef­fi­cien­te all’interno della rete di server. Nell’ambito del web hosting il load balancing viene spesso offerto come funzione ag­giun­ti­va nei server cloud.

Novità: offerta VPS
Il tuo server virtuale a prezzi im­bat­ti­bi­li

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

Vai al menu prin­ci­pa­le