Internet Info, s.r.o. Lupa Měšec Podnikatel Root Zdroják DigiZone Slunečnice Vitalia TopDrive KupDnes Navrcholu NovýTarif Dobrý web Weblogy Woko Jagg Computer.cz SK: MojeLinky

Hlavní navigace

Hostujte část webu zdarma u Google

Velké množství webů používá nějaký javascriptový framework. Ať už to jsou malé knihovny typu jQuery nebo Prototype, či velké a komplexní jako YUI nebo ExtJS, jejich přenos na klientský počítač nějaký čas a šířku pásma zabere. Existuje tu však možnost využít infrastruktury webových gigantů, jako je Google.

Tweetni to Twitter Jaggni to! Jagg Del.icio.us Delicious

Nápad nechat hostovat některé standardní části vlastního webu u cizího providera s velmi slušnou infrastrukturou není nijak nový ani nepochopitelný. Každý, kdo někdy zažil, byť i v malém, takzvaný Digg efekt, tedy náhlý nápor návštěvníků stránek, ví, že v takových chvílích se každý načítaný skript, každá ikonka, každý soubor se stylem počítá, a podobný nápor zájemců se velmi rychle změní z radostné události na cosi srovnatelné s DDoS útokem.

Je tedy jen logické vyčlenit některé „statické“ elementy na webové stránce (typicky obrázky, skripty, soubory se styly apod.) na jiný stroj, na kterém nemusí běžet např. žádný skriptovací jazyk, stačí jen lehký HTTP server. S rozšířením cloudových služeb a s tím, jak jsou stále dostupnější služby CDN, se objevila i možnost umístit tyto prvky na nějaký „cloudhosting“ – například Amazon S3 (např. Twitter takto ukládá profilové fotky, z českých serverů využívá ukládání na S3 třeba server Bloguje, který z CDN Amazonu linkuje stylopisy pro blogy).

Kromě elementů, které jsou „unikátní“ pro váš web (obrázky, stylopisy), lze použít tuto techniku i pro skripty (jen je potřeba dávat pozor na Same Origin Policy).  Obzvlášť lákavá je tato myšlenka v případě nějakých standardních skriptů – tedy zejména javascriptových frameworků a knihoven.

Yahoo

Yahoo se před několika lety rozhodlo poskytnout svůj webový framework YUI (Yahoo User Interface) jako opensource. YUI se skládá z dvou hlavních částí: z JavaScriptové knihovny, která řeší některé aktivní prvky pro webové aplikace (widgety apod.), a z CSS frameworku, který se stará o „CSS reset“ a nastavuje pravidla např. pro grid či stylování formulářů.

Zajímavé na YUI je to, že si jej od verze 2.2, která vyšla v únoru 2007, nemusíte instalovat na vlastní server a vaši návštěvníci tedy nepřenášejí spoustu „zbytečných“ dat přes vaši linku. Lze totiž do dokumentu nalinkovat tyto knihovny přímo ze serverů Yahoo, a využít tak zdarma jejich CDN.

Google

Už delší dobu se objevovaly pokusy využít obří infrastrukturu Googlu k něčemu podobnému. Byla používána např. služba Google Code nebo Google Pages. Google nakonec sám nabídl službu „hostování standardních javascriptových knihoven“ v rámci své služby AJAX Libraries API. V současné době můžete ze serverů Googlu přímo linkovat jQuery, jQuery UI, Prototype, Script.aculo.us, MooTools, Dojo, SWFObject, YUI, Ext Core a Chrome Frame.

Proč to dělat?

Takové řešení má své výhody. Výrazně sníží latenci, využívá paralelismus a zlepšuje cachování.

Snížení latence je důsledek toho, že Google (nebo Yahoo) využívají distribučních sítí (CDN), které mají své koncové body (uzly) po celém světě. Pokud bude vaše aplikace hostována v ČR a většina uživatelů bude přistupovat z ČR, pravděpodobně zrychlení nepocítí (možná naopak), ale ve chvíli, kdy začnou přistupovat uživatelé z celého světa, tak se stane geografická vzdálenost od vašeho (jediného) serveru úzkým hrdlem. CDN je tak velmi pohodlnou možností, jak dostat obsah blíž vašim uživatelům (nebo alespoň část).

S tím souvisí i paralelní načítání. Většina prohlížečů má omezen počet spojení pro každý server (je to jednoduchá obrana proti zaplavení serveru požadavky). Pokud je na stránce např. 40 objektů z jednoho serveru, nestahuje je všechny najednou, ale postupně (např.) ve čtyřech frontách. Pokud je na stránce nalinkovaný objekt z jiného serveru (třeba různé měřicí kódy), otevře si pro ně prohlížeč extra spojení a stahuje je zároveň. Pokud tedy nalinkujete JavaScriptové knihovny z Google, nebudou čekat ve frontě na váš server.

Zlepšení cachování souvisí s tím, jak prohlížeče ukládají soubory do cache: Pro každý zdrojový server zvlášť. Pokud tedy přijdete na pět serverů, které používají jQuery 1.4.2, budete mít v cache pětkrát identický soubor jquery-1.4.2.min.js a bude se pětkrát stahovat. Z hlediska cachovacího mechanismu v prohlížeči jde pokaždé o jiný soubor. Pokud by tyto servery používaly např. hostování u Google, stáhl by se jQuery jen při návštěvě prvního serveru, v ostatních případech by prohlížeč poznal, že se jedná o soubor, který v cache už je.

Nevýhody

Výhody jsou zřejmé: Větší rychlost a menší zátěž našeho serveru. Na druhé straně má takové řešení i nevýhody, které mohou být pro někoho banální, pro jiného nepřekonatelné – záleží na přístupu a aplikaci.

Nejzjevnější nevýhodou je závislost na cizím serveru. Tedy na tom, že bude dostupný vždy, když bude dostupný váš server. Což zrovna u velkých CDN bývá splněno. Další nevýhodou je, že jednoho krásného dne se může váš vybraný poskytovatel rozhodnout, a soubor přestane poskytovat.

Ano, to všechno se stát může. Taky se jednoho dne může stát, že Google vypne Mapy, a dvě třetiny mashupů přestanou fungovat… Otázkou je, jestli je toto riziko přijatelné. Pro někoho v žádném případě, pro někoho je banální a výše zmíněné výhody převažují.

Problémem, který není na první pohled zjevný, a o němž lidé, kteří neznají pravidla bezpečnosti, často ani netuší, je, že vložený JavaScript z cizího serveru má možnost dostat se k některým citlivým informacím nebo provádět jiné nekalosti (je to v podstatě „legální“ XSS). Jakýkoli skript, který vložíte do stránky, a nad nímž nemáte kontrolu, je bez diskusí bezpečnostní riziko. A platí to nejen pro výše zmíněné hostování knihoven, ale pro všechny možná počítadla, analytické kódy či widgety, které běží na serveru třetí strany. Otázka je, jestli je toto riziko akceptovatelné. Ale na ni si každý musí odpovědět sám. U firemního webu či webu velké organizace je něco podobného pravděpodobně nepřijatelné, u malého nadšeneckého webu na sdíleném hostingu by vadit nemuselo; naopak by se mohla projevit velmi výrazně výše zmíněná pozitiva.

Pro větší weby stojí za úvahu využít (samo sebou placené) alternativy komerční CDN a jejím prostřednictvím šířit statický obsah webu (obrázky, styly, knihovny, …)

Martin Malý

Martin Maly

Začal programovat v roce 1984 s progra­movatelnou kalkulačkou. Pokračoval k BASICu, assembleru Z80, Forthu, Pascalu, Céčku, dalším assemblerům, před časem v PHP a teď je rád, že neprogramuje…

Školení Google+ pro firmy

DW - Školení PPC
  • Jak využít Google+ pro firemní komunikaci a marketing.
  • Čím se liší Google+ od Twitteru a Facebooku z pohledu firemního využití.
  • Jak využít Google+ v souladu s pravidly užívání.
  • Založení Google+ Page (Stránky) krok po kroku, včetně praktických tipů.

Detailní informace o školení Google+ »

Přehled názorů

Další nevýhoda
Ondřej Machulda 25. 2. 2010 00:19
Nový
└ 
Re: Další nevýhoda
Vojtěch Vondra 25. 2. 2010 07:12
Nový
cachování knihoven
Pavel Šimek 25. 2. 2010 10:50
Nový
├ 
Re: cachování knihoven
Jirka 25. 2. 2010 20:25
Nový
│
└ 
Re: cachování knihoven
Pavel Šimek 25. 2. 2010 21:30
Nový
│
 
└ 
Re: cachování knihoven
Jirka 25. 2. 2010 21:48
Nový
│
 
 
├ 
Re: cachování knihoven
Jirka 25. 2. 2010 21:51
Nový
│
 
 
└ 
Re: cachování knihoven
Pavel Šimek 25. 2. 2010 22:10
Nový
│
 
 
 
├ 
Re: cachování knihoven
Jirka 25. 2. 2010 22:26
Nový
│
 
 
 
│
└ 
Re: cachování knihoven
Pavel Šimek 25. 2. 2010 22:36
Nový
│
 
 
 
│
 
└ 
Re: cachování knihoven
Jirka 25. 2. 2010 23:05
Nový
│
 
 
 
│
 
 
├ 
Re: cachování knihoven
Pavel Šimek 25. 2. 2010 23:21
Nový
│
 
 
 
│
 
 
└ 
Re: cachování knihoven
Robert 3. 3. 2010 13:16
Nový
│
 
 
 
│
 
 
 
└ 
Re: cachování knihoven
Pavel Šimek 3. 3. 2010 15:04
Nový
│
 
 
 
└ 
Re: cachování knihoven
Pexxi.sk 1. 3. 2010 03:06
Nový
│
 
 
 
 
└ 
Re: cachování knihoven
Pavel Šimek 1. 3. 2010 11:08
Nový
└ 
Re: cachování knihoven
Borek Bernard 1. 3. 2010 13:31
Nový
 
└ 
Re: cachování knihoven
Franta Kučera 1. 3. 2010 14:03
Nový
 
 
└ 
Re: cachování knihoven
Pavel Šimek 1. 3. 2010 16:15
Nový
Diky za uzitecny clanek, pane Maly.
lukas 25. 2. 2010 13:23
Nový
       

Tento text je již více než dva měsíce starý. Chcete-li na něj reagovat v diskusi, pravděpodobně vám již nikdo neodpoví. Pro řešení aktuálních problémů doporučujeme využít naše diskusní fórum.

Zasílat nově přidané příspěvky e-mailem