CreateYourVPN Academy
Kurz: Jak to funguje

Trasy a vyvažování zátěže

Co je trasa v CreateYourVPN, jak ji vytvořit za minutu, k čemu jsou dobré prázdné trasy a jak systém rozděluje uživatele mezi servery.

Trasa je most mezi vaší infrastrukturou a tím, co vidí uživatel. Vy spravujete servery a inboundy, zatímco uživatel vidí ve své aplikaci krátký seznam "serverů" — a každá položka v tom seznamu je ve skutečnosti trasa.

Trasa = jeden řádek v aplikaci uživatele

Trasa je skupina inboundů pod jedním názvem v odběru klienta. Pravidlo je jednoduché:

Jedna neprázdná trasa = jedna položka v seznamu serverů uživatele.

Trasa může obsahovat jediný inbound — nebo deset z nich na různých serverech. Uživatel to nikdy nevidí: vybere si "🇺🇸 USA" a na který konkrétní server se dostane, rozhoduje load balancer — o tom víc níže.

Přitom název, který uživatel vidí, je název vybraného inboundu: pojmenujte své inboundy srozumitelně ("🇺🇸 New York", "🇺🇸 Dallas") a přesně to uživatel uvidí.

Když připojíte svůj první server, systém sám vytvoří výchozí trasu a vloží do ní první inbound — proto všechno funguje hned bez jediného nastavení. Trasy se hodí, jakmile chcete víc: více zemí, vyhrazenou trasu "streaming" a podobně.

Vytvoření trasy

Na stránce clusteru, v sekci "Trasy", klikněte na "Nová trasa". Průvodce má tři sekce:

  1. Jak klienti vidí tuto trasu — název (např. 🇺🇸 USA) a vlajka. To je "cedule" trasy.
  2. Algoritmus vyvažování zátěže — "Nejméně zatížený provozem" (výchozí) nebo "Round-robin". Rozdíl je vysvětlen níže.
  3. Inboundy v poolu — které inboundy do trasy patří. Tato sekce je volitelná: můžete vytvořit prázdnou trasu a naplnit ji později přetažením.

Inbound může patřit jen do jedné trasy. Pokud vyberete inbound, který už patří jiné trase, přesune se do té nové. Tak systém zaručuje, že provoz každého vstupního bodu řídí přesně jedna sada pravidel.

Diagram topologie: trasy na první pohled

Na stránce clusteru se trasy zobrazují na živém diagramu: vlevo servery s jejich inboundy, vpravo bloky tras. Inboundy lze přetahovat myší: chyťte inbound, pusťte ho do jiné trasy — hotovo. Existuje i zóna "Nepřiřazeno" — pusťte tam inbound, abyste ho odpojili od všech tras.

Přeuspořádat lze i samotné bloky tras (pomocí úchytu pro přetažení nebo šipek) — to je čistě vizuální řazení pro vaše pohodlí.

Prázdné trasy

Trasa bez jediného inboundu je zobrazena přerušovaným rámečkem a nemá "trubku" k distribučnímu uzlu — náznak, že uživatelé ji nevidí. Prázdné trasy jsou šikovné jako rezervace předem: vytvořte "🇯🇵 Japonsko" dopředu, a jakmile se objeví japonský server, přetáhněte tam inbound — trasa ožije.

Opačná situace se také zvýrazňuje: pokud máte inboundy mimo jakoukoli trasu, panel vás upozorní — "inbound(ů) není zařazen v žádné trase — klienti je zatím nevidí".

Vyvažování zátěže: kdo se dostane na jaký server

Když uživatel požádá o připojení, systém pro každou trasu vybere z poolu jeden inbound — živě, na základě aktuálních metrik serverů (těch samých z lekce 3). Existují dva algoritmy:

"Nejméně zatížený provozem" (výchozí)

Systém se dívá na to, kolik volné šířky pásma na uživatele má každý server ještě k dispozici: vezme kapacitu kanálu, odečte aktuální provoz a vydělí počtem připojených uživatelů. Vyhrává server s největší rezervou. Je to férové vyvažování "podle reálné zátěže": slabý, nasycený server nedostane nové uživatele, i kdyby na něm formálně bylo méně lidí.

Systém si kapacitu kanálu odhaduje sám — z pozorovaných špiček reálného provozu (špička se postupně "ochlazuje", pokud server delší dobu nebyl zatížený).

"Round-robin"

Jednoduché pravidlo: nový uživatel jde na server, který má aktuálně nejméně lidí — upraveno o koeficient serveru. Koeficient je váha: server s koeficientem 2.0 se bere jako "dvakrát prostornější" a dostane zhruba dvakrát tolik uživatelů co soused s 1.0. Díky tomu můžete férově zatížit stroje různých velikostí.

Pokud některý server v poolu ještě nemá odhad kapacity (třeba je úplně nový a ještě neviděl žádné špičky provozu), trasa se elegantně přepne na round-robin — rozhodnutí se tak vždy dělají na základě dat, která opravdu existují.

Kdy dochází k přerozdělení

Neustále — a automaticky. Volba serveru se přepočítává při každém požadavku na základě čerstvých metrik: pokud se zátěž přesune, noví uživatelé začnou dopadat na volnější servery. Zároveň se systém snaží zachovat stejnou volbu pro daného uživatele, pokud jsou podmínky rovnocenné, aby jeho "server" neposkakoval sem a tam.

A ještě jedna pojistka: servery, které monitoring považuje za nedostupné, jsou z výběru vyloučeny — víc o tom v lekci 7.

Klíčové poznatky

  • Trasa je "cedule" pro skupinu inboundů; neprázdná trasa = řádek v aplikaci uživatele.
  • Jeden inbound patří jen jedné trase. Inbound mimo jakoukoli trasu je pro klienty neviditelný.
  • Prázdné trasy jsou naprosto normální rezervace předem: přerušovaný rámeček, skrytý před uživateli.
  • Dva algoritmy: podle volné šířky pásma (chytrý, výchozí) a round-robin s vahami.
  • Vyvažování je živé: přepočítává se při každém připojení na základě aktuálních metrik.

Co dál

On this page