Che cos’è, a cosa serve e vantaggi del Load Balancing in informatica

Che cos’è, a cosa serve e vantaggi del Load Balancing in informatica

Definizione

In questo articolo informatico andremo a spiegare la funzionalità di bilanciamento del carico in ambiente Cloud ovvero il Load Balancing.
Prima di dare la definizione di Load balacing (o Load Balancer), è necessario introdurre un concetto chiave che sta alla base si questo meccanismo ovvero il Cluster. In informatica un computer cluster, o più semplicemente un cluster (dall’inglese grappolo), è un insieme di computer connessi tra loro tramite una rete telematica. Lo scopo di un cluster è quello di distribuire un’elaborazione molto complessa, tra i vari computer che ne fanno parte. In sostanza, un problema che richiede molte elaborazioni per essere risolto viene scomposto in sottoproblemi, i quali vengono risolti in parallelo tra le varie macchine componenti il cluster in questione, aumentando così la potenza di calcolo del sistema. Partendo da questo concetto possiamo dire che il load balancing, in italiano bilanciamento del carico, è una tecnica informatica che consiste nel distribuire il carico di uno specifico servizio, ad esempio la fornitura di un sito web, tra più server. Attraverso tale tecnica, in sostanza, diverse macchine facenti parte di un unico cluster, collaborano in modo ottimale nel far fronte alle richieste di elaborazione, distribuendo il lavoro tra i diversi sistemi collegati in Rete.

In questo modo, si aumentano la scalabilità e l’affidabilità dell’architettura nel suo complesso. La scalabilità deriva dal fatto che, nel caso sia necessario, si possono aggiungere nuovi server al cluster in pochissimo tempo, mentre la maggiore affidabilità è dovuta al fatto che la rottura di una delle macchine non comprometterebbe la fornitura del servizio, resa possibile grazie alla possibilità di rimpiazzare quest’ultima in brevissimo tempo; non a caso i sistemi di load balancing in genere integrano dei sistemi di monitoraggio, come visto precedentemente, che escludono automaticamente dal cluster i server non raggiungibili e/o guasti, evitando così il fallimento e il conseguente rifiuta di una porzione delle richieste in input. Grazie a questa breve definizione siamo riusciti a focalizzare l’attenzione sull’importanza che questa tecnica possiede e del ruolo critico che svolge nel sistema, poiché è responsabile dello smistamento delle richieste dell’utente tra i vari server affinchè queste vengano elaborate nel minor tempo possibile.

Che cos'è, a cosa serve e vantaggi del Load Balancing in informatica

AMAZON EC2

Amazon EC2 è il cuore della nuvola di Amazon e fa parte del pacchetto AWS(Amazon Web Services). Esso fornisce le API necessarie per la gestione, il rilascio e la creazione di server virtuali, in pratica tramite EC2, ovunque siamo, è sufficiente una connessione ad Internet per creare un server virtuale sulla nuvola di Amazon. Questo significa che quando si ha la necessità di creare un server virtuale nell’ambiente Amazon, basta generare un nuovo nodo basato su un immagine (AMI, Amazon Machine Imagine), comprendende una serie di software e un SI, e parametrizzarla a proprio piacimento. Una volta capito questo breve procedimento è sufficiente ripetere questa operazione più volte per creare la nostra rete virtuale di server o Virtual Cluster.

Le caratteristiche principali di EC2 sono:

  • EBS (Amazon Elastic Block Store): offre uno storage per le istanze indipendentemente dalla durata della loro vita.
  • Multi Locazione: per garantire continuità da fallimenti del Data Center e ottenere una miglior latenza è possibile eseguire istanze in più data center posti fisicamente in posti strategici molto lontani tra loro.
  • Indirizzo IP Elastico: l’indirizzo IP viene associato all’account e non alle singole istanze, così facendo il possessore lo gestisce fino alla richiesta esplicita di rilascio. In questo modo in caso di fallimento dell’istanza il problema è circonciso, garantendo cosi fault tolerance sulle istanze.
  • VPC (Amazon Virtual Private Cloud): permette, come visto, di creare una rete virtuale e configurarne le politiche di sicurezza.
  • Amazon Cloud Watch: strumento utile alla misurazione delle prestazioni del sistema. Permette la visualizzazione delle performance, l’utilizzo delle risorse e del flusso delle richieste, il tutto tramite grafici e statistiche.
  • Auto Scaling: attraverso politiche basate sullo scelte dell’utente l’auto scaling riduce i costi (scale-down) e migliora le prestazioni (scale-up).
  • HPC (High performance Computing) cluster: clienti con carichi di lavoro molto pesanti possono godere di un infrastruttura a loro dedicata e personalizzata in base alle esigenze. Questa soluzione è creata ad Hoc per la ricerca scientifica data la disponibilità di elevate prestazioni.

L’ultima caratteristica è l’Elastic Load Balancing a cui dedichiamo una piccola descrizione. L’Elastic Load Balancing è una tecnica, compresa nel pacchetto EC2, che permette il bilanciamento delle richieste di applicazioni in entrata su più istanze di Amazon EC2. Questo permette di raggiungere ottime prestazioni e una buona faultolerance all’interno della nostra rete virtuale, grazie alla capacità di riconoscere le istanze “difettose” così da eliminarle dalle possibili destinazioni delle richieste in ingresso. Possiamo decidere di applicare il bilanciamento sia in una singola Availability Zone o ad un gruppo di esse per un mantenimento del livello prestazionale ancora più elevato. Il tutto è configurabile dall’utente che può decidere, a seconda delle sue esigenz, la configurazione migliore della politica di suddivisione del carico così da ottenere le migliori prestazioni possibili.

Pubblicato da Vito Lavecchia

Lavecchia Vito Ingegnere Informatico (Politecnico di Bari) Email: [email protected] Sito Web: https://vitolavecchia.altervista.org

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *