fbpx
Damir Špoljarič

S rozmachem veřejných cloudů začínají i menší projekty řešit vysokou dostupnost aplikací a snadné škálování. Zásadní komponentu v návrhu takového řešení hrají load balancery. Load balancer je aplikace, která distribuuje požadavky z Internetu na aplikační stroje a v případě problému dokáže nefunkční aplikační server odpojit z provozu.

Na ilustraci vidíte, jak takový typický návrh balancované aplikace vypadá:

Požadavky jdou z Internetu na load balancer, který se na základě vnitřních metrik rozhodne, kterému aplikačnímu serveru předá požadavek k vyřízení. Z Internetu jsou dostupné pouze load balancery, aplikační stroje jsou “schované” za nimi. Škálování aplikace probíhá jednoduše tak, že se nový aplikační stroj připojí do load balanceru a ten začne požadavky zasílat i na něj. Load balancery se staví ve dvojicích, kdy druhý slouží jako záloha v případě, že primární load balancer selže.

Load balancer vs. reverzní proxy

Podobnou roli jako load balancery může sehrát i reverzní proxy. Zatímco load balancer pracuje na úrovni spojení, reverzní proxy rozumí přenášeným datům, čímž dokáže efektivněji řídit provoz a cachovat odpovědi aplikačních serverů. Zároveň je ale většinou jednoúčelová a pracuje pouze s protokolem, na který je navržena.

Nejčastěji se reverzní proxy nasazují před webové servery, kdy je spousta odpovědí prakticky totožná. Díky cache dokáží dramaticky snížit nároky na aplikační stroje, a tím snížit náklady na provoz. Některé load balancery dokážou pracovat v obou režimech.

Softwarový vs. hardwarový load balancer

Softwarové load balancery jsou univerzální a nasazují se jako běžná aplikace zpravidla na linuxový server. Díky tomu je jejich provoz levný, avšak při vysokém množství požadavků mohou trpět problémy s výkonem. Pro nasazení ve velkých prostředích se používají hardwarové load balancery, které mají podobu “krabic” o rozměru 1U nebo 2U. Mají výrazně vyšší výkon a stabilitu (běžně v režimu “nastavit a zapomenout”), ovšem zároveň se jejich pořizovací cena pohybuje v řádech statisíců až milionů korun. Nejznámějším zástupcem rodiny hardwarových load balancerů jsou výrobky firmy F5.

Podíváme se důkladněji na čtyři zástupce softwarových load balancerů, které se praxi používají nejčastěji.

HAProxy je nejčastěji nasazovaný load balancer. Vyznačuje se vysokou stabilitou, výkonem a snadnou konfigurací. Dokáže pracovat v režimu TCP load balanceru, kdy pouze předává požadavky aplikačním strojům, tak i v režimu reverzní proxy pro HTTP, kdy je schopna předávat požadavky na základě jejich metadat, jako je požadovaná URL nebo HTTP hlavičky. V režimu HTTP balanceru se také umí postarat o terminaci SSL šifrování, kdy na aplikační stroje jde požadavek už nešifrovaný a nemusí tedy pálit výkon dešifrováním a opětovným šifrováním provozu. Bohužel si není schopna sama řešit požadavky na certifikáty pro nové domény, ale musí mít všechny certifikáty k dispozici při startu. Hodí se tedy v prostředí, kde je malé množství různých domén a certifikátů. Velkou výhodou HAProxy jsou velmi kvalitní statistiky provozu dostupné přes webové rozhraní nebo přes unix socket. V režimu HTTP podporuje kromě staršího HTTP/1.1 i moderní protokol HTTP/2.

Trpí ovšem i několika neduhy. Z nejzásadnějších můžeme zmínit chybějící podporu rekonfigurace on-the-fly, kdy pro změnu konfigurace load balanceru je vyžadován restart služby. Dále se můžeme potkat s problémy při nedostupnosti DNS pro překlad jmen cílových serverů a chybějící podpora pro clusterované řešení.

Pro výběr cílového aplikačního serveru používá několik předpřipravených algoritmů. Můžete směřovat požadavky prostým i váženým round-robinem (kdy jsou požadavky distribuovány střídavě přes všechny aplikační servery) nebo lze využít módu leastconn, kdy se požadavek předává na stroj s nejmenším množstvím aktuálně obsluhovaných požadavků. Zároveň je schopna hlídat dostupnost a zdraví aplikačních serverů pravidelným zasíláním požadavků na nastavený endpoint a na základě odpovědi od serveru odstřihnout nefungující server z provozu. Podporuje také servery v režimu backup, na které je směrován provoz, pokud není dostupný žádný z hlavních serverů.

Konfigurace load balanceru se provádí v souboru /etc/haproxy/haproxy.conf. Jedná se o jednoduchý konfigurační soubor, kde se nastavují frontendy (tj. veřejně dostupné služby, které HAProxy přijímá) a backendy (seznamy aplikačních serverů, které zpracovávají požadavky). HAProxy má velmi dobře zpracovanou dokumentaci. Díky jejímu rozšíření naleznete na webu spoustu návodů, jak ji nastavit přesně podle vašich požadavků.

HAProxy se nachází ve většině distribucí, bohužel velmi často ve starých verzích. Aktuální verze je dostupná na webu haproxy.org, kde naleznete i aktuální balíky pro distribuce. HAProxy podporuje nasazení na linuxu, BSD, Solarisu a AIXu. Windows ani Mac podporován není. Kromě open-source komunitní verze je dostupná i komerční podoba s placenou podporou pod názvem HAProxy Enterprise Edition a hardwarový load balancer postavený na HAProxy s názvem ALOHA hardware appliance.

Traeffik je moderní load balancer pracující v režimu HTTP proxy. Konfiguraci může mít uloženu v textových souborech ve formátu TOML nebo v distribuovaném key-value storage. Aktuálně podporuje úložiště etcd a consul. Dokáže komunikovat s Kubernetes a automaticky vyhledávat nové stroje a odpojovat zrušené. Na rozdíl od HAProxy podporuje živou konfiguraci, kdy je schopen hlídat změny v konfiguračních souborech nebo v konfiguračním úložišti a reagovat na změny.

Podporuje pouze balancování HTTP provozu, není tedy moc praktický pro použití v interní síti. Jeho velkou výhodou je přímá podpora pro Let’s encrypt, kdy je schopen si automaticky žádat o certifikáty pro neznámé domény a zároveň hlídat expiraci existujících certifikátů.

Velkou nevýhodou Traeffiku jsou časté chyby v dokumentaci. V nasazení jste tedy často odkázáni na metodu pokus-omyl a konzultace na veřejném Slack channelu projektu.

Když už se vám podaří Traeffik rozjet, má velmi slušný výkon a stabilitu. V základu nabízí jednoduché webové rozhraní s přehledem zaregistrovaných aplikačních serverů a základní statistiky provozu.

Traeffik je dostupný jako staticky linkovaná binárka (je psaný v Go) na webu projektu nebo na GitHubu, kde je k dispozici i aktuální seznam nahlášených chyb. Autoři Traeffiku také nově nabízí komerční podporu.

Nginx je webový server, který má podporu loadbalancování tak nějak mimoděk. Má velmi vysoký výkon při práci s HTTP provozem, kdy využívá svůj vysoký potenciál coby webového serveru. Velmi dobře cachuje odpovědi z aplikačních serverů, reaguje na různé typy požadavků a je schopen je ve vysoké škále upravovat.

Vzhledem k jeho hlavnímu účelu web serveru je velmi vhodný pro balancování HTTP provozu, zvládá ale také balancování TCP a UDP spojení. Nginx je díky své popularitě k nalezení v repozitářích distribucí v poměrně nových verzích. K dispozici je i placená verze s podporou pod názvem Nginx+.

Nginx nepodporuje on-the-fly konfiguraci, pro změnu je nutný reload služby. Healthcheck pro aplikační servery je dostupný přes modul ngx_http_healthcheck_module, který ovšem pracuje pouze na úrovni HTTP (kontroluje HTTP status).

IPVS

IPVS, plným názvem IP virtual server, je load balancer zabudovaný přímo v linuxovém kernelu pomocí modulu ip_vs. Díky tomu dosahuje velmi vysokých výkonů, srovnatelných s hardwarovými load balancery, zároveň má velmi malý dopad na systémové prostředky a vynikající stabilitu. IPVS je pouze L3 load balancer, pracuje tedy na úrovni TCP/UDP spojení. Není schopen předávat požadavky na základě metadat (nevidí do přenášených dat), takže je vhodný pro řešení balancingu služeb pouze na základě portu služeb.

Konfiguruje se přes utilitu lmanager, která je dostupná ve všech linuxových distribucích. Po tomto balanceru sáhněte, pokud chcete na jednom místě balancovat více různých služeb a jde vám primárně o výkon. Své uplatnění tedy nalezne u velkých internetových projektů, jako balancer na úrovni datacenter a pro exponované služby. Zvládá on-the-fly konfiguraci, kontroluje dostupnost cílových serverů a podporuje balancování pomocí algoritmu round-robin včetně podpory různých vah u cílových serverů (wrr algoritmus).

Nasazení jakéhokoliv loadbalanceru je nutná podmínka k automatickým reakcím na výpadky aplikačních serverů a velký krok k zajištění bezproblémové škálovatelnosti aplikací. Díky velmi příznivému poměru potřebného výkonu a počtu spojení se jeho použití nijak drasticky neprojeví na ceně provozu infrastruktury. Load balancer vždy vybírejte s ohledem na druh provozu, velmi často si vystačíte se specializovaným load balancerem pro konkrétní sadu protokolů a využijete možnosti, které nabízí balancer, který rozumí přenášeným datům.

Článek byl publikován naším Senior Infrastructure Adminem na webu www.starejajtak.cz


Damir Špoljarič

Ve vshosting~ provozujeme obrovské množství fyzických serverů ať už pro naši cloudovou infrastrukturu, tak pro vyhrazené klientské servery. Mezi nejpoužívanější značky v našem datacentru patří SuperMicro a DELL. Tento rok jsme však v souvislosti s přípravou projektu nového datacentra začali vyvíjet vlastní hardware. Tento krok před námi udělaly i jiné velké společnosti jako Google, Facebook, OVH a desítky dalších.

Jak přesně bude vlastní hardware vypadat?

Půjde o vyvinutí vlastního chassis speciálních rozměrů s vlastním zdrojem napájení z 48VDC na standardní ATX napájení. Paměti, základní desky a procesory použijeme pro maximální spolehlivost hotové.

1. Maximální přizpůsobení projektu nového datacentra

Nové datové centrum nepočítá ve většině plochy se standardními 19’’ stojany na servery, jako je to v jiných datacentrech. Pro datové sály budou vytvořeny speciální několikařadé police, přičemž na každé polici budou umístěny stovky kusů serverů, které budou uspořádány pro maximální efektivitu.

Každá police bude vzduchově oddělena a utěsněna a bude obsahovat vlastní redundantní ventilátory zajišťující chlazení jinak pasivně chlazených serverů. Police budou disponovat vždy dvěma centrálními zdroji (větev A a B) 48V stejnosměrně rozvodem ke každému serveru.

2. Úspora nákladů

Úspora pořizovacích nákladů je značná, jelikož se neplatí výrobci za „značkový server“. Úspora je i na straně stojanů a zdrojů serverů. Z pohledu efektivity provozu dojde i k obrovské úspoře provozních nákladů díky minimálním ztrátám na zdrojích a kombinaci nepřímého free-cooling a adabiatického přímého free-cooling chlazení, které zajistí provoz bez nutnosti méně ekonomického kompresorového chlazení.

Maximální provozní efektivitě bude uzpůsoben i výběr lokality datacentra s ideálním poměrem nejnižších letních teplot a současně nejnižší vlhkostí a rovněž konstrukce a orientace budovy.

3. Jednoduchý (= rychlý) servis

Vzdálené vypnutí vadného serveru a jeho vytažení z police bez nutnosti použití nářadí bude otázkou několika minut. Pohráváme si i s myšlenkou budoucího zapojení robotů pro automatické montáže a výměny vadných serverů pro možnost bezobslužného a plně automatizovaného provozu datacentra DC2.

4. Žádný vendor lock-in

Nebudeme omezeni žádným výrobcem, který by nám diktoval, do kdy je daný typ jeho serveru podporován, nemusíme se přizpůsobovat jeho servisním programům ani seznamu podporovaných doplňkových komponent. Vše si přizpůsobíme své potřebě.

Damir Špoljarič
CEO


Damir Špoljarič

Máte vlastní e-shop, webovou prezentaci, jste vývojář webových aplikací nebo třeba digitální agentura spravující svým klientům webové stránky? Pak vás jistě potěší informace, že pro celou řadu úkonů spojených s provozem nepotřebujete specialistu pro ovládání serverů. Aplikace, webové stránky, e-mailové účty nebo například DNS si díky šikovné platformě s názvem Plesk zvládnete řešit z velké části sami bez nutnosti používat příkazový řádek.

Co je Plesk?

Plesk je platforma, prostředí, aplikace nebo chcete-li program pro ovládání single managed serverů. Můžete si ho představit podobně jako WordPress či Teamwork. Je jednoduchý, intuitivní a na první pohled srozumitelný.

Pomocí pár kliknutí můžete přidávat a odebírat domény, spravovat webové stránky a databáze, nastavení hostingu, e-maily, soubory i nahrávat aplikace. Pro více než 300 nejznámějších z nich poskytuje Plesk podporu, a díky rozšířením například pro Docker, Git, zmiňovaný WordPress či Kaspersky Antivirus nebyl jejich management nikdy snazší. V současné době je Plesk využívaný na více než 377 000 serverech spokojených uživatelů. 

Kdo jsem a co potřebuji?

Plesk je dostupný v několika verzích, z nichž každá je přizpůsobená konkrétní skupině uživatelů. Na míru ušité uživatelské rozhraní a funkce nabízí především webovým administrátorů, webovým profesionálům a poskytovatelům hostingu.

Web administrátor

  • Pro kohokoliv, kdo spravuje web svůj, svého zaměstnavatele nebo klienta
  • Jednoduchá administrace webových stránek a domén
  • Výhody: produktivita, nerušivé prostředí, nezávislost
  • Něco navíc: SEO Toolkit

Web profesionál

  • Pro webdesignéry, vývojáře, content manažery a agentury, které mají na starost větší množství klientů
  • Jednoduchá správa stránek včetně většího využití např. WordPressu nebo CMS platformy. Ready-to-code prostředí a nástroje pro vývojáře.
  • Výhody: není nutné znát technické zázemí ani infrastrukturu, podpora růstu a vývoje, nástroje pro zvýšení online prodeje
  • Něco navíc: WordPress Toolkit, NGINX caching

Poskytovatelé hostingu a jejich zákazníci

  • Pro zákazníky, kteří chtějí vlastní uživatelské řešení správy svého serveru
  • Téměř jakákoliv konfigurace, zabezpečené WordPress a DNS nástroje, nástroje pro zvýšení zisku
  • Výhody: přizpůsobení na míru, zabezpečení, spolehlivost, uživatelská jednoduchost

Výhody a novinky

Co z Plesku dělá nejlepší řešení pro správu single managed serverů na trhu? Ve své poslední verzi s názvem Onyx 17.8 poskytuje bezkonkurenční vylepšení a vychytávky. Tady jsou některé z nich:

  • Je univerzální – spustíte ho na Windows i všech hlavních Linuxových distribucích
  • Nemusíte se omezovat jen jednou edicí Plesku – můžete ji doplnit jakýmkoliv rozšířením z rozsáhlého katalogu doplňků a nástrojů
  • Bezpečnost především – skálopevné server-to-site zabezpečení a SSL naprosto všude
  • Integrovaný WordPress Toolkit na správu instancí, pluginů a šablon
  • Integrovaný SEO Toolkit pro zlepšení a monitorování SEO strategie nebo rychlé reakce na změny rankingu
  • Superrychlé NGINX cachování
  • Integrovaný Plesk Repair Kit pro rychlé a jednoduché opravy serveru bez nutnosti znalosti technikálií
  • Podpora programovacích jazyků – např. Ruby, Node.js, PHP nebo Python
  • Integrované Docker a Git pluginy pro zvýšení produktivity a rychlé nasazování aplikací
  • Plesk je jediným nástrojem, který potřebujete pro výstavbu, zabezpečení a provozování webových stránek a aplikací, které se škálují v cloudu

V jednoduchosti je spása

Slogan Plesku zní „The power to simplify“. Tato čtyři krátká slova přesně vystihují to, co vám jeho využívání přinese. Méně času stráveného administrativou a více času na práci. Čili něco, po čem je dnes na trhu obrovská poptávka.  

vshosting~ je od roku 2008 partnerem Plesku, a má tak rozsáhlé zkušenosti s jeho nasazováním, používáním i customizací. Dokážeme vám pomoci vybrat správnou edici, vysvětlit cokoliv související s jeho obsluhou i navrhnout nejlepší řešení pro váš projekt. Pokud vás zajímají podrobnosti k samotnému software, podívejte se na www.plesk.com. Pro konkrétní nabídku nebo s upřesňujícími dotazy se ozvěte našim server specialistům na obchod@vshosting.cz.


Během 17 let jsme provedli úspěšnou migrací stovky klientů. Pomůžeme i vám.

  1. Domluvte se na konzultaci

    Stačí nám zanechat kontakt. Obratem se vám ozveme.

  2. Bezplatný návrh řešení

    Nezávazně probereme, jak vám můžeme pomoct. Navrhneme řešení na míru.

  3. Profesionální realizace

    Připravíme vám prostředí pro bezproblémovou migraci dle společného návrhu.

Zanechte nám svůj e-mail nebo telefon




    Nebo nás kontaktujte napřímo

    +420 246 035 835 V provozu 24/7
    konzultace@vshosting.cz
    Zkopírovat
    Obratem se vám ozveme