Kad god vaš sustav raste, promet se povećava, sve više i više korisnika koristi vaše proizvode, poslužitelji počnu reagirati sporije, zastoji tjeraju vaše poslovanje na probleme, tada počinjete razmišljati o skaliranju.
Postoje dvije primarne strategije skaliranja - okomita i vodoravna.
Vertikalno skaliranje ima za cilj povećati snagu sustava dodavanjem obično više CPU-a i RAM-a vašim poslužiteljima.
Nasuprot tome, horizontalno skaliranje usmjereno je na dupliciranje (ili kloniranje) vaših poslužitelja u skupu resursa.
Više o ovim:
Vertikalno skaliranje
Okomito skaliranje najbolja je opcija za sustav s malim prometom jer je to najpristupačniji pristup za rukovanje rastom bez uvođenja dodatne složenosti. Ne morate brinuti o implementaciji strategija za grupu resursa, elastičnosti skupa resursa, statusu vašeg poslužitelja bez statusa, distribuiranoj predmemorij i tako dalje.
Međutim, vertikalno skaliranje ima ozbiljne nedostatke
- Hardversko ograničenje jer je nemoguće beskonačno dodavati resurse
- Nedostatak failovera i redundancije povećava rizik od produženog prekida rada i gubitka podataka
Horizontalno skaliranje
Horizontalno skaliranje eliminira ove probleme kloniranjem vaših aplikacijskih poslužitelja i ugradnjom komponente kao što je Load balancer .
Balansiranje opterećenja distribuira promet na vašim poslužiteljima pomoću specifičnih algoritama kao što su:
Kružno igranje Ponderirani dvosmjerni - Pristupi temeljeni na raspršivanju IP-a
- Najmanji način povezivanja
- Metoda najmanje ponderirane veze
- Metoda najmanjeg odgovora i mnoge druge.
Ipak, ima nekoliko nedostataka:
- Poslužitelji moraju biti bez stanja
- Sesije se moraju održati u središnjoj pohrani podataka
- Kompliciranije
implementacije strategija može biti potrebno - Uravnoteživač opterećenja može postati usko grlo izvedbe ako je pogrešno konfiguriran i resursi nisu dovoljni
- Unosi dodatnu složenost u sustav i predstavlja potencijalnu pojedinačnu točku kvara, što zahtijeva primjenu strategija za preokret
L4 / L7 Balanseri opterećenja
Da bi dva uređaja na internetu međusobno komunicirala, temeljni sustavi moraju slijediti određene protokole. Svi su čuli za OSI model, koji opisuje sedam slojeva koje računalni sustavi koriste za komunikaciju preko mreže. Iako se moderni internet temelji na jednostavnijem modelu skupa protokola TCP/IP, OSI model je naširoko korišten jer pomaže vizualizirati i komunicirati kako mreže funkcioniraju te pomaže u izolaciji i rješavanju mrežnih problema.
Većina industrijskih rješenja za uravnoteženje opterećenja koristi termine L4 i L7 gdje se L4 odnosi na transportni sloj u OSI modelu, a L7 na aplikacijski sloj.
L4 balanser opterećenja još uvijek je L2/L3 budući da koristi podatke s najnižih slojeva kao što su IP adresa i broj priključka.
Glavne prednosti L4 load balancera
Sigurniji je i učinkovitiji jer se sadržaj podataka ne uzima u obzir pri donošenju odluka o usmjeravanju
Ista TCP veza održava se između klijenta i poslužitelja, što pomaže u sprječavanju prekoračenja ograničenja dostupnih TCP veza na balanseru opterećenja
Glavni nedostaci L4 load balancera
- Inteligentno usmjeravanje je nemoguće jer se sadržaj ne dešifrira
- Stateful protokol donosi dodatnu složenost
- Preslikavanje javnih i privatnih adresa
- Nema predmemoriranja jer je sadržaj nedostupan na ovoj razini
- Nije moguće koristiti za arhitekturu mikroservisa jer preusmjeravanje prometa nije dostupno na temelju url putanje
S druge strane, L7 load balancer radi na razini aplikacije u OSI modelu
Glavne prednosti L7 load balancera
Pametne odluke mogu se donijeti na temelju URL putanje, zaglavlja, sadržaja
Predmemoriranje
Glavni nedostaci L7 load balancera
- Dodatni troškovi zbog održavanja dviju TCP veza, jedne između klijenta i balansera opterećenja, druge između balansera opterećenja i poslužitelja. Također, potrebno je uzeti u obzir ograničenje TCP veze balansera opterećenja
- Manje siguran jer balanser opterećenja mora poznavati certifikate da bi mogao dešifrirati podatke i donositi odluke o usmjeravanju
Zaključak
Balansiranje opterećenja vitalna je komponenta kada se horizontalno skaliranje primjenjuje za rukovanje sustavima s velikim prometom. Postoje dvije glavne vrste balansera opterećenja L4 i L7.
L4 balanser opterećenja mnogo je sigurniji i učinkovitiji zbog ograničenja donošenja pametnih odluka
L7 balanser opterećenja radi na način da pruža inteligentne odluke o usmjeravanju zbog cijene učinkovitosti i sigurnosti
Odabir odgovarajućeg tipa ovisi o zahtjevima sustava i treba ga pažljivo razmotriti uz razumnu ravnotežu primjene sigurnosnih načela i uklanjanja uskih grla u izvedbi.
Također objavljeno ovdje.