Jedním z nejefektivnějších a nejjednodušších způsobů, jak zajistit vysokou dostupnost aplikace a navýšit její výkon, je implementovat systém pro rozkládání zátěže, známý také jako load balancer (LB).
V zásadě rozlišujeme tři základní kategorie load balancerů:
- Hardwarové
- Cloudové
- Softwarové
Hardwarový load balancer je specializované zařízení navržené pro distribuci zátěže a plnění souvisejících funkcí. Někteří z významných dodavatelů hardwarových LB zahrnují:
Jsou sice nákladné, ale poskytují úplnou kontrolu nad systémem.
Cloudové load balancery se stávají stále populárnější volbou.
Použití cloudového LB je výhodnou cestou, jak využívat kompletní funkčnost bez nutnosti investovat do hardwarových zařízení. Platí se pouze za skutečně spotřebované zdroje. Mezi známé cloudové LB patří například:
Ceny mohou začínat již od 20 dolarů měsíčně.
A nakonec, softwarová řešení, kde si uživatel sám instaluje, spravuje a konfiguruje LB software. Může se jednat o komerční produkty nebo o open-source/bezplatná řešení.
Pokud nemáte rozpočet nebo chcete prozkoumat bezplatné možnosti, následující přehled vám může být užitečný.
Seesaw
Používaný společností Google, je to spolehlivý server pro vyrovnávání zátěže založený na Linuxu, který zajišťuje rozložení zátěže v rámci lokální sítě.
Seesaw je napsaný v jazyce Go a je optimalizován pro distribuce Ubuntu/Debian. Podporuje Anycast a DSR (Direct Server Return) a vyžaduje dva uzly Seesaw, které mohou být fyzické nebo virtuální.
Je důležité poznamenat, že Seesaw pracuje se sítěmi čtvrté vrstvy, takže pokud potřebujete vyrovnávání zátěže sedmé vrstvy, bude vhodné hledat jiné alternativy.
KEMP
Bezplatný a pokročilý řadič pro doručování aplikací od společnosti KEMP je kompatibilní se všemi hlavními hypervizory. Lze ho stáhnout a používat ve vlastním datovém centru nebo nasadit v cloudovém prostředí, jako jsou AWS nebo Azure.
Je nabízen zdarma, avšak disponuje funkcemi na komerční úrovni, včetně následujících:
- Vyrovnávání zátěže na vrstvě 4 pro TCP/UDP s využitím algoritmů round-robin nebo least connections
- Vyrovnávání zátěže na vrstvě 7
- Integrace webového aplikačního firewallu (WAF)
- Vestavěný modul pro prevenci narušení (IPS)
- Skutečné globální vyrovnávání zátěže serveru s podporou multi-site
- Caching, komprese obsahu, přepínání obsahu
- Perzistence webových cookies
- IPSec tunelování
- Předběžná autentizace
- Let’s Encrypt
- Kubernetes
KEMP LB využívají významné společnosti jako Apple, Sony, JP Morgan, Audi, Hyundai a další. Bezplatná edice nabízí dostatek funkcí, a pokud potřebujete víc, můžete se podívat na komerční licenci.
Pokud se vy nebo vaše organizace rozhodnete prozkoumat KEMP LB a potřebujete online školení, můžete se obrátit na online kurz Mikea Waltona.
HAProxy
Jedním z populárních řešení na trhu pro zajištění vysoké dostupnosti, proxy a vyrovnávání zátěže pro TCP/HTTP je HAProxy. Používá ho řada renomovaných značek po celém světě, jak je uvedeno níže.
Některé z jeho funkcí stojí za zmínku:
- Podpora IPv6 a UNIX socket
- Komprese Deflate & Gzip
- Kontrola zdravotního stavu serverů
- Session stickiness založená na zdroji
- Vestavěný reporting statistik (zkuste demo)
HAProxy nabízí i podnikovou edici, hardwarová řešení a virtuální appliance.
Nejlepší způsob, jak se s HAProxy seznámit, je otestovat ho. Komunitní edice má mnoho funkcí a je zcela ZDARMA.
ZEVENET
Zevenet podporuje L3, L4 a L7. Je k dispozici jako zdrojový kód, IOS image a v Docker repository.
Poskytuje pokročilé monitorování zdravotního stavu serverů, což umožňuje rychle vyřadit vadné servery/služby, aby se zajistil bezproblémový uživatelský zážitek. Zevenet, dříve známý jako Zen, funguje dobře s protokoly založenými na TCP, jako jsou FTP, SIP, SSL, HTTP a další.
Pokud hledáte hosting pro Zevenet, můžete vyzkoušet Kamatera.
Neutrino
Neutrino, využívané eBay, je vyvinuto v jazycích Scala & Netty. Podporuje algoritmy least connections a round robin s funkcemi switchování:
- Použití kanonických jmen
- Kontextově založené
- L4 pomocí čísel portů TCP
Neutrino bylo testováno na zpracování více než 300 požadavků za sekundu na 2jádrovém virtuálním stroji. Ve srovnání s HAProxy je jednou z hlavních výhod Neutrina přepínání na L7.
Jako vždy, vyzkoušejte obě řešení a zjistěte, které nejlépe vyhovuje vašemu prostředí.
Balance
Balance od společnosti In lab networks je TCP proxy round-robin LB, které podporuje IPv6 na straně naslouchání. To znamená, že můžete mít IPv4 na frontendu a IPv6 na backendu.
Má všechny základní funkce LB.
Pen
Pen byl testován na Linuxu, FreeBSD, HP-UX, Solaris a Windows, ale neměl by mít problém fungovat i na jiných unixových distribucích. Podporuje protokoly UDP a TCP, jako jsou HTTP, SNMP, DNS atd.
Některé z funkcí zahrnují následující, kromě základních:
- GeoIP filtr
- SSL Termination
- Kompatibilita IPv4 a IPv6
Nginx
Možná si říkáte, že Nginx je webový server, proxy server atd. Nicméně open-source verze Nginx podporuje základní funkce switchování obsahu a distribuce požadavků na více serverů.
Edice Nginx Plus ale nabízí mnohem více.
Nginx Plus je komplexní řešení pro doručování webových aplikací, včetně vyrovnávání zátěže, cachování obsahu, webového serveru, WAF, monitoringu a dalších. Poskytuje vysoce výkonné řešení pro vyrovnávání zátěže a škálování aplikací, které zvládne obsloužit miliony požadavků za sekundu.
Traefik
Moderní a rychlé HTTP reverse proxy a LB vytvořené v jazyce GO. Traefik podporuje různé backend služby, jako jsou Amazon ECS, Docker, Kubernetes, Rancher a další.
Podporuje WebSockets, HTTP/2, automatickou obnovu SSL certifikátů s Let’s Encrypt, přehledné rozhraní pro správu a monitorování zdrojů.
Gobetween
Gobetween je minimalistické, ale výkonné a vysoce výkonné L4 TCP, TLS a UDP řešení pro vyrovnávání zátěže.
Je kompatibilní s různými platformami, jako jsou Windows, Linux, Docker, Darwin a v případě potřeby je možné ho sestavit ze zdrojového kódu. Vyvažování zátěže probíhá na základě následujících algoritmů, které si zvolíte v konfiguraci:
- IP hash
- Round Robin
- Nejmenší šířka pásma
- Nejmenší počet připojení
- Váha
Podle benchmarku je Go-between rychlejší než HAProxy, ale ne než Nginx.
Pokud hledáte moderní řešení pro L4 vyvažování zátěže s automatickým zjišťováním pro dynamické prostředí, Go-between se zdá být slibnou volbou. Vyzkoušejte a uvidíte, jak bude fungovat.
Závěr
Doufám, že vám tento přehled open-source softwaru pro vyrovnávání zátěže pomůže vybrat ten správný pro vaši aplikaci. Všechny uvedené nástroje jsou ZDARMA, takže nejlepší způsob, jak zjistit, co funguje, je vyzkoušet si je.
Pokud se chcete naučit nové dovednosti, zkuste Udemy, kde je k dispozici spousta videokurzů.