când lucrați cu Cloud Computing sau aplicații scalabile normale extrem de disponibile, veți auzi în mod normal două terminologii numite Scale Out și Scale Up sau adesea numite scalare orizontală și scalare verticală. M-am gândit să acopăr elementele de bază și să ofer mai multă claritate dezvoltatorilor și specialiștilor IT.
ce este scalabilitatea?
scalabilitatea este capacitatea unui sistem, rețea sau proces de a gestiona o cantitate tot mai mare de muncă sau potențialul său de a fi mărit pentru a se potrivi acestei creșteri. De exemplu, un sistem este considerat scalabil dacă este capabil să-și mărească producția totală sub o sarcină crescută atunci când se adaugă resurse (de obicei hardware).
un sistem a cărui performanță se îmbunătățește după adăugarea hardware-ului, proporțional cu capacitatea adăugată, se spune că este un sistem scalabil.
acest lucru va fi aplicabil sau orice sistem, cum ar fi :
- site-uri web comerciale sau aplicații Web care au un grup de utilizatori mai mare și cresc frecvent,
- sau o nevoie imediată de a servi un număr mare de utilizatori pentru un eveniment sau o campanie de profil înalt.
- sau un eveniment de streaming care ar avea nevoie de capacități de procesare imediată pentru a servi streaming către un set mai mare de utilizatori din anumite regiuni sau la nivel global.
- sau o prelucrare imediată a muncii sau o prelucrare a datelor care necesită cerințe de calcul mai mari decât cele obișnuite pentru un anumit loc de muncă.
scalabilitatea poate fi măsurată în diferite dimensiuni, cum ar fi:
- scalabilitate administrativă: capacitatea unui număr tot mai mare de organizații sau utilizatori de a partaja cu ușurință un singur sistem distribuit.
- scalabilitate funcțională: capacitatea de a îmbunătăți sistemul prin adăugarea de noi funcționalități la un efort minim.
- scalabilitate geografică: capacitatea de a menține performanța, utilitatea sau utilitatea indiferent de expansiunea de la concentrare într-o zonă locală la un model geografic mai distribuit.
- scalabilitate de încărcare: Capacitatea unui sistem distribuit de a extinde cu ușurință și de a contracta piscina de resurse pentru a găzdui sarcini mai grele sau mai ușoare sau numărul de intrări. Alternativ, ușurința cu care un sistem sau o componentă pot fi modificate, adăugate sau eliminate, pentru a se potrivi schimbarea sarcinii.
- scalabilitatea generației: capacitatea unui sistem de a se extinde folosind noi generații de componente. Astfel, scalabilitatea eterogenă este capacitatea de a utiliza componentele de la diferiți furnizori.
Scalare-Out/In / Scalare Orizontală:
a scala orizontal (sau a scala out/in) înseamnă a adăuga mai multe noduri la (sau a elimina noduri din) un sistem, cum ar fi adăugarea unui computer nou la o aplicație software distribuită.
Pro:
- Load este distribuit la mai multe servere
- chiar dacă un server se duce în jos, există servere să se ocupe de cererile sau de încărcare.
- puteți adăuga mai multe servere sau puteți reduce în funcție de modelele de utilizare sau de încărcare.
- Perfect pentru aplicații web extrem de disponibile sau operațiuni de procesare lot.
contra:
- ai nevoie de hardware /servere suplimentare pentru a sprijini. Acest lucru ar crește creșterea costurilor de infrastructură și de întreținere.
- va trebui să achiziționați licențe suplimentare pentru sistemul de operare sau software-ul licențiat necesar.
scalare-Sus / Jos / scalare verticală:
a scala vertical (sau a scala sus/jos) înseamnă a adăuga resurse la (sau a elimina resurse de la) un singur nod dintr-un sistem, implicând de obicei adăugarea de procesoare sau memorie la un singur computer.
Pro
- posibilitatea de a crește CPU/RAM/stocare practic sau fizic.
- sistemul unic poate servi toate nevoile dvs. de procesare a datelor/muncii, cu actualizarea suplimentară a hardware-ului.
- cost minim pentru upgrade
contra
- când sunteți fizic sau practic maxed cu limită, nu aveți alte opțiuni.
- un accident ar putea cauza întreruperi ale lucrărilor dvs. de procesare a afacerii.
am discutat în detaliu despre ambele abordări în scalabilitate, în funcție de necesitatea de a alege abordarea corectă. În prezent, disponibilitatea ridicată a platformelor de cloud computing, cum ar fi Amazon AWS/Microsoft Azure etc., aveți o mulțime de modalități flexibile de scalare sau scalare pe un mediu Cloud, care vă oferă resurse practic nelimitate, cu condiția să fiți capabil să plătiți în consecință.