CreateYourVPN Academy
Tečaj: Kako to radi

Rute i balansiranje opterećenja

Što je ruta u CreateYourVPN-u, kako je stvoriti za minutu, čemu služe prazne rute i kako sustav raspoređuje korisnike po poslužiteljima.

Ruta je most između vaše infrastrukture i onoga što korisnik vidi. Vi upravljate poslužiteljima i inboundima, dok korisnik u svojoj aplikaciji vidi kratak popis "poslužitelja" — a svaka stavka na tom popisu zapravo je ruta.

Ruta = jedan redak u aplikaciji korisnika

Ruta je skupina inbounda pod jednim nazivom u pretplati klijenta. Pravilo je jednostavno:

Jedna neprazna ruta = jedna stavka na popisu poslužitelja korisnika.

Ruta može sadržavati jedan jedini inbound — ili deset njih na različitim poslužiteljima. Korisnik to nikad ne vidi: bira "🇺🇸 SAD", a na koji točno poslužitelj završi odlučuje balanser opterećenja — više o tome u nastavku.

Pritom je naziv koji korisnik vidi zapravo naziv odabranog inbounda: dajte svojim inboundima jasne nazive ("🇺🇸 New York", "🇺🇸 Dallas") i to će korisnik točno vidjeti.

Kad povežete svoj prvi poslužitelj, sustav sam stvara zadanu rutu i u nju stavlja prvi inbound — zato sve radi odmah, bez ijedne postavke. Rute dolaze do izražaja kad želite više: nekoliko država, posebnu rutu za "streaming" i slično.

Stvaranje rute

Na stranici klastera, u odjeljku "Rute", kliknite "Nova ruta". Čarobnjak ima tri odjeljka:

  1. Kako klijenti vide ovu rutu — naziv (npr. 🇺🇸 SAD) i zastava. Ovo je "natpis" rute.
  2. Algoritam balansiranja opterećenja — "Najmanji promet" (zadano) ili "Round-robin". Razlika je objašnjena u nastavku.
  3. Inboundi u skupini — koji inboundi pripadaju ruti. Ovaj odjeljak nije obavezan: možete stvoriti praznu rutu i popuniti je kasnije povlačenjem.

Jedan inbound može pripadati samo jednoj ruti. Ako odaberete inbound koji je već zauzet drugom rutom, on se premješta u novu. Tako sustav jamči da je promet svake ulazne točke uvijek pod jednim, jasno određenim skupom pravila.

Dijagram topologije: rute na prvi pogled

Na stranici klastera rute su prikazane na živom dijagramu: poslužitelji sa svojim inboundima lijevo, okviri ruta desno. Inboundi se mogu povlačiti mišem: uhvatite inbound, ispustite ga u drugu rutu — gotovo. Postoji i zona "Nedodjeljeno" — ispustite inbound tamo da ga odvojite od svih ruta.

I sami okviri ruta mogu se preslagivati (pomoću ručke za povlačenje ili strelica) — to je čisto vizualni redoslijed, radi vaše preglednosti.

Prazne rute

Ruta bez ijednog inbounda prikazana je isprekidanim rubom i bez "cijevi" prema distribucijskom čvoru — nagovještaj da je korisnici ne vide. Prazne rute korisne su kao rezervirana mjesta: stvorite unaprijed "🇯🇵 Japan", a kad se pojavi japanski poslužitelj, povucite inbound u nju — ruta oživi.

Obrnuta situacija također se ističe: ako imate inbounde izvan bilo koje rute, panel vas upozorava — "inbound(a) nije u nijednoj ruti — klijenti ih još ne mogu vidjeti".

Balansiranje opterećenja: tko završava na kojem poslužitelju

Kad korisnik zatraži vezu, sustav za svaku rutu bira jedan inbound iz skupine — uživo, na temelju svježih metrika poslužitelja (upravo onih iz lekcije 3). Postoje dva algoritma:

"Najmanji promet" (zadano)

Sustav gleda koliko slobodnog kapaciteta po korisniku svakom poslužitelju preostaje: uzima kapacitet kanala, oduzima trenutni promet i dijeli s brojem spojenih korisnika. Pobjeđuje poslužitelj s najvećim rasponom slobodnog prostora. To je pošteno balansiranje "prema stvarnom opterećenju": slab, zasićen poslužitelj neće dobiti nove korisnike, čak i ako ih formalno ima manje.

Sustav sam procjenjuje kapacitet kanala — iz opaženih vršnih vrijednosti stvarnog prometa (vršna se vrijednost postupno "hladi" ako poslužitelj neko vrijeme nije bio opterećen).

"Round-robin"

Jednostavno pravilo: novi korisnik ide na poslužitelj koji trenutno ima najmanje ljudi — prilagođeno koeficijentom poslužitelja. Koeficijent je težina: poslužitelj s koeficijentom 2.0 tretira se kao "dvostruko prostraniji" i primit će otprilike dvostruko više korisnika nego susjed s 1.0. To vam omogućuje pošteno opterećivanje strojeva različitih veličina.

Ako neki poslužitelj u skupini još nema procjenu kapaciteta (recimo, sasvim je nov i još nije vidio nikakve vršne vrijednosti prometa), ruta se elegantno vraća na round-robin — tako da se odluke uvijek donose na temelju podataka koji stvarno postoje.

Kad se rebalansiranje događa

Neprestano — i automatski. Izbor poslužitelja ponovno se izračunava pri svakom zahtjevu na temelju svježih metrika: ako se opterećenje pomakne, novi korisnici počinju završavati na slobodnijim poslužiteljima. Istovremeno, sustav pokušava zadržati isti izbor za danog korisnika kad su uvjeti jednaki, tako da mu se "poslužitelj" ne mijenja tamo-amo.

I još jedna sigurnosna mreža: poslužitelji koje nadzor smatra nedostupnima isključeni su iz odabira — više o tome u lekciji 7.

Ključni zaključci

  • Ruta je "natpis" za skupinu inbounda; neprazna ruta = redak u aplikaciji korisnika.
  • Jedan inbound pripada samo jednoj ruti. Inbound izvan bilo koje rute nevidljiv je klijentima.
  • Prazne rute sasvim su normalno rezervirano mjesto: isprekidan okvir, skriven od korisnika.
  • Dva algoritma: prema slobodnom kapacitetu (pametan, zadan) i round-robin s težinama.
  • Balansiranje je uživo: ponovno se izračunava pri svakoj vezi na temelju trenutnih metrika.

Sljedeće

On this page