Un serviciu se scalează adăugând capacitate atunci când crește numărul de utilizatori: fie mai multe resurse pe un server existent, fie mai multe servere care împart sarcina. Alegerea depinde de unde apare blocajul. Pe LumeaTehnologiei găsești explicate pe înțeles ideile din spatele internetului și ale cloudului.
Scalarea pe verticală și pe orizontală
Scalarea verticală înseamnă un server mai puternic, cu mai multă memorie și procesor. Este simplă, dar are o limită și, la un moment dat, devine prea scumpă. Scalarea orizontală înseamnă mai multe servere identice, între care se împarte munca.
A doua variantă permite creșterea aproape nelimitată, dar cere ca aplicația să fie construită astfel încât oricare server să poată prelua orice cerere.
Rolul balansorului de trafic
Când ai mai multe servere, un balansor de încărcare primește cererile și le trimite către cel disponibil. Dacă un server cade, balansorul îl ocolește. Utilizatorul nu observă nimic, pentru că vede o singură adresă. LumeaTehnologiei explică la fel de simplu și celelalte piese din spatele internetului.
Unde apar blocajele
De obicei, serverele de aplicație se multiplică ușor. Greu de scalat este locul unde se păstrează datele, adică baza de date, pentru că mai multe copii trebuie să rămână sincronizate. De aceea, echipele își concentrează efortul acolo.
- cache-ul păstrează rezultatele cerute des, ca să nu fie recalculate;
- replicile bazei de date preiau citirile, iar serverul principal scrie;
- cozile de mesaje preiau munca grea și o execută în fundal;
- rețelele de livrare a conținutului țin imaginile aproape de utilizator.
Aplicații fără stare
Un serviciu se scalează ușor când serverele nu rețin nimic despre utilizator între cereri. Sesiunea, coșul de cumpărături și preferințele se păstrează într-un loc comun, de exemplu într-un cache extern sau în baza de date. Astfel, orice server poate prelua orice cerere, iar un server nou intră în funcțiune fără pregătiri speciale.
Când informația rămâne pe un anumit server, balansorul trebuie să trimită mereu utilizatorul acolo. Se pierde exact flexibilitatea pe care o căutai.
Cum se vede o creștere de trafic
La început, serviciul răspunde mai încet, apoi apar erori și expirări de timp. Un sistem gândit pentru vârfuri limitează cererile în exces și îi spune utilizatorului să reîncerce, în loc să cadă în întregime. Este mai bine ca o parte dintre oameni să aștepte decât ca toți să primească o pagină goală.
Scalarea automată în cloud
Platformele de cloud pot adăuga sau elimina servere în funcție de încărcare. Setezi reguli, de pildă o limită de utilizare a procesorului, iar sistemul pornește instanțe noi când este depășită și le oprește când cererea scade. Astfel plătești în funcție de consum, nu pentru o capacitate care stă degeaba. Mai multe despre resurse la cerere găsești în secțiunea Cloud și date.
Scalarea automată nu repară o aplicație lentă. Dacă o interogare întârzie, adăugarea de servere doar multiplică problema.
Cum gândești capacitatea
Înainte să adaugi resurse, măsoară: cât durează un răspuns, câte cereri suportă un server, ce se întâmplă la vârfuri. Testează cu trafic simulat și caută primul punct slab, nu cel mai spectaculos. Un serviciu bine scalat rămâne simplu pentru utilizator și previzibil pentru cei care îl administrează.
Recomandarea practică: începe cu măsurători, scalează unde apare blocajul și lasă automatizarea să preia vârfurile. LumeaTehnologiei continuă să explice, fără jargon inutil, felul în care aceste piese se leagă între ele.