====== Load balancing (Vyrovnávání zátěže) ====== **Load balancer** stojí jako "vstupní brána" mezi klientem (uživatelem) a skupinou serverů (tzv. **Server Farm** nebo **Backend Pool**). Jakmile přijde požadavek, load balancer rozhodne, kterému serveru jej předá. ===== 1. Hlavní přínosy ===== * **Vysoká dostupnost (High Availability):** Pokud jeden server selže, load balancer to pozná a okamžitě začne posílat provoz na ostatní funkční servery. * **Škálovatelnost:** Umožňuje snadno přidávat nové servery do sítě podle toho, jak roste počet uživatelů. * **Plynulý upgrade:** Umožňuje vypnout jeden server pro údržbu, zatímco ostatní dál obsluhují uživatele, aniž by si někdo všiml výpadku. ===== 2. Algoritmy výběru serveru ===== Load balancer se rozhoduje podle nastaveného algoritmu: ^ Algoritmus ^ Popis ^ Vhodné pro ^ | **Round Robin** | Požadavky se posílají popořadě (1, 2, 3, 1...). | Servery se stejným výkonem. | | **Least Connections** | Vybere server, který má aktuálně nejméně aktivních spojení. | Dlouhotrvající požadavky. | | **IP Hash** | Na základě IP adresy klienta určí server. | Udržení relace uživatele na stejném serveru. | | **Weighted Round Robin** | Silnější servery dostávají více požadavků než slabší. | Smíšený hardware. | ===== 3. Typy Load balancerů ===== Podle toho, na které vrstvě [[it_encyklopedie:osi_model|OSI modelu]] pracují: * **L4 Load Balancer (Transportní vrstva):** Rozhoduje se na základě IP adres a portů (TCP/UDP). Je velmi rychlý, ale "nevidí" do obsahu dat. * **L7 Load Balancer (Aplikační vrstva):** Rozhoduje se na základě obsahu požadavku (např. URL adresa, soubory cookie, hlavičky HTTP). To umožňuje např. posílat požadavky na obrázky na jiné servery než požadavky na platby. ===== 4. Health Checks (Kontrola zdraví) ===== Load balancer neustále testuje ("pingá") servery v pozadí. Pokud server neodpoví nebo vrátí chybu, balancer ho označí za "nezdravý" a přestane mu posílat provoz, dokud se neuzdraví. Tím se předchází situaci, kdy by uživatel dostal chybovou stránku. ===== 5. Hardwarové vs. Softwarové řešení ===== * **Hardwarové:** Dedikovaná zařízení (např. F5, Citrix), extrémně výkonná, ale drahá. * **Softwarové:** Programy běžící na běžných serverech. * **HAProxy:** Standard pro vysoký výkon a spolehlivost. * **Nginx:** Velmi populární webový server, který slouží i jako load balancer. * **Cloudové:** Služby jako AWS ELB (Elastic Load Balancing) nebo Azure Load Balancer. > **Zajímavost:** Load balancery často řeší i tzv. **SSL Termination**. To znamená, že dešifrování HTTPS provozu proběhne na balanceru, čímž se ulehčí procesorům samotných aplikačních serverů v pozadí. [[it_encyklopedie:it_architektura_rozcestnik|Zpět na Rozcestník]]