Jedan od najefikasnijih i najlakših načina za postizanje visoke dostupnosti i poboljšanja performansi vaše aplikacije je implementacija balansera opterećenja (LB).
U osnovi, postoje tri glavne kategorije balansera opterećenja:
- Hardverski bazirani
- Cloud bazirani
- Softverski bazirani
Hardverski balanseri opterećenja su specijalizovani uređaji koji pružaju distribuciju opterećenja i sve povezane funkcije. Neki od poznatih proizvođača hardverskih LB uređaja su:
Iako su ovi uređaji skupi, omogućavaju vam potpunu kontrolu nad sistemom.
Balanseri opterećenja u oblaku su sve popularniji.
Korišćenje cloud LB je pristupačan način da iskoristite sve prednosti bez ulaganja u hardverske uređaje. Plaćate samo ono što koristite. Neki od poznatih cloud LB provajdera su:
Cene obično počinju od oko 20 dolara mesečno.
Poslednja kategorija su softverski balanseri, gde sami instalirate, upravljate i konfigurišete LB softver. Ovaj softver može biti komercijalan ili otvorenog koda/besplatan.
Ako imate ograničen budžet ili želite da istražite besplatna rešenja za balansiranje opterećenja, sledeći spisak vam može biti od pomoći.
Seesaw
Koristi Google pouzdan virtuelni server za balansiranje opterećenja, baziran na Linuxu, koji obezbeđuje potrebnu distribuciju opterećenja u okviru iste mreže.
Seesaw je razvijen na Go jeziku i dobro funkcioniše na Ubuntu/Debian distribucijama. Podržava Anycast i DSR (Direct Server Return) i zahteva dva Seesaw čvora. Oni mogu biti fizički ili virtuelni.
Važno je napomenuti da Seesaw radi sa mrežama četvrtog sloja, tako da ako tražite balansiranje opterećenja sedmog sloja, možda ćete želeti da razmotrite druge opcije.
KEMP
BESPLATNI napredni kontroler isporuke aplikacija od strane KEMP podržan je na svim glavnim hipervizorima. Možete ga preuzeti i koristiti u svom data centru ili ga primeniti u cloud DC-u kao što su AWS ili Azure.
Besplatan je, ali nudi funkcije komercijalnog nivoa, uključujući:
- Balansiranje opterećenja sloja 4 za TCP/UDP koristeći round-robin ili algoritme najmanje veze
- Balansiranje sloja 7
- Integraciju zaštitnog zida web aplikacija (WAF)
- Ugrađeni sistem za sprečavanje upada (IPS)
- Pravo globalno balansiranje opterećenja servera, podržava više lokacija
- Keširanje, kompresija sadržaja, prebacivanje sadržaja
- Postojanost web kolačića
- IPSec tuneliranje
- Pre-autentifikaciju
- Let’s Encrypt podršku
- Kubernetes podršku
KEMP LB koriste mnogi veliki brendovi kao što su Apple, Sony, JP Morgan, Audi, Hyundai, itd. Besplatna verzija pruža dovoljno funkcija; međutim, ako vam treba više, možete razmotriti njihovu komercijalnu licencu.
Ako vi ili vaša organizacija odlučite da istražite KEMP LB i potrebna vam je obuka na mreži, možete pogledati ovaj online kurs Mike Waltona.
HAProxy
Jedan od popularnijih na tržištu, pruža visoku dostupnost, proksi i TCP/HTTP balansiranje opterećenja. HAProxy koriste mnogi renomirani svetski brendovi, kao što je prikazano u nastavku.
Neke od značajnih karakteristika su:
- Podrška za IPv6 i UNIX socket
- Deflate & Gzip kompresija
- Zdravstveni pregled
- Lepljivost sesije zasnovana na izvoru
- Ugrađeno statističko izveštavanje (pogledajte demo)
Kao što se može očekivati, HAProxy ima i korporativno izdanje, hardver i virtuelne uređaje.
Najbolji način da saznate više o HAProxy-u je da ga isprobate. Community Edition dolazi sa mnogim funkcijama i besplatan je.
ZEVENET
Zevenet podržava L3, L4 i L7. Dostupan je kao izvorni kod, IOS slika i u Docker repozitorijumu.
Podržava napredno praćenje zdravstvenog stanja, tako da neispravni serveri/usluge brzo prestaju sa radom kako bi se obezbedilo besprekorno korisničko iskustvo. Zevenet, ranije poznat kao Zen, dobro funkcioniše sa protokolima zasnovanim na TCP-u kao što su FTP, SIP, SSL, HTTP, itd.
Ako tražite Zevenet hosting, možete probati Kamatera.
Neutrino
Neutrino koristi eBay i napravljen je pomoću Scala & Netty. Podržava algoritme najmanje veze i round-robin algoritme sa sledećim funkcijama prebacivanja:
- Korišćenje kanonskih imena
- Zasnovano na kontekstu
- L4 koristeći brojeve TCP portova
Neutrino je testiran da obrađuje 300+ zahteva u sekundi na 2-jezgarnom VM-u. Ako se upoređuje sa HAProxy-em, jedna od velikih prednosti korišćenja Neutrino-a je prebacivanje L7.
Ali kao i uvek, isprobajte oba i vidite šta najbolje odgovara vašem okruženju.
Balance
Balance od In lab networks je TCP proksi round-robin LB koji podržava IPv6 na strani slušanja. To znači da možete imati IPv4 na prednjem kraju i IPv6 na zadnjem kraju.
Ima sve osnovne LB karakteristike.
Pen
Pen je testiran na Linuxu, FreeBSD-u, HP-UX-u, Solarisu i Windows-u, ali nema razloga da ne radi na drugoj Unix distribuciji. Podržava UDP i TCP protokole kao što su HTTP, SNMP, DNS, itd.
Neke od karakteristika uključuju sledeće, uz osnovne:
- GeoIP filter
- SSL terminaciju
- IPv4 i IPv6 kompatibilnost
Nginx
Znam šta možda mislite. Nginx je web server, proksi server itd. Ali Nginx otvorenog koda podržava osnovni nivo prebacivanja sadržaja i distribucije rutiranja zahteva na više servera.
Međutim, Nginx Plus izdanje je mnogo više od toga.
Nginx Plus je sve-u-jednom rešenje za isporuku web aplikacija, uključujući balansiranje opterećenja, keširanje sadržaja, web server, WAF, nadgledanje, itd. Pruža rešenje za balansiranje opterećenja visokih performansi za skaliranje aplikacija da opsluže milione zahteva u sekundi.
Traefik
Moderan i brz HTTP rezervni proksi i LB napravljen sa GO. Traefik podržava više pozadinskih usluga Amazon ECS, Docker, Kubernetes, Rancher, itd.
Podržava WebSockets, HTTP/2, automatsko obnavljanje SSL sertifikata uz Let’s Encrypt, čist interfejs za upravljanje i nadgledanje resursa.
Gobetween
Gobetween je minimalistički, ali moćan L4 TCP, TLS i UDP balanser opterećenja zasnovan na visokim performansama.
Radi na više platformi kao što su Windows, Linux, Docker, Darwin i ako ste zainteresovani, možete ga napraviti iz izvornog koda. Balansiranje se vrši na osnovu sledećih algoritama koje izaberete u konfiguraciji:
- IP heš
- Round-robin
- Najmanji propusni opseg
- Najmanja veza
- Težina
Prema benchmark testovima, Go-between je brži od HAProxy-a, ali ne od Nginx-a.
Ako tražite moderno rešenje za balansiranje L4 sa automatskim otkrivanjem za dinamično okruženje, onda Go-between deluje obećavajuće. Probajte ga da vidite kako radi.
Zaključak
Nadam se da će vam gore navedeni softver za balansiranje opterećenja otvorenog koda pomoći da izaberete onaj pravi za vašu aplikaciju. Svi su BESPLATNI, tako da je najbolji način da pronađete ono što funkcioniše tako što ćete ih isprobati.
Ako želite da naučite nove veštine, isprobajte Udemy, gde su dostupne hiljade video kurseva.