10 systemów równoważenia obciążenia typu open source dla HA i lepszej wydajności

Jednym z najefektywniejszych i najprostszych sposobów na stworzenie aplikacji charakteryzującej się wysoką dostępnością oraz na podniesienie jej efektywności jest wdrożenie mechanizmu równoważenia obciążenia (ang. Load Balancer, LB).

W ogólnym ujęciu, wyróżniamy trzy podstawowe typy urządzeń do równoważenia obciążenia:

  • Sprzętowe
  • Chmurowe
  • Oprogramowanie

Sprzętowy balancer obciążenia to wyspecjalizowane urządzenie, którego głównym zadaniem jest dystrybucja ruchu sieciowego oraz realizacja powiązanych z tym funkcji. Do czołowych producentów tego typu sprzętu należą:

Są to rozwiązania kosztowne, niemniej zapewniają pełną kontrolę nad procesem dystrybucji obciążenia.

Systemy równoważenia obciążenia działające w chmurze zyskują coraz większą popularność.

Wykorzystanie chmurowego LB jest ekonomicznym sposobem na dostęp do wszystkich funkcji bez konieczności inwestowania w dedykowane urządzenie. Opłaty są naliczane jedynie za faktyczne zużycie zasobów. Oto niektórzy z popularnych dostawców usług chmurowego równoważenia obciążenia.

Koszt takiej usługi może zaczynać się już od około 20 dolarów miesięcznie.

Trzecim rodzajem są rozwiązania oparte na oprogramowaniu, gdzie użytkownik samodzielnie instaluje, zarządza i konfiguruje mechanizm LB. Może to być oprogramowanie komercyjne lub darmowe, typu open source.

Jeśli Twój budżet jest ograniczony lub poszukujesz bezpłatnego rozwiązania do równoważenia obciążenia, poniższe informacje mogą okazać się pomocne.

Seesaw

Wykorzystywany przez Google, jest to niezawodny wirtualny serwer równoważenia obciążenia bazujący na systemie Linux, który zapewnia niezbędną dystrybucję ruchu w ramach tej samej sieci.

Seesaw jest rozwijany w języku Go i dobrze współpracuje z dystrybucjami Ubuntu/Debian. Obsługuje anycast i DSR (Direct Server Return), a do poprawnego działania wymaga dwóch węzłów Seesaw, które mogą być fizyczne lub wirtualne.

Warto podkreślić, że Seesaw działa w warstwie czwartej sieci, więc jeśli poszukujesz równoważenia obciążenia na poziomie warstwy siódmej, warto rozważyć inne alternatywy.

KEMP

Darmowy, zaawansowany kontroler dostarczania aplikacji oferowany przez firmę KEMP, jest kompatybilny z wszystkimi wiodącymi hiperwizorami. Można go pobrać i używać w lokalnym centrum danych lub wdrożyć w chmurze, takiej jak AWS czy Azure.

Produkt jest darmowy, a jednocześnie oferuje funkcjonalności spotykane w rozwiązaniach komercyjnych, w tym:

  • Równoważenie obciążenia warstwy 4 dla protokołów TCP/UDP z wykorzystaniem algorytmów round-robin lub najmniejszego obciążenia
  • Równoważenie obciążenia warstwy 7
  • Integrację z zaporą aplikacji internetowych (WAF)
  • Wbudowany system zapobiegania włamaniom (IPS)
  • Globalne równoważenie obciążenia serwera, z obsługą wielu lokalizacji
  • Buforowanie, kompresję treści i przełączanie treści
  • Trwałość plików cookie sesji internetowej
  • Tunelowanie IPSec
  • Uwierzytelnianie wstępne
  • Obsługę Let’s Encrypt
  • Wsparcie dla Kubernetes

KEMP LB jest używany przez wiele znanych marek, w tym Apple, Sony, JP Morgan, Audi czy Hyundai. Bezpłatna edycja oferuje wystarczający zestaw funkcji. W przypadku konieczności rozszerzenia możliwości, warto rozważyć licencję komercyjną.

Jeżeli Ty lub Twoja organizacja jesteście zainteresowani poznaniem KEMP LB i potrzebujecie szkolenia online, warto skorzystać z kursu online Mike’a Waltona.

HAProxy

Popularnym rozwiązaniem do zapewniania wysokiej dostępności, proxy oraz równoważenia obciążenia TCP/HTTP jest HAProxy. Korzysta z niego wiele renomowanych firm na całym świecie.

Do istotnych funkcji HAProxy należą:

  • Obsługa gniazd IPv6 i UNIX
  • Kompresja Deflate i Gzip
  • Monitorowanie stanu zdrowia serwerów
  • Lepkość sesji na podstawie źródła
  • Wbudowane raportowanie statystyk (możliwość sprawdzenia w wersji demonstracyjnej)

HAProxy jest dostępny w wersjach Enterprise, sprzętowej i wirtualnej.

