Load Balancing: cos’è e perché è fondamentale per un sito web

Scritto da Webristle

Feb 12, 2023

Febbraio 12, 2023

Il load balancing, in generale, rientra tra le soluzioni di ottimizzazione del carico di lavoro, a seguito della crescita esponenziale del traffico di rete che vede gli utenti sempre più esigenti in termini di velocità, accesso e sicurezza.

In questo articolo scoprirai:

  • la definizione di load balancing
  • le tipologie di load balancer
  • come funziona e come di si configura il load balancing
  • quali sono in vantaggi del load balancing.

 

Load balancing cos’è

Prima di parlarti del bilanciamento del carico è necessario rispondere a un’altra domanda, cioè cosa sono i load?. Si tratta delle richieste di lavoro che vengono inviate a un sistema o a una rete. Queste richieste possono includere attività come l’accesso a un sito web, la visualizzazione di un video o la richiesta di un servizio. In un sistema informatico, i load possono rappresentare un carico elevato sulla CPU, sulla memoria o sulla larghezza di banda, a seconda del tipo di richiesta.

Dunque, il Load balancing è una tecnica che viene utilizzata per distribuire il carico di lavoro tra più risorse (come server, processori, reti, etc.) al fine di ottimizzare la performance, la disponibilità e la tolleranza ai guasti di un sistema. Questo cosa implica? In pratica, quando viene richiesta un’azione, ad esempio una richiesta web, il carico di lavoro viene distribuito tra più risorse, in modo che nessuna di esse venga sovraccaricata. In questo modo, il sistema può gestire un numero elevato di richieste contemporaneamente e fornire performance molto soddisfacenti.

I load balancer vengono utilizzati in molte applicazioni, come ad esempio il Web hosting, le reti di calcolo distribuite, le reti di gioco online e molti altri sistemi che richiedono la gestione di un alto volume di richieste.

 

Load Balancer Hardware vs. Load Balancing Software

Le tradizionali soluzioni di bilanciamento del carico si basano su hardware proprietario ospitato in un data center e possono essere piuttosto costose da acquisire, mantenere e aggiornare. I sistemi di bilanciamento del carico basati su software possono offrire le prestazioni e l’affidabilità delle soluzioni basate su hardware a un costo molto inferiore, poiché vengono eseguiti su hardware di base.

La maggior parte delle aziende segue le best practice e distribuisce i sistemi di bilanciamento del carico nello stesso ambiente delle risorse che stanno bilanciando il carico: on-premise per le applicazioni in esecuzione nel data center e nel cloud per le applicazioni ospitate nel cloud. I fornitori di infrastrutture cloud in genere non consentono l’utilizzo di hardware proprietario o del cliente nel loro ambiente, quindi le aziende che distribuiscono load balancer hardware in locale devono comunque utilizzare un bilanciatore del carico software per le risorse cloud. Ciò richiede che il personale IT comprenda e mantenga due diverse soluzioni di bilanciamento del carico. Al contrario, la stessa soluzione di bilanciamento del carico basata su software può essere implementata sia on-premise che nel cloud, riducendo la complessità operativa, i costi e il tempo necessario per sviluppare e distribuire le applicazioni.

 

Tipologie di load balancing

Network Load Balancer

Un sistema di bilanciamento del carico di rete è un sistema di bilanciamento del carico che distribuisce il traffico su più reti locali e WAN in modo da gestire grandi volumi di richieste degli utenti allo scopo di massimizzare le prestazioni e l’affidabilità.

Una rete di grandi dimensioni viene in genere creata collegando insieme più reti più piccole. Quando i computer, i server o i dispositivi di una rete sono molto vicini tra loro, ad esempio all’interno di un singolo ufficio o di una casa, la rete viene definita LAN (Local Area Network). Il collegamento di più LAN, in genere su un’area geografica più ampia, produce una rete WAN (Wide Area Network). Internet stesso può essere pensato come una WAN che aggrega molte WAN più piccole.

Per gestire grandi volumi di traffico sui loro siti Web, le aziende spesso posizionano un sistema di bilanciamento del carico davanti a un gruppo di server connessi alla stessa LAN e che eseguono le stesse applicazioni (a volte indicato come server farm). Per una ridondanza ancora maggiore, un’azienda potrebbe distribuire le richieste tra i server su più LAN aggregate in una WAN. Uno degli obiettivi del bilanciamento del carico è massimizzare l’affidabilità delle applicazioni eliminando i singoli punti di errore. L’implementazione di bilanciatori del carico di rete per bilanciare il carico tra i server su più LAN o anche su più WAN garantisce che anche se tutti i server in una LAN subiscono un guasto (o una partizione di rete isola la LAN), gli utenti non riscontrino problemi, perché il traffico viene reindirizzato a LAN accessibili dove i server sono ancora online.

Un tipo comune di bilanciamento del carico di rete è un global server load balancing (GSLB), che distribuisce le richieste degli utenti su più gruppi di server distribuiti geograficamente. Gli utenti ottengono risposte rapide alle loro richieste perché i server si trovano nelle vicinanze (sia geograficamente che in termini di salti di rete) e le aziende possono essere sicure dell’elevata disponibilità dei loro siti Web in tutti i casi tranne i casi più estremi di guasto della rete e del server.

 

Cloud Load Balancer

Il bilanciamento del carico del cloud si riferisce alla distribuzione delle richieste dei client su più server delle applicazioni in esecuzione in un ambiente cloud. Come altre forme di bilanciamento del carico, il cloud load balancing consente di massimizzare le prestazioni e l’affidabilità delle applicazioni; i suoi vantaggi rispetto al tradizionale bilanciamento del carico delle risorse locali sono il (solitamente) costo inferiore e la scalabilità dell’applicazione verso l’alto o verso il basso per soddisfare la domanda.

Un numero sempre crescente di aziende, soprattutto le piccole imprese, eseguono applicazioni di ogni tipo nel cloud. Un’azienda potrebbe utilizzare un CRM basato su cloud per archiviare le informazioni sui clienti, un sistema ERP basato su cloud per tenere traccia dei dati di prodotto, un fornitore di hosting Web come Google per ospitare il proprio sito Web e Amazon Elastic Compute Cloud (EC2) per eseguire una manciata di applicazioni personalizzate. È considerata una buona pratica eseguire il provisioning del server di bilanciamento del carico nello stesso ambiente delle risorse che sta bilanciando il carico. Pertanto, quando la maggior parte dell’infrastruttura informatica di un’azienda è ospitata nel cloud, ha senso eseguire anche il bilanciamento del carico nel cloud.

Quali sono i vantaggi del cloud load balancer?

I vantaggi del bilanciamento del carico del cloud, in particolare, derivano dal carattere scalabile e globale del cloud stesso. La facilità e la velocità del ridimensionamento nel cloud significa che le aziende possono gestire i picchi di traffico senza prestazioni degradate, posizionando un sistema di bilanciamento del carico nel cloud di fronte a un gruppo di istanze dell’applicazione, che può ridimensionarsi rapidamente in risposta al livello della domanda. La capacità di ospitare un’applicazione in più hub cloud in tutto il mondo può aumentare l’affidabilità. Se un’interruzione di corrente colpisce gli Stati Uniti nord-orientali dopo una tempesta di neve, ad esempio, il bilanciamento del carico cloud può indirizzare il traffico dalle risorse cloud ospitate lì a risorse ospitate in altre parti del paese.

 

DNS Load Balancer

l bilanciamento del carico DNS è la pratica di configurare un dominio nel DNS in modo tale che le richieste dei client al dominio siano distribuite su un gruppo di macchine server. Un dominio può corrispondere a un sito Web, un sistema di posta, un server di stampa o un altro servizio reso accessibile tramite Internet.

Il DNS funge da “rubrica telefonica” per Internet: mappa i nomi di dominio come www.abc.com, che sono l’equivalente dei nomi personali o aziendali nella rubrica, agli indirizzi IP (Internet Protocol) come 172.16.205.3, che sono l’equivalente dei numeri di telefono. Ogni dispositivo che invia o riceve dati su Internet ha un indirizzo IP univoco, utilizzato dal software e dall’hardware di routing di Internet per identificare e localizzare il dispositivo. Il DNS è ciò che consente agli utenti di accedere a un sito Web per nome, che è più facile da ricordare per la maggior parte delle persone rispetto alla stringa di numeri in un indirizzo IP.

Nella distribuzione più semplice, un singolo computer ospita e serve i dati per un dominio; quando un client richiede la risoluzione del nome a dominio, il DNS restituisce l’indirizzo IP del singolo server. Oggi molti domini utilizzano più macchine server – per proteggersi da errori del server o gestire un volume di traffico elevato, tra le altre ragioni – e in questo caso il DNS restituisce un elenco di tutti gli indirizzi IP dei server in risposta a una richiesta di risoluzione dei nomi.

 

Come funziona il DNS Load Balancing

Il bilanciamento del carico DNS si basa sul fatto che la maggior parte dei client utilizza il primo indirizzo IP che riceve per un dominio. Nella maggior parte delle distribuzioni Linux, il DNS per impostazione predefinita invia l’elenco di indirizzi IP in un ordine diverso ogni volta che risponde a un nuovo client, utilizzando il metodo round-robin. Di conseguenza, client diversi indirizzano le proprie richieste a server diversi, distribuendo efficacemente il carico nel gruppo di server.

Sfortunatamente, questa semplice implementazione del bilanciamento del carico DNS presenta problemi intrinseci che ne limitano l’affidabilità e l’efficienza. Soprattutto, il DNS non verifica la presenza di interruzioni o errori del server o della rete, quindi restituisce sempre lo stesso set di indirizzi IP per un dominio anche se i server sono inattivi o inaccessibili.

Un altro problema sorge perché gli indirizzi risolti vengono solitamente memorizzati nella cache, sia dai server DNS intermedi (chiamati resolver) sia dai client, per migliorare le prestazioni e ridurre la quantità di traffico DNS sulla rete. Ad ogni indirizzo risolto viene assegnata una durata di validità (chiamata time-to-live o TTL), ma durate lunghe significano che i client potrebbero non venire a conoscenza delle modifiche al gruppo di server in modo tempestivo e durate brevi migliorano la precisione ma portano a l’aumento dell’elaborazione e del traffico DNS che la memorizzazione nella cache dovrebbe mitigare in primo luogo.

 

Hybrid Load Balancer

Il bilanciamento del carico ibrido si riferisce alla distribuzione delle richieste dei client su una serie di applicazioni server in esecuzione in vari ambienti: on-premise, in un cloud privato e nel cloud pubblico. Il load balancing ibrido massimizza l’affidabilità, la velocità e l’economicità della distribuzione dei contenuti, indipendentemente da dove si trovino, garantendo un’esperienza utente ottimale.

Oggi molte aziende stanno eseguendo la migrazione delle applicazioni dai server locali al cloud pubblico, per sfruttare vantaggi come costi inferiori e facilità di scalabilità in risposta alla domanda. Ma una migrazione completa di solito non avviene dall’oggi al domani e il cloud non è adatto a tutte le applicazioni, quindi le aziende spesso devono gestire un mix di applicazioni on-premise e cloud. Ad esempio, un’azienda potrebbe utilizzare un server di posta elettronica di Outlook installato e gestito in sede dal proprio team IT interno, ma conservare le informazioni sui clienti in un CRM basato su cloud come Salesforce e ospitare il proprio negozio di e-commerce su Amazon Web Services. Con una soluzione di bilanciamento del carico ibrida, gli utenti accedono alle applicazioni attraverso un unico punto di ingresso e il sistema di bilanciamento del carico identifica e distribuisce il traffico tra le varie posizioni.

Le aziende che hanno investito in cloud privati ​​affrontano una situazione ancora più complessa, perché devono bilanciare il carico tra tre ubicazioni delle risorse. Come il cloud pubblico, un cloud privato è un data center virtuale ospitato fuori sede da un fornitore di servizi cloud. È diverso dal cloud pubblico in quanto garantisce storage dedicato e potenza di calcolo non condivisa con altri clienti del fornitore di cloud.

Utilizzando una soluzione di load balancing ibrida, le aziende possono distribuire il traffico tra i server locali, i cloud privati ​​e il cloud pubblico in modo trasparente, in modo che ogni richiesta venga soddisfatta dalla risorsa più sensata. La decisione di bilanciamento del carico può essere basata su fattori come i seguenti.

  • Posizione – Le risorse del cloud pubblico sono quasi sempre distribuite geograficamente, così come le risorse del cloud privato e on-premise delle aziende multinazionali. La connessione degli utenti al server più vicino riduce la latenza di rete e può essere utilizzata per fornire contenuto localizzato (ad esempio, testo nella lingua del paese in cui risiede il server).
  • Tipo di richiesta – Le soluzioni di bilanciamento del carico ibride possono inoltrare richieste per diversi tipi di contenuti (video, immagini o dati dell’applicazione come informazioni su prezzi e inventario) ai server che ospitano quel tipo di contenuto. L’utilizzo di server specializzati, che possono essere ottimizzati per il contenuto che stanno servendo, elimina la necessità di duplicare lo stesso contenuto in ogni posizione.
  • Valore aziendale – Le richieste provenienti da clienti strategicamente importanti o che potrebbero generare entrate possono essere indirizzate a server dedicati per la consegna più rapida e affidabile, mentre le richieste di valore inferiore vengono indirizzate a una risorsa meno costosa.
  • Sicurezza informatica– Le aziende possono mantenere il massimo controllo sui dati sensibili ospitandoli in un cloud privato o on-premise, archiviando i dati senza restrizioni nel cloud pubblico per risparmiare sui costi.
  • Costo – Il bilanciamento del carico ibrido tra risorse dedicate e cloud consente alle aziende di offrire un’esperienza ottimale agli utenti nel modo più conveniente.

 

 

Come funziona il load balancing?

Il load balancing funziona distribuendo il carico di lavoro tra più risorse. Ciò può essere realizzato in diversi modi, a seconda della configurazione del sistema e delle esigenze specifiche. Ecco alcuni esempi di come il load balancing può essere implementato:

  1. Round-robin: questo metodo assegna le richieste in modo circolare, ad ogni risorsa in sequenza. Questo è il metodo più semplice di load balancing e funziona bene in situazioni in cui le risorse sono simili tra loro.
  2. Least Connection: questo metodo assegna la richiesta alla risorsa che ha il minor numero di connessioni attive. Questo è utile in situazioni in cui alcune risorse sono più potenti di altre.
  3. IP Hash: questo metodo assegna una richiesta alla stessa risorsa ogni volta che proviene dalla stessa origine IP. Questo è utile in situazioni in cui è necessario mantenere la persistenza della connessione per una specifica origine IP.
  4. Weighted: questo metodo assegna pesi alle risorse in base alla loro capacità e assegna la richiesta alla risorsa con il peso più alto. Questo è utile in situazioni in cui alcune risorse sono più potenti di altre e devono gestire una percentuale maggiore di richieste.

Il load balancing viene solitamente gestito da un dispositivo hardware o software dedicato. Questo dispositivo monitora continuamente le risorse e decide a quale risorsa assegnare la richiesta successiva in base al metodo di load balancing configurato. In questo modo, il sistema è in grado di gestire un elevato volume di richieste in modo efficiente e scalabile.

 

Come configurare il load balancing?

La configurazione del load balancer dipende dal sistema specifico che si sta utilizzando e dalle esigenze specifiche. Ecco alcuni passaggi generali che possono essere seguiti per configurare il load balancing.

  1. Scegliere il tipo di load balancing: come ho descritto nel paragrafo precedente, ci sono diversi tipi di load balancing, ognuno con le proprie specifiche e vantaggi. Scegliere il tipo più adatto alle esigenze specifiche è il primo passo per configurare il load balancing.
  2. Configurare le risorse: le risorse su cui il load balancing sarà effettuato devono essere configurate e verificate per assicurarsi che siano disponibili e funzionanti.
  3. Scegliere un dispositivo di load balancing: si può utilizzare un dispositivo hardware o software dedicato. Questo dispositivo sarà responsabile della distribuzione del carico di lavoro tra le risorse.
  4. Configurare il dispositivo di load balancing: una volta che si è scelto il dispositivo di load balancing, è necessario configurarlo per assicurarsi che funzioni correttamente con le risorse e che utilizzi il metodo di load balancing scelto. Questo potrebbe richiedere la configurazione di impostazioni come l’indirizzo IP delle risorse, il peso delle risorse, la configurazione del protocollo di rete, etc.
  5. Testare il sistema: una volta che il load balancing è configurato, è importante testarlo per assicurarsi che funzioni correttamente e che distribuisca il carico di lavoro in modo equo.

Questi sono solo alcuni dei passaggi generali per configurare il load balancing. Potrebbero essere necessari ulteriori passaggi o configurazioni specifiche a seconda del sistema utilizzato e delle esigenze specifiche. È sempre consigliabile consultare la documentazione del prodotto o rivolgersi a un esperto di load balancing per aiuto nella configurazione.

 

Perché è importante il load balancing?

I vantaggi del load balancing sono numerosi, di seguito i più importanti.

  1. Alta disponibilità: distribuendo il carico di lavoro tra più risorse, il load balancing aumenta la disponibilità del sistema. In caso di problemi con una risorsa specifica, il sistema può continuare a funzionare senza interruzioni poiché le richieste vengono automaticamente reindirizzate ad altre risorse.
  2. Prestazioni migliori: il load balancing può aumentare le prestazioni del sistema riducendo la congestione delle risorse. Quando una richiesta viene assegnata alla risorsa più adeguata, la richiesta viene elaborata più rapidamente e il sistema risponde più velocemente alle richieste.
  3. Scalabilità: il load balancing rende il sistema più scalabile, poiché è possibile aggiungere o rimuovere risorse in base alle esigenze. Questo consente di gestire un aumento del volume di richieste senza interruzioni o rallentamenti.
  4. Equilibrio del carico: il load balancing garantisce che il carico di lavoro sia equamente distribuito tra le risorse. Questo aiuta a prevenire il sovraccarico di una singola risorsa, che potrebbe causare problemi come lentezza o crash del sistema.
  5. Ridondanza: il load balancing offre una forma di ridondanza, poiché le richieste possono essere automaticamente reindirizzate ad altre risorse in caso di problemi con una risorsa specifica. Questo aiuta a garantire la continuità del servizio anche in caso di guasti.

In sintesi, il load balancing è importante perché aiuta a migliorare la disponibilità, le prestazioni, la scalabilità, l’equilibrio del carico e la ridondanza del sistema, rendendo il sistema più affidabile e robusto.

Se hai bisogno di un esperto con cui discutere di un progetto complesso che potrebbe aver bisogno di configurazioni specifiche di load balancing, non esitare a contattarci, sarai sempre in buone mani.

 

Articoli correlati

Nessun risultato

La pagina richiesta non è stata trovata. Affina la tua ricerca, o utilizza la barra di navigazione qui sopra per trovare il post.

Spear phishing: cos’è e come proteggersi

Spear phishing: cos’è e come proteggersi

Lo spear phishing rappresenta una minaccia sempre più sofisticata nel panorama della sicurezza informatica. Questa forma di attacco mirato va oltre le tecniche tradizionali di phishing, concentrandosi su individui specifici o aziende con un livello di precisione...

Blockchain: spiegazione di una tecnologia in ascesa

Blockchain: spiegazione di una tecnologia in ascesa

Cos’è e a cosa serve la blockchain? Se ne parla ogni giorno di più, sebbene ci sia molta confusione e incertezza rispetto a cosa sia realmente questa tecnologia, a come funzioni e a quanto sia importante, ecco perché abbiamo tentato di dare una spiegazione di...

Iscriviti alla nostra Newsletter

Ricevi consigli utili su come mantenerti sicuro nel mondo digitale una volta al mese!