CreateYourVPN Academy
Kurs: jak to działa

Trasy i równoważenie obciążenia

Czym jest trasa w CreateYourVPN, jak utworzyć ją w minutę, po co są puste trasy i jak system rozdziela użytkowników między serwerami.

Trasa to pomost między Twoją infrastrukturą a tym, co widzi użytkownik. Ty zarządzasz serwerami i inboundami, a użytkownik widzi w swojej aplikacji krótką listę „serwerów” — i każda pozycja na tej liście to w rzeczywistości trasa.

Trasa = jedna pozycja w aplikacji użytkownika

Trasa to grupa inboundów pod jedną nazwą w subskrypcji klienta. Zasada jest prosta:

Jedna niepusta trasa = jedna pozycja na liście serwerów użytkownika.

Trasa może zawierać jeden inbound — albo dziesięć z nich na różnych serwerach. Użytkownik nigdy tego nie widzi: wybiera „🇺🇸 USA”, a to, na którym konkretnie serwerze wyląduje, decyduje moduł równoważenia obciążenia — więcej o tym poniżej.

Tymczasem nazwa, którą widzi użytkownik, to nazwa wybranego inboundu: nazywaj swoje inboundy jasno („🇺🇸 Nowy Jork”, „🇺🇸 Dallas”) i dokładnie to zobaczy użytkownik.

Gdy podłączasz swój pierwszy serwer, system sam tworzy domyślną trasę i umieszcza w niej pierwszy inbound — dlatego wszystko działa od razu, bez ustawiania czegokolwiek. Trasy wchodzą do gry, gdy chcesz więcej: wielu krajów, dedykowanej trasy „streaming” i tak dalej.

Tworzenie trasy

Na stronie klastra, w sekcji „Trasy”, kliknij „Nowa trasa”. Kreator ma trzy sekcje:

  1. Jak klienci widzą tę trasę — nazwa (np. 🇺🇸 USA) i flaga. To „szyld” trasy.
  2. Algorytm balansowania ruchu — „Najmniej obciążony ruchem” (domyślny) albo „Round-robin”. Różnicę wyjaśniamy poniżej.
  3. Inboundy w puli — które inboundy należą do trasy. Ta sekcja jest opcjonalna: możesz utworzyć pustą trasę i wypełnić ją później, przeciągając inboundy.

Inbound może należeć tylko do jednej trasy. Jeśli wybierzesz inbound zajęty już przez inną trasę, zostanie do niej przeniesiony. W ten sposób system gwarantuje, że ruch każdego punktu wejścia zarządzany jest przez dokładnie jeden zestaw reguł.

Diagram topologii: trasy na pierwszy rzut oka

Na stronie klastra trasy pokazane są na żywym diagramie: serwery z ich inboundami po lewej, ramki tras po prawej. Inboundy można przeciągać myszką: chwyć inbound, upuść go do innej trasy — gotowe. Jest też strefa „Nieprzypisany” — upuść tam inbound, aby odpiąć go od wszystkich tras.

Same ramki tras też można przestawiać (uchwytem do przeciągania albo strzałkami) — to czysto wizualne porządkowanie dla Twojej wygody.

Puste trasy

Trasa bez ani jednego inboundu jest narysowana przerywaną obwódką i nie ma „rury” do węzła dystrybucyjnego — to podpowiedź, że użytkownicy jej nie widzą. Puste trasy są wygodnym rezerwowym miejscem: utwórz „🇯🇵 Japonia” z wyprzedzeniem, a gdy pojawi się japoński serwer, przeciągnij tam inbound — trasa ożywa.

Sytuacja odwrotna też jest podświetlana: jeśli masz inboundy poza jakąkolwiek trasą, panel ostrzega — „inbound(y) nie jest przypisanych do żadnej trasy — klienci ich jeszcze nie widzą”.

Równoważenie obciążenia: kto trafia na który serwer

Gdy użytkownik żąda połączenia, dla każdej trasy system wybiera jeden inbound z puli — na żywo, na podstawie świeżych metryk serwerów (tych samych z lekcji 3). Są dwa algorytmy:

„Najmniej obciążony ruchem” (domyślny)

System patrzy na to, ile wolnej przepustowości na użytkownika zostało jeszcze na każdym serwerze: bierze pojemność łącza, odejmuje aktualny ruch i dzieli przez liczbę połączonych użytkowników. Wygrywa serwer z największym zapasem. To sprawiedliwe balansowanie „według realnego obciążenia”: słaby, nasycony serwer nie dostanie nowych użytkowników, nawet jeśli formalnie ma ich mniej.

System szacuje pojemność łącza samodzielnie — na podstawie zaobserwowanych szczytów realnego ruchu (szczyt stopniowo „stygnie”, jeśli serwer przez jakiś czas nie był obciążony).

„Round-robin”

Prosta reguła: nowy użytkownik trafia na serwer, który ma aktualnie najmniej osób — skorygowane o współczynnik serwera. Współczynnik to waga: serwer ze współczynnikiem 2.0 jest traktowany jako „dwa razy bardziej pojemny” i otrzyma mniej więcej dwa razy więcej użytkowników niż sąsiad z 1.0. Dzięki temu możesz sprawiedliwie obciążać maszyny różnej wielkości.

Jeśli jakiś serwer w puli nie ma jeszcze oszacowanej pojemności (powiedzmy, serwer jest zupełnie nowy i nie widział jeszcze żadnych szczytów ruchu), trasa łagodnie przechodzi na round-robin — dzięki temu decyzje zawsze opierają się na danych, które faktycznie istnieją.

Kiedy następuje przebalansowanie

Stale — i automatycznie. Wybór serwera jest przeliczany przy każdym żądaniu na podstawie świeżych metryk: jeśli obciążenie się przesuwa, nowi użytkownicy zaczynają trafiać na wolniejsze serwery. Jednocześnie system stara się zachować ten sam wybór dla danego użytkownika przy równych warunkach, aby jego „serwer” nie skakał tam i z powrotem.

I jeszcze jedna siatka bezpieczeństwa: serwery, które monitoring uznaje za niedostępne, są wykluczane z wyboru — więcej o tym w lekcji 7.

Kluczowe wnioski

  • Trasa to „szyld” dla grupy inboundów; niepusta trasa = pozycja w aplikacji użytkownika.
  • Jeden inbound należy tylko do jednej trasy. Inbound poza jakąkolwiek trasą jest niewidoczny dla klientów.
  • Puste trasy to całkiem normalny placeholder: ramka z przerywaną obwódką, ukryta przed użytkownikami.
  • Dwa algorytmy: według wolnej przepustowości (inteligentny, domyślny) i round-robin z wagami.
  • Balansowanie działa na żywo: przeliczane przy każdym połączeniu na podstawie aktualnych metryk.

Co dalej

On this page