![Search icon](https://hackernoon.imgix.net/search-new.png?w=19&h=19)
Kad god vaš sistem raste, promet se povećava, sve više korisnika koristi vaše proizvode, serveri počinju da reaguju sporije, zastoji prisiljavaju vaše poslovanje da pati, tada počinjete razmišljati o skaliranju.
Postoje dvije osnovne strategije za skaliranje - vertikalna i horizontalna.
Vertikalno skaliranje ima za cilj da poveća snagu sistema dodavanjem obično više CPU-a i RAM-a vašim serverima.
Nasuprot tome, horizontalno skaliranje se fokusira na dupliciranje (ili kloniranje) vaših servera u skupu resursa.
Više o ovim:
Vertikalno skaliranje je najbolja opcija za sistem sa malim prometom jer je to najpristupačniji pristup za upravljanje rastom bez uvođenja dodatne složenosti. Ne morate da brinete o implementaciji strategija za grupu resursa, elastičnosti skupa resursa, bezdržavnosti vašeg servera, distribuiranoj keš memoriji i tako dalje.
Međutim, vertikalno skaliranje ima ozbiljne nedostatke
Horizontalno skaliranje eliminira ove probleme kloniranjem vaših poslužitelja aplikacija i ugrađivanjem komponente kao što je balansator opterećenja .
Balansator opterećenja distribuira promet na vašim serverima koristeći specifične algoritame kao što su:
Ipak, ima nekoliko nedostataka:
Da bi dva uređaja na internetu međusobno komunicirala, osnovni sistemi moraju slijediti određene protokole. Svi su čuli za OSI model, koji opisuje sedam slojeva koje kompjuterski sistemi koriste za komunikaciju preko mreže. Iako je moderni internet zasnovan na jednostavnijem modelu steka TCP/IP protokola, OSI model se široko koristi, jer pomaže u vizualizaciji i komunikaciji kako mreže rade i pomaže u izolaciji i rješavanju problema u mreži.
Većina industrijskih rješenja za balansiranje opterećenja koristi termine L4 i L7 gdje se L4 odnosi na transportni sloj u OSI modelu, a L7 se odnosi na sloj aplikacije.
L4 balansator opterećenja je još uvijek L2/L3 budući da koristi podatke iz donjih slojeva kao što su IP adresa i broj porta.
Sigurniji je i učinkovitiji jer se sadržaj podataka ne uzima u obzir pri donošenju odluka o rutiranju
Ista TCP veza postoji između klijenta i servera, što pomaže da se spriječi prekoračenje ograničenja dostupnih TCP veza na balansatoru opterećenja
S druge strane, L7 balansator opterećenja radi na nivou aplikacije u OSI modelu
Pametne odluke se mogu donositi na osnovu URL putanje, zaglavlja, sadržaja
Keširanje
Balansator opterećenja je vitalna komponenta kada se horizontalno skaliranje primjenjuje za rukovanje sistemima s velikim prometom. Postoje dva glavna tipa balansera opterećenja L4 i L7.
L4 balansator opterećenja je mnogo sigurniji i učinkovitiji zbog ograničenja donošenja pametnih odluka
L7 balansator opterećenja radi na način da pruža inteligentne odluke o rutiranju zbog cijene efikasnosti i sigurnosti
Odabir odgovarajućeg tipa ovisi o zahtjevima sistema i treba ga pažljivo razmotriti uz razumnu ravnotežu primjene sigurnosnih principa i eliminisanja uskih grla u performansama.
Također objavljeno ovdje.