Voi continua astăzi seria de articole despre redundanța diferitelor servicii și protocoale, importante pentru buna funcționare a oricărei companii moderne. Am vorbit deja despre redundanța sistemului DNS și despre avantajele de a avea mai mult de un server de mail, iar acum a venit și rândul website-ului.
În funcție de rolul website-ului în afacerile companiei, trebuie stabilit cât de important este ca acesta să răspundă mereu, rapid, la cererile clienților:
- dacă este vorba despre un sit de prezentare aproape static, probabil că acel maxim 0,01% downtime din partea ISP-ului este acceptabil.
- dacă situl este punctul de întâlnire al unei comunități virtuale dinamice, este bine ca situl să răspundă mereu, dar nu este nevoie ca totul să fie real-time, se pot accepta câteva erori (de exemplu logout), în cazul în care are loc o defecțiune.
- dacă este însă vorba despre un site de e-commerce, este crucial ca serverul să răspundă întotdeauna foarte rapid, iar în cazul oricărei defecțiuni nu trebuie ca procesul de cumpărare să fie afectat (de exemplu nu este acceptabil ca utilizatorul să piardă produsele din coș sau procesarea plății să se oprească).
Înainte de a căuta metode tehnice pentru a rezolva scenariile de mai sus, voi prezenta câteva noțiuni cu care vom lucra de aici încolo:
- replicare – reprezintă o copiere fidelă a datelor pe mai mult de un singur sistem. Poate fi vorba despre replicarea fișierelor sau a datelor dintr-o bază de date.
- balansare (load balancing) – este o tehnică prin care două sau mai multe servere identice (replicate) răspund alternativ la cereri, astfel încât încărcarea fiecăruia este mai mică.
- failover – este un procedeu prin care un sistem “urmărește” dacă un altul răspunde corect cererilor și în cazul unei defecțiuni îl deconectează pe cel defect și preia el toate cererile.
Cea mai simplă metodă de a asigura redundanța serviciilor web este round robin DNS. Se instalează mai multe servere identice care sunt menținute mereu sincronizate la nivel de fișiere și baze de date. În DNS, se configurează mai multe IP-uri pentru a răspunde la același nume.
Atunci când un client cere în DNS adresa www.website.com, va primi toate IP-urile în ordine aleatoare și va accesa (de obicei) pe primul dintre ele, practic încărcarea fiind distribuită aproape egal pe fiecare server. Problema acestei metode este că un IP “mort” va fi totuși oferit clienților, care vor încerca să se conecteze la el. În funcție de cât de “deștept” este browser-ul lor, este posibil să nu remarce nimic sau să aibă parte de erori. Este deci extrem de important ca IP-urile care sunt trecute în DNS să răspundă întotdeauna.
Sistemele mai complexe pot folosi echipamente hardware dedicate care permit existența mai multor mașini fizice care să răspundă la același IP și care să împartă apoi încărcarea între ele.
Un caz foarte comun este un mini-cluster format din două sisteme identice, care au datele replicate între ele și care se monitorizează unul pe celălalt, iar dacă unul se defectează, celălalt preia întreaga încărcare. Simultan se realizează atât strategia de load balancing cât și cea de failover.
Până acum am vorbit despre servere ca despre monoliți care servesc “cumva” conținutul web. Dar procesul nu se termină aici, putem fragmenta problema și mai mult:
- se poate izola spațiul de stocare pe un NAS sau SAN.
- se pot plasa bazele de date pe sisteme dedicate, care să aibă propria redundanță și replicare.
- la toate acestea se adaugă diferite strategii de redundanță hardware, de exemplu RAID pentru hard-disk-uri.
- trebuie rezolvate diverse probleme interesante, ca de exemplu managementul sesiunilor (utilizatorul se logează pe un server, dar următoarea cerere este procesată de alt server, evident clientul trebuie să fie în continuare logat).
Mă voi opri aici deocamdată, pentru că subiectul este imens și ar merita nu doar un post pe blog, ci poate chiar un blog dedicat (s-au scris cărți întregi pe tema asta). Sper doar că am reușit să arăt că dacă afacerea ta depinde de diversele servicii web și este important ca acestea să răspundă corect întotdeauna, există suficiente metode și tehnologii care te pot ajuta.
Echipa NOVIT te poate ajuta să le înțelegi și să alegi ce este potrivit pentru tine! Contactează-ne!
Folosești deja tehnici pentru load balancing sau failover? Povestește-ne într-un comentariu!
Image credit: ChrisDag.
Related posts:
- Consolidarea serviciilor pe un singur server Dacă ai o rețea mai veche, care a crescut în...
- Soluții de virtualizare pentru consolidarea serviciilor Dacă, citind post-ul meu anterior, în care am discutat despre...
- Migrare servicii: website și alte servicii web Iată că am ajuns și la ultimul episod din seria...
- Cum te afectează “broken links” pe website Ți s-a întâmplat să vizitezi un sit (urmărind o legătură...
[...] un articol din seria “redundanța serviciilor”, de data asta despre serverul web: www, www2, www3 sau redundanța serviciilor web. Citește-l [...]