Je snadné si myslet, že služba velkému publiku vyžaduje serverovnu o velikosti skladu. Není tomu však vždy tak. Pokud je váš web statický, může malý stroj obsloužit stovky tisíc návštěvníků. Představte si jednoduchý 500 MHz Celeron s Linuxem a Apache. Připojení k lince T3 (45 milionů bitů za sekundu). Tato konfigurace je schopna zvládnout velmi velké objemy provozu. Poskytovatelé pronajímají celý tento komplex za méně než 1 000 $ měsíčně.
Ale tady je problém. Nejoblíbenější stránky nejsou malé. Rychle narazí na omezení. Jeden stroj nemůže škálovat donekonečna.
„Pokud se musíte vypořádat s miliony návštěvníků a dynamickým obsahem, váš stroj se porouchá.“
Omezení se objeví při dosažení určité hranice. Za prvé, možná budete muset každý den podporovat miliony návštěvníků. Jeden procesor má svá omezení. Za druhé, dochází k selhání hardwaru. Pokud dojde k výpadku jednoho z vašich serverů, váš web bude nedostupný, dokud jej nenahradíte novým a znovu nenastavíte. Za třetí, velké nebo složité stránky rychle spotřebovávají zdroje. Za čtvrté, pokud se stránka musí dynamicky měnit pro každého uživatele, server musí pracovat tvrději. Nakonec zpracování na pozadí přidává latenci. Většina velkých lokalit splňuje všechna tato kritéria, a proto vyžadují rozsáhlou infrastrukturu.
Tři nejdůležitější škálovací strategie
Pokud to rozpočet dovolí, mohou si inženýři během špičkového zatížení vybrat tři hlavní cesty.
- Kupte si obrovský stroj s neomezeným výkonem a redundancí.
- Rozdělte zátěž mezi mnoho menších strojů.
- Kombinujte oba způsoby.
Distribuovaný přístup je nejběžnější ve velkých webových aplikacích. Možná jste to dokonce viděli v akci, aniž byste si to uvědomovali. Pokud se adresa URL při každé návštěvě a obnovení webu mírně změní (například „www1.xyz.com“ a „www2.xyz.com“), je to vodítko. Tato stránka používá řadu nezávislých počítačů. Všechny používají software webového serveru. Všichni používají stejnou kopii webové stránky.
Skutečné kouzlo spočívá v tom, jak jsou příchozí požadavky distribuovány. To se může stát dvěma hlavními způsoby.
Vyvažování zátěže založené na DNS
Systém DNS (Domain Name System) překládá jména čitelná pro člověka na adresy IP. Některé konfigurace DNS používají přístup typu round-robin. Servery DNS procházejí seznam dostupných IP adres pokaždé, když je přijat požadavek.
Tím se přirozeně rozloží zátěž. Každý server přijímá část provozu. O nákladu spolu nekomunikují. Poskytují pouze statický nebo předem vygenerovaný obsah, ke kterému mají přístup.
Přepínač vyvažování zátěže
Pokročilejší přístup zahrnuje použití load balanceru. Veškerý síťový provoz nejprve dosáhne centrálního přepínače. Tento stroj funguje jako dopravní kontrolor. Přesměruje požadavek na dostupný server.
Switch není jen hádání. Kontroluje každý server, aby zjistil, který z nich je nejméně zatížený. Tím je zajištěno rovnoměrné rozložení práce. HowStuffWorks zvolil tento přístup. Firemní load balancer rozděluje provoz mezi tři různé webové servery. Pokud jeden z nich selže, ostatní dva udrží web v chodu. Žádné prostoje pro uživatele.
Tato redundantní konfigurace má zjevné výhody. Porucha jednoho stroje nevede k poruše celého webu. Kapacitu můžete zvyšovat i po etapách. Potřebujete více energie? Přidejte další auto. Je flexibilní.
Má to jednu nevýhodu. Tyto distribuované stroje stále často spoléhají na centralizované databáze pro zpracování transakcí. S rostoucí návštěvností se tato databáze stává úzkým hrdlem.
Jedno obrovské auto
Ne každý sdílí zátěž. TerraServer od Microsoftu jde cestou „jednoho velkého stroje“.
TerraServer ukládá terabajty satelitních snímků. Zpracovává miliony žádostí o tato data. Využívá výkonný podnikový hardware. Vezměte si například Digital AlphaServer 8400. Má osm 64bitových procesorů běžících na 440 MHz. Obsahuje 10 GB RAM s kontrolou chyb a opravou.
To je hodně síly v jednom balení. Tím se vyhnete složité koordinaci sítě mezi více servery. Ale je to drahé. Pokud jeden AlphaServer selže, služba se zastaví.
Výběr závisí na vašem obchodním modelu. Statický obsah upřednostňuje jednoduchá nastavení. Dynamické transakce vyžadují redundanci. Datově náročné aplikace mohou vyžadovat nezpracovaný výpočetní výkon.
Pokud se chcete dozvědět více, existuje mnoho dostupných zdrojů. W3C nastavuje standardy. Společnost Microsoft vydala dokument white paper o vyrovnávání zatížení v systému Windows NT. IBM poskytuje „červenou knihu“ o vyvažování serverů. Tuto teorii popisuje článek o webových serverech pro distribuovanou spolupráci.
Ale základní realita zůstává jednoduchá. Provoz je škálovatelný. Hardwarové zdroje jsou omezené. Inženýři staví most mezi těmito dvěma faktory. Jak jej vytvoříte, závisí na tom, k čemu bude váš web skutečně sloužit.





