Najlepszym sposobem na poznanie HAProxy jest jego praktyczne przetestowanie. Wersja Community Edition oferuje wiele darmowych funkcji.

ZEVENET

Zevenet wspiera L3, L4 i L7. Jest dostępny jako kod źródłowy, obraz IOS oraz w repozytorium dockera.

Oferuje zaawansowane monitorowanie stanu serwerów, dzięki czemu wadliwe serwery/usługi są szybko wyłączane, aby zapewnić nieprzerwane działanie. Zevenet, wcześniej znany jako Zen, dobrze współpracuje z protokołami opartymi na TCP, takimi jak FTP, SIP, SSL, HTTP itp.

Jeżeli szukasz hostingu dla Zevenet, możesz wypróbować usługi firmy Kamatera.

Neutrino

Neutrino jest wykorzystywany przez eBay i został zbudowany przy użyciu Scala & Netty. Obsługuje algorytmy najmniejszego obciążenia i round-robin, a także następujące funkcje przełączania:

  • Wykorzystanie nazw kanonicznych
  • Przełączanie kontekstowe
  • L4 z wykorzystaniem numerów portów TCP

Neutrino, w testach, obsługuje ponad 300 żądań na sekundę na 2-rdzeniowej maszynie wirtualnej. W porównaniu z HAProxy, jednym z kluczowych atutów Neutrino jest przełączanie L7.

Jak zawsze, najlepszym rozwiązaniem jest przetestowanie obu narzędzi i wybranie tego, które najlepiej sprawdzi się w Twoim środowisku.

Balance

Balance od Inlab Networks to proxy TCP round-robin LB, który obsługuje IPv6 po stronie nasłuchiwania. Oznacza to, że można mieć IPv4 na froncie i IPv6 na backendzie.

Balance oferuje wszystkie podstawowe funkcje LB.

Pen

Pen jest testowany na systemach Linux, FreeBSD, HP-UX, Solaris i Windows, ale nie ma powodu, dla którego nie miałby działać na innych dystrybucjach systemu Unix. Obsługuje protokoły oparte na UDP i TCP, takie jak HTTP, SNMP, DNS itp.

Do funkcji Penu, oprócz podstawowych, zaliczają się:

  • Filtr GeoIP
  • Zakończenie SSL
  • Kompatybilność z IPv4 i IPv6

Nginx

Być może zastanawiasz się, co serwer WWW, jakim jest Nginx, robi na tej liście. Wersja open source Nginx obsługuje podstawowy poziom przełączania treści i dystrybucję routingu żądań na wiele serwerów.

Jednak wersja Nginx Plus oferuje znacznie więcej.

Nginx Plus to kompleksowe rozwiązanie do dostarczania aplikacji internetowych, które obejmuje m.in. równoważenie obciążenia, buforowanie treści, serwer WWW, WAF oraz monitoring. Zapewnia wysokowydajne rozwiązanie do równoważenia obciążenia, umożliwiając skalowanie aplikacji do obsługi milionów żądań na sekundę.

Traefik

Nowoczesny i szybki serwer proxy HTTP i LB zbudowany w języku GO. Traefik obsługuje wiele usług backendowych, takich jak Amazon ECS, Docker, Kubernetes czy Rancher.

Oferuje wsparcie dla WebSockets, HTTP/2, automatyczne odnawianie certyfikatów SSL za pomocą Let’s Encrypt oraz czytelny interfejs do zarządzania i monitorowania zasobów.

GoBetween

GoBetween to minimalistyczny, lecz potężny, wysokowydajny system równoważenia obciążenia działający w oparciu o protokoły L4 TCP, TLS i UDP.

Działa na wielu platformach, w tym Windows, Linux, Docker i Darwin, a w razie potrzeby można go zbudować z kodu źródłowego. Równoważenie obciążenia odbywa się w oparciu o następujące algorytmy, wybierane w konfiguracji:

  • Hash IP
  • Round-robin
  • Najmniejsza przepustowość
  • Najmniejsza liczba połączeń
  • Waga

Według testów wydajności, GoBetween jest szybszy od HAProxy, ale wolniejszy od Nginx.

Jeśli poszukujesz nowoczesnego rozwiązania do równoważenia obciążenia L4 z automatycznym wykrywaniem dla dynamicznego środowiska, GoBetween wydaje się obiecującą propozycją. Warto go przetestować, aby sprawdzić jego możliwości.

Podsumowanie

Mam nadzieję, że powyższa lista oprogramowania do równoważenia obciążenia typu open source pomoże Ci w wyborze odpowiedniego rozwiązania dla Twojej aplikacji. Wszystkie wymienione narzędzia są darmowe, więc najlepszym sposobem na znalezienie idealnego rozwiązania jest ich przetestowanie w praktyce.

Jeśli chcesz rozwinąć swoje umiejętności, zapoznaj się z ofertą platformy Udemy, gdzie znajdziesz tysiące kursów wideo.