• služby
  • cdn
  • e-commerce

Jak bojovat s rychlostí světla a zrychlit weby?

author.label Damir Špoljarič

Rychlost domácích přípojek roste velkým tempem, Facebook s Googlem si staví mezi USA a Evropou vlastní podmořský kabel, do serverů budou do dvou let běžným standardem 100Gbps síťové karty a s novou generací mobilních sítí 5G bude možné mít do 5 let na pro mobilní připojení až 20Gbps. Pro běžné uživatele však začíná být omezujícím faktorem při rychlosti načítání webu rychlost světla, díky které jsou latence na server, který je umístěný na jiném kontinentu, násobně větší.

Pokud se český uživatel internetu dívá například na webové stránky umístěné na serveru v ČR, latence jsou zpravidla jednotky, maximálně desítky milisekund. Pokud se však stejný uživatel dívá na stránky uložené na serveru, který se nachází v USA nebo například Austrálii, latence budou stovky milisekund, což je dáno rychlostí světla v optických vláknech.

Byť se stovky milisekund mohou zdát jako malá hodnota, tak rozdíl v načítání webu může být 1 sekunda versus například až 10 sekund, což je způsobeno tím, že při načítání stránky se prohlížeč k serveru připojuje mnohokrát a stahuje si spoustu dat (obrázky apod.). Jedná se o fyzikální limit, který technika momentálně nemá jak překonat.

Z tohoto důvodu roste obliba tzv. CDN (content delivery network) služeb. CDN si lze představit jako lokální cache umístěné po světě či u konkrétních operátorů. Tato služba má za cíl, uložit v lokálních úložištích CDN uživateli často stahovaný obsah a dalším návštěvníkům ho tak nahrát ze svého lokálního úložiště a nikoliv z originálního serveru. Tuto službu, buď na své infrastruktuře nebo prostřednictvím velkých poskytovatelů CDN služeb (například Akamai), využívá i většina největších globálních webů.

Je nutno podotknout, že CDN zajišťuje zrychlení načítání jen statického obsahu jako jsou obrázky, videa a jiné statické soubory. Tento typ obsahu se však na délce načítání webu podílí největší měrou. Dynamický obsah stránek (skripty apod.) cachovat pomocí CDN bohužel nelze. Většina CDN nabízí i další přidané služby jako různé modernější způsoby komprese obrázků, což opět vede k rychlejšímu načítání webových stránek či podpora http protokolu verze 2.

Pro uživatele i provozovatele webových služeb je CDN naprosto transparentní. Tento typ CDN je označován jako „pull CDN“, kdy si CDN cache stáhne z originálního serveru obrázek, jakmile jej první uživatel požaduje tím, že si zobrazí stránku a udržuje ji v paměti či na rychlém SSD po nastavenou dobu platnosti. Tento typ CDN však příliš nepomůže internetovým webům s menší návštěvností, které jsou založeny na obrovském množství obsahu, který si uživatelé jen málokdy zobrazí. Může jít například o různé fotobanky.

V tomto případě pull mechanismus CDN není pro takový projekt příliš velkým přínosem. Pro tyto projekty slouží tzv. „push CDN“, kdy je k dané CDN přidaná služba CDN storage, který se nachází na stejných místech jako CDN cache body. Klient takové CDN poté duplikuje obsah, který má u sebe na serveru také na tento CDN storage. CDN cache tedy požadavek na obrázek nesměruje na originální server, který se může nacházet daleko, ale na tento CDN storage, který se nachází na stejném místě jako CDN cache a načtení stránky pro uživatele na druhém konci světa proto bude rychlé.

Uživatel při běžném užívání webu nemá šanci poznat, že se část webu stáhla z blíže umístěné lokální cache CDN. CDN je připojena do Internetu pomocí anycast IP adres, což jsou IP adresy v IP rozsahu, který se nachází v routovací tabulce v Internetu tolikrát, kolik je CDN bodů, a zajišťuje pro CDN redundanci na úrovni routingu v Internetu.

Pro běžného uživatele si to lze představit tak, že jedna a ta samá IP adresa se na různých místech internetu ve světě směruje na různá místa, tedy například k lokálním CDN cache. Pokud nastane porucha či nedostupnost dané CDN cache například pro část USA, provoz je automaticky v Internetu přesměrován na jiné nejbližší místo. Na principu anycastu jsou například založeny i hlavní světové root DNS zajišťující překlad názvu za tečkou – například .cz, .com., .sk apod.

Díky nárůstu poptávky po CDN službách vzniká řada nových poskytovatelů těchto služeb. Konkurenční prostředí jako u jakéhokoliv jiného oboru tak vede k postupnému snižování cen, které poskytovatelé CDN služeb většinou určují dle reálně přenesených dat z CDN do Internetu k uživatelům. Cena se často liší dle datového toku v jednotlivých částí světa. Nejlevnější datový tok z CDN je k uživatelům v Evropě, mírně dražší poté v USA a Kanadě (z důvodu vyšších velkoobchodních cen páteřní konektivity pro operátory oproti Evropě), nejdražší poté bývá datový tok k uživatelům v Asii, Austrálii a Jižní Americe, kde je konektivita výrazně dražší než v Evropě.