paint-brush
Dekodiranje primitiva za uravnoteženje opterećenjapo@fairday
39,939 čitanja
39,939 čitanja

Dekodiranje primitiva za uravnoteženje opterećenja

po Aleksei4m2024/02/26
Read on Terminal Reader
Read this story w/o Javascript

Predugo; Čitati

Kada skalirate svoj sustav kako bi se prilagodio povećanom prometu i korisnicima, možete birati između vertikalnog skaliranja, koje povećava snagu poslužitelja, i horizontalnog skaliranja, koje uključuje dupliciranje poslužitelja. Iako je okomito skaliranje jednostavnije, ono ima ograničenja poput hardverskih ograničenja. Horizontalno skaliranje s balanserima opterećenja nudi fleksibilnost, ali zahtijeva upravljanje apatridnošću i implementaciju strategija. Razumijevanje L4 i L7 balansera opterećenja je bitno, pri čemu je L4 sigurniji i učinkovitiji, dok L7 nudi inteligentno usmjeravanje na uštrb učinkovitosti. Odabir pravog pristupa ovisi o zahtjevima sustava i balansiranju sigurnosti i performansi.

People Mentioned

Mention Thumbnail
featured image - Dekodiranje primitiva za uravnoteženje opterećenja
Aleksei HackerNoon profile picture
0-item


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

  1. Hardversko ograničenje jer je nemoguće beskonačno dodavati resurse
  2. 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:


  1. Kružno igranje
  2. Ponderirani dvosmjerni
  3. Pristupi temeljeni na raspršivanju IP-a
  4. Najmanji način povezivanja
  5. Metoda najmanje ponderirane veze
  6. Metoda najmanjeg odgovora i mnoge druge.


Ipak, ima nekoliko nedostataka:


  1. Poslužitelji moraju biti bez stanja
  2. Sesije se moraju održati u središnjoj pohrani podataka
  3. Kompliciranije implementacije strategija može biti potrebno
  4. Uravnoteživač opterećenja može postati usko grlo izvedbe ako je pogrešno konfiguriran i resursi nisu dovoljni
  5. 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.


  1. L4 balanser opterećenja mnogo je sigurniji i učinkovitiji zbog ograničenja donošenja pametnih odluka

  2. 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.