Pomocí vyvažování zatížení lze přístup k serveru rovnoměrně rozložit mezi různé hardwarové zdroje prostřednictvím technické instance zvané Load Balancer. Tím je zajištěna stabilní rychlost přístupu, která je klíčová pro generování potenciálních zákazníků a zákazníků.

Co je to vyvažování zátěže?

Vyrovnávání zatížení je obzvláště populární v serverové technologii a popisuje metodu, při které jsou požadavky distribuovány mezi různé servery na pozadí, aniž by si toho uživatelé všimli. Vyrovnávač zatížení používaný pro tento účel může být implementován jako hardware nebo software. Přiřazuje několik serverů k doméně, aniž by docházelo ke konfliktům adres, a je přístupný pod veřejnou doménou.

Podřízené webové servery jsou pojmenovány s přídavky domény www1, www2, www3 atd. To umožňuje vyvažování zatížení, aby byl web dostupný pod stejnou adresou URL, i když za ním stojí více serverů. Tím se zabrání přetížení serveru, protože externí požadavky jsou distribuovány mezi různé fyzické stroje v rámci clusteru. Uživatelé si toho obecně nevšimnou, protože distribuce požadavků probíhá na základě složitých algoritmů na pozadí.

Vyrovnávání zatížení může hrát roli i mimo webové servery, například u počítačů, které pracují s více procesory. V takových případech vyrovnávač zatížení zajišťuje rovnoměrné rozložení požadavků mezi různé procesory, aby se dosáhlo vyššího výpočetního výkonu. Vyrovnávače zatížení jsou také žádané při používání kontejnerového softwaru, jako je Kubernetes. Zde zajišťují efektivní rozložení pracovního zatížení mezi různé pody.

Jak funguje vyvažování zatížení?

Požadavky na webový server, např. ve formě zobrazení stránek, se nejprve spustí na load balanceru. Ten pak převezme rozložení zátěže tím, že přesměruje pokusy o přístup na různé servery. Load balancer samotný může být implementován jako hardware nebo software, ale princip zůstává stejný: požadavek dorazí na load balancer a v závislosti na použité metodě zařízení nebo software přesměruje data na příslušný server.

Technickým základem je postup DNS: Uživatelé přistupují k webové stránce pouze prostřednictvím URL. Ta se pomocí DNS převede na IP adresu, která pak odkazuje na load balancer. V ideálním případě si uživatelé tento proces vůbec nevšimnou.

Obrázek: Diagram of how load balancing works
A load balancer distributes the load of client accesses over the internet or web to various servers.

Jaké jsou výhody vyváženého rozložení zátěže?

Tři hlavní výhody správně nasazeného load balanceru jsou následující:

  • Optimalizované přístupové časy: Rozložení provozu na více serverů může vést ke zkrácení přístupových časů, a to i v případě, že je současně zadáno mnoho požadavků.
  • Vyšší odolnost proti poruchám: Load balancer zvyšuje odolnost proti poruchám, protože provoz z pomalého serveru je automaticky přesměrován na jiné servery v clusteru. Pokud je server nedostupný, hostovaná webová stránka zůstává přístupná.
  • Zjednodušená údržba systému: Vyrovnávání zátěže výrazně podporuje údržbu serverového systému. Konfigurace a aktualizace lze provádět za běhu serverů bez znatelného snížení výkonu. Vyrovnávač zátěže detekuje stavy údržby a podle toho přesměrovává požadavky.

Jaké jsou různé typy vyvažování zatížení?

Způsob rozdělování příchozích požadavků závisí na volbě algoritmu. Mezi oblíbené algoritmy pro vyvažování zátěže patří: Round Robin, Weighted Round Robin, Least Connections a Weighted Least Connections.

Kolo Robin

Round Robin popisuje postup, při kterém jsou příchozí požadavky serveru zpracovávány v pořadí podle vyrovnávače zatížení a distribuovány mezi řadu serverů. Každý nový požadavek je přiřazen dalšímu serveru v pořadí. Výsledkem je rovnoměrné rozložení přístupových požadavků v rámci clusteru pro vyrovnávání zatížení. Bez ohledu na naléhavost požadavku nebo závažnost zatížení serveru zachází Round Robin se všemi procesy stejně. Load balancery, které fungují na principu round-robin, jsou zvláště vhodné pro prostředí, kde mají všechny instance k dispozici přibližně stejné zdroje.

Vážený Round Robin

Slabiny klasického algoritmu round-robin v heterogenních serverových klastrech lze vyvážit pomocí váženého rozdělení round-robin. Příchozí požadavky jsou rozdělovány s ohledem na statické vážení každého serveru. Toto vážení je předem definováno správcem.

Nejvýkonnějšímu serveru lze například přiřadit hodnotu „100“, zatímco méně výkonným serverům bude přiřazena hodnota „50“. V takovém nastavení by server s váhou „100“ obdržel od vyvažovače zatížení dvě žádosti za kolo, zatímco server s váhou „50“ by obdržel pouze jednu žádost. Vážený Round Robin by měl být primárně používán při vyvažování zatížení, když mají servery v clusteru k dispozici různé zdroje.

Nejméně spojení

Oba algoritmy round-robin při sériovém rozdělování požadavků serveru vyvažovačem zatížení neberou v úvahu, kolik připojení musí podřízené servery udržovat během určitého období. To může vést k hromadění několika připojení na jednom serveru v clusteru. To vede k přetížení serveru, i když zpracovává méně připojení než ostatní. Algoritmus nejméně připojení chrání před tímto jevem. Distribuuje požadavky na základě existujících připojení každého serveru– ten, který má nejméně aktivních připojení, dostane další požadavek od vyvažovače zatížení. Tato metoda vyvažování zatížení se doporučuje pro homogenní serverové clustery, kde mají všechny počítače k dispozici srovnatelné zdroje.

Vážená nejmenší spojení

Pokud má serverový cluster různé kapacity, místo algoritmu nejmenšího počtu připojení by mělo být použito vyvažování zatížení na základě váženého rozložení existujících připojení. To zohledňuje jak počet aktivních připojení, které server má, tak váhu definovanou správcem. Tím je zajištěno vyvážené rozložení zatížení v rámci serverového clusteru. Nové požadavky jsou automaticky přiřazovány vyvažovačem zatížení těm serverům, jejichž poměr aktivních připojení k příslušné váze serveru naznačuje nejmenší aktuální zatížení.

Jaké problémy mohou nastat při používání vyvažování zátěže?

Zejména v odvětví elektronického obchodování čelí vyvažování zatížení často výzvám. Zde je příklad: Návštěvníci webových stránek přidávají do nákupního košíku položky, které si chtějí zakoupit. Tyto položky zůstávají uloženy po celou dobu trvání relace, bez ohledu na to, na kterou stránku se uživatelé v rámci online tržiště přesunou. Typický vyvažovač zatížení by rozdělil požadavky mezi různé servery. To by znamenalo, že obsah košíku by byl ztracen.

K vyřešení tohoto problému lze použít dva přístupy. Za prvé, load balancer může reagovat na IP adresu uživatelů. Poté jsou například požadavky ze stejné IP adresy vždy směrovány na stejný server. Dalším způsobem by bylo načíst ID relace z samotného požadavku a určit, na který server má být požadavek odeslán.

Proč jsou load balancery tak důležité?

Pokud vyděláváte peníze přes internet, vaše firma si nemůže dovolit výpadek serveru. A pokud používáte pouze jeden server a ten se kvůli přetížení zhroutí, váš web již není přístupný potenciálním zákazníkům. To vede k několika problémům: Za prvé, během přetížení nemůžete generovat příjmy. Nelze rezervovat služby ani provádět nákupy. Navíc klesá důvěra (potenciálních) zákazníků. Pro uživatele, kteří se během objednávkového procesu setkají s přetížením serveru, je to dvojnásobně nepříjemné. Často panuje velká nejistota a postižení nevědí, zda objednávka skutečně dorazila a byla zaznamenána v systému.

I když nenabízíte služby přímo přes internet, vaše webové stránky by měly být vždy dostupné. Webové stránky jsou jedním z hlavních kanálů pro přístup k informacím. Pokud potenciální zákazníci hledají informace o vaší společnosti online a nemohou se dostat na vaše stránky, je pravděpodobnější, že se obrátí na vaši konkurenci. Taková rizika můžete minimalizovat pomocí load balanceru.

Jak implementovat vyvažování zátěže ve vaší firmě

Vyrovnávání zatížení lze na virtuálním serveru realizovat pomocí hardwarových i softwarových řešení. Profesionální kompletní balíčky nabízí řada poskytovatelů buď jako Infrastructure-as-a-Service (IaaS), nebo jako síťovou komponentu pro vaši vlastní IT infrastrukturu.

Vzhledem k tomu, že pořízení proprietárních load balancerů je obvykle spojeno s vysokými náklady, menší společnosti často sahají po open-source řešeních, jako je NGINX. Ten nabízí nákladově efektivní způsob, jak zajistit vysokou dostupnost webových stránek vaší společnosti nebo jiných webových projektů prostřednictvím efektivního rozložení zátěže v rámci serverové sítě. V oblasti webhostingu je load balancing často nabízen také jako doplňková funkce pro cloudové servery.

Přejít do hlavního menu