În calcul, un cluster este un grup de mașini, de obicei computere sau servere, dedicate unei singure sarcini. Practica grupării serverelor în acest fel se numește server clustering. Clusteringul de aplicații este un clustering de servere folosind un program software pentru a configura serverele pentru cluster. Programul software creează o conexiune între servere care le permite să efectueze sarcini precum echilibrarea sarcinii, detectarea defecțiunilor și compensarea defecțiunilor individuale ale serverului.
Când un sistem utilizează clustering de aplicații, înseamnă că folosește o aplicație care a fost instalată individual în fiecare dintre servere pentru a permite serverelor să gestioneze încărcarea serverului ca și cum ar fi un server gigant. Aplicația se ocupă de rutarea datelor către și de la serverele grupate. Clusteringul de aplicații este în contrast cu clusteringul hardware, care utilizează o altă piesă hardware pentru a cluster servere. Tipurile de dispozitive hardware de clustering includ cutii de rețea care permit unui set de servere să comunice ca un cluster sau un cabinet de cluster care găzduiește și grupează fizic o serie de servere. Atunci când hardware-ul este utilizat pentru a clusteriza un set de servere, acesta se ocupă, în general, de aceleași sarcini de date ca un program software de clusterizare a aplicațiilor.
Load balancing este procesul de distribuire a încărcăturii de date între serverele disponibile. Pentru serverele care găzduiesc un site web pe Internet, echilibrarea încărcării ar ajuta la determinarea serverului care răspunde la ce solicitări de trafic web. Tipurile de clustere includ clustere simetrice și clustere asimetrice. Clusterele simetrice sunt clustere care distribuie sarcina în mod egal între toate serverele conectate, în timp ce clusterele asimetrice rezervă anumite servere pentru atunci când serverele principale eșuează. Deoarece serverele grupate simetric care primesc o încărcare constantă pot avea mai multe șanse să eșueze atunci când sunt lovite cu o încărcare suplimentară din cauza defecțiunii unui alt server, care poate distruge întregul sistem, serverele asimetrice oferă o protecție mai mare împotriva defecțiunii generale.
Beneficiile utilizării serverelor în cluster includ scalabilitate sporită și protecție împotriva timpilor de nefuncționare. Scalabilitatea este capacitatea de a crește sau de a reduce un anumit tip de resurse dacă sistemul trebuie să se micșoreze sau să crească. Clusteringul de aplicații face un sistem de server scalabil, deoarece permite ca serverele să fie ușor adăugate sau eliminate din cluster.
Deoarece un cluster de servere înseamnă că mai multe servere sunt dedicate aceluiași scop, clusteringul poate adăposti o funcție de server mai simplă și fără erori. Acest lucru este esențial pentru companiile care depind de vânzările efectuate prin site-urile lor web. Chiar și timpul scurt de întrerupere a serverului poate cauza pierderi financiare majore pentru un magazin online. Atunci când o companie folosește un cluster de servere, probabilitatea de nefuncționare scade semnificativ, deoarece, în general, este nevoie de eșecul mai multor servere pentru a elimina un cluster de servere.