In informatica, un cluster è un gruppo di macchine, solitamente computer o server, dedicati a una singola attività. La pratica di raggruppare i server in questo modo è chiamata clustering di server. Il clustering di applicazioni è il clustering di server che utilizza un programma software per configurare i server in cluster. Il programma software crea una connessione tra i server che consente loro di eseguire attività come il bilanciamento del carico, il rilevamento dei guasti e la compensazione per i guasti dei singoli server.
Quando un sistema utilizza il clustering di applicazioni, significa che sta utilizzando un’applicazione che è stata installata individualmente in ciascuno dei server per consentire ai server di gestire il carico del server come se fossero un server gigante. L’applicazione gestisce il lavoro di instradamento dei dati da e verso i server in cluster. Il clustering delle applicazioni è in contrasto con il clustering hardware, che utilizza un altro componente hardware per clusterizzare i server. I tipi di dispositivi di clustering hardware includono box di rete che consentono a un set di server di comunicare come un cluster o un cabinet cluster che ospita e raggruppa fisicamente una serie di server. Quando l’hardware viene utilizzato per raggruppare un insieme di server, generalmente gestisce le stesse attività di dati di un programma software di clustering di applicazioni.
Il bilanciamento del carico è il processo di distribuzione del carico di dati tra i server disponibili. Per i server che ospitano un sito Web su Internet, il bilanciamento del carico aiuterebbe a determinare quale server risponde a quali richieste di traffico Web. I tipi di cluster includono cluster simmetrici e cluster asimmetrici. I cluster simmetrici sono cluster che distribuiscono il carico in modo uniforme tra tutti i server connessi, mentre i cluster asimmetrici riservano determinati server in caso di guasto dei server principali. Poiché i server in cluster simmetrico che ricevono un carico costante possono avere maggiori probabilità di guastarsi se colpiti da un carico aggiuntivo a causa del guasto di un altro server, che può arrestare l’intero sistema, i server asimmetrici offrono una maggiore protezione contro i guasti complessivi.
I vantaggi derivanti dall’utilizzo di server in cluster includono una maggiore scalabilità e protezione contro i tempi di inattività. La scalabilità è la capacità di aumentare o diminuire un certo tipo di risorse se il sistema deve ridursi o crescere. Il clustering delle applicazioni rende scalabile un sistema server perché consente di aggiungere o rimuovere facilmente i server dal cluster.
Poiché un cluster di server significa che più server sono dedicati allo stesso scopo, il clustering può ospitare una funzione server più fluida e priva di errori. Questo è essenziale per le aziende che dipendono dalle vendite effettuate attraverso i loro siti web. Anche un breve tempo di inattività del server può causare gravi perdite finanziarie per un negozio online. Quando un’azienda utilizza un cluster di server, la probabilità di tempi di inattività diminuisce in modo significativo perché in genere è necessario l’errore di più server per disattivare un cluster di server.