Doprovodné materiály ke službě CDN

Azure Storage
Azure Blob Storage

Síť pro doručování obsahu je distribuovaná síť serverů umožňující efektivní doručování webového obsahu uživatelům. Sítě CDN ukládají obsah uložený v mezipaměti na hraničních serverech, které jsou blízko koncových uživatelů, aby se minimalizovala latence.

Sítě CDN se obvykle používají k doručování statického obsahu, jako jsou obrázky, šablony stylů, dokumenty, skripty na straně klienta a stránky HTML. Hlavními výhodami používání sítě CDN jsou nižší latence a rychlejší doručování obsahu uživatelům bez ohledu na jejich zeměpisnou polohu ve vztahu k datacentru, které je hostitelem aplikace. Sítě CDN také můžou pomoct se snížením zatížení webové aplikace, protože aplikace nemusí obsluhovat žádosti o obsah hostovaný v síti CDN.

Diagram sítě CDN

V Azure představuje Azure Content Delivery Network globálně dostupné řešení sítě CDN pro doručování širokopásmového obsahu hostovaného v Azure nebo v jiném umístění. Pomocí Azure CDN můžete ukládat do mezipaměti veřejně dostupné objekty načítané z úložiště objektů blob v Azure, webové aplikace, virtuálního počítače nebo jakéhokoli veřejně přístupného webového serveru.

Toto téma popisuje několik obecných osvědčených postupů a důležitých informací k používání sítě CDN. Další informace najdete v tématu Azure CDN.

Jak a proč se používá síť CDN

Mezi typické případy použití sítě CDN patří:

  • Doručování statických prostředků pro klientské aplikace, často z webu. Těmito prostředky můžou být obrázky, šablony stylů, dokumenty, soubory, skripty na straně klienta, stránky HTML, fragmenty kódu HTML nebo jakýkoli jiný obsah, který server nemusí pro každý požadavek upravovat. Aplikace může vytvářet položky za běhu a zpřístupnit je CDN (například vytvořením seznamu titulků aktuálních zpráv), ale nedělá to pro každý požadavek.

  • Doručování veřejného statického a sdíleného obsahu do zařízení, jako jsou mobilní telefony a tablety. Vlastní aplikace je webová služba, která nabízí rozhraní API pro klienty běžící na různých zařízení. CDN může také klientům doručovat statické datové sady (prostřednictvím webové služby), třeba pro generování uživatelského rozhraní klienta. CDN se dá využít například pro distribuci dokumentů XML nebo JSON.

  • Obsluha celých webů, které se skládají jenom z veřejného statického obsahu pro klienty a nevyžadují žádné vyhrazené výpočetní prostředky.

  • Streamování videosouborů do klienta na vyžádání. Video využívá výhod nízké latence a spolehlivého připojení z globálně umístěných datových center, která nabízejí připojení CDN. Microsoft Azure Media Services (AMS) se integruje s Azure CDN a doručuje obsah přímo do CDN k další distribuci. Další informace najdete v přehledu koncových bodů streamování.

  • Obecně vylepšení prostředí pro uživatele, především pro ty, kteří jsou umístění daleko od datového centra hostujícího příslušnou aplikaci. Tito uživatelé se jinak mohou setkávat s vyšší latencí. Velká část celkové velikosti obsahu ve webové aplikaci je často statická a použití CDN může pomoci udržet výkon a celkové uživatelské prostředí a zároveň eliminovat požadavek na nasazení aplikace do více datacenter. Pokud chcete zobrazit aktuální seznam umístění uzlů CDN, přečtěte si téma Lokality POP v Azure CDN.

  • Podpora řešení Internetu věcí (IoT). Velký počet zařízení zahrnutých v řešení IoT může snadno zahlcovat aplikaci, pokud musí distribuovat aktualizace firmwaru přímo do každého zařízení.

  • Zvládnutí špiček a nárůstů poptávky bez nutnosti škálování aplikace, aby se zabránilo následnému zvýšení běhu nákladů. Například po vydání aktualizace operačního systému pro hardwarové zařízení, jako je třeba konkrétní model směrovače, nebo pro spotřební zařízení, jako je inteligentní TV, nastává obrovská špička poptávky, protože aktualizaci si během krátké doby stahují miliony uživatelů a zařízení.

Výzvy

Existuje několik potenciálních problémů, které je při plánování použití CDN potřeba vzít v úvahu.

  • Nasazení. Rozhodněte o původu, ze kterého CDN načítá obsah, a jestli tento obsah potřebujete nasadit ve více než jednom systému úložiště. Vezměte v úvahu proces nasazení statického obsahu a prostředky. Potřebujete například implementovat samostatný krok pro načtení obsahu do úložiště objektů blob Azure.

  • Správa verzí a řízení mezipaměti. Zvažte, jak budete aktualizovat statický obsah a nasazovat nové verze. Seznamte se se způsobem, kterým CDN řeší ukládání v mezipaměti a čas TTL (Time to Live). V případě Azure CDN si přečtěte téma Jak funguje ukládání do mezipaměti.

  • Testování. Může být obtížné provést místní testování nastavení CDN, když aplikaci vyvíjíte a testujete místně nebo v přípravném prostředí.

  • Optimalizace vyhledávacích webů (SEO). Pokud používáte CDN, obsah, jako jsou obrázky a dokumenty, se obsluhuje z různých domén. To může mít vliv na SEO pro tento obsah.

  • Zabezpečení obsahu. Ne všechny sítě CDN nabízejí pro obsah nějakou formu řízení přístupu. Některé služby CDN, včetně Azure CDN, v rámci ochrany obsahu CDN podporují ověřování na základě tokenu. Další informace najdete v tématu věnovaném zabezpečení prostředků sítě Azure Content Delivery Network prostředky pomocí ověření tokenu.

  • Zabezpečení klientů. Klienti se mohou připojovat z prostředí, které neumožňuje přístup k prostředkům v CDN. Může se jednat o prostředí s omezením na základě zabezpečení, které omezuje přístup jenom na sadu známých zdrojů, nebo o prostředí, které brání načítání prostředků odjinud než ze zdroje stránky. Pro řešení těchto případů se vyžaduje záložní implementace.

  • Odolnost. CDN je pro aplikace potenciálním kritickým prvkem způsobujícím selhání.

Mezi scénáře, ve kterých může být síť CDN méně užitečná, patří:

  • Pokud má obsah nízký počet přístupů, může se k němu po dobu jeho platnosti přistupovat jenom několikrát (to je dáno jeho nastavením TTL).

  • Pokud jsou data privátní, například pro velké podniky nebo ekosystémy zásobovacích řetězců.

Obecné pokyny a osvědčené postupy

Použití CDN je dobrým způsobem, jak minimalizovat zatížení aplikace a maximalizovat její dostupnost a výkon. Zvažte použití této strategie pro veškerý příslušný obsah a prostředky, které vaše aplikace používá. Při návrhu strategie použití CDN se zamyslete i nad body uvedenými v následujících oddílech.

Nasazení

Je možné, že se statický obsah bude muset zřizovat a nasazovat nezávisle na aplikaci, pokud ho nezahrnete do procesu nebo balíčku pro nasazení aplikace. Zvažte, jak to ovlivní přístup ke správě verzí, který používáte při správě komponent aplikace a obsahu statických prostředků.

Zvažte použití technik sdružování a minifikace, abyste zkrátili dobu načítání pro klienty. Sdružování kombinuje několik souborů do jediného souboru. Minifikace odebírá nepotřebné znaky ze skriptů a souborů CSS, aniž by se změnila jejich funkce.

Pokud potřebujete nasadit obsah do dalšího umístění, bude to v procesu nasazení znamenat další krok. Pokud aplikace aktualizuje obsah pro CDN, třeba v pravidelných intervalech nebo jako reakci na nějakou událost, musí ukládat aktualizovaný obsah ve všech dalších umístěních a také v koncovém bodě pro CDN.

Zvažte, jak přistupovat k místnímu vývoji a testování, pokud se očekává poskytování části statického obsahu z CDN. Můžete například předem připravit obsah do cdn jako součást skriptu sestavení. Další možností je použít příznaky nebo direktivy kompilace a řídit, jak aplikace načítá prostředky. Například v režimu ladění může aplikace načítat statické prostředky z místní složky. V režimu vydání by aplikace využila CDN.

Vezměte v úvahu možnosti komprese souborů, například gzip (GNU zip). Komprese se může provádět na původním serveru hostováním webových aplikací nebo přímo na hraničních serverech prostřednictvím CDN. Další informace najdete v tématu Vylepšení výkonu prostřednictvím komprimace souborů v Azure CDN.

Směrování a správa verzí

Je možné, že v různé době budete muset používat různé instance CDN. Například když nasadíte novou verzi aplikace, můžete chtít použít nové CDN a pro předchozí verze zachovat původní CDN (uchovává obsah ve starším formátu). Pokud jako zdroj obsahu používáte úložiště objektů blob v Azure, můžete vytvořit samostatný účet úložiště nebo samostatný kontejner a nasměrovat na něj koncový bod CDN.

K označení různých verzí aplikace v odkazech na prostředky v CDN nepoužívejte řetězec dotazu, protože při načítání obsahu z úložiště objektů blob v Azure je řetězec dotazu součástí názvu prostředku (název objektu blob). Tento přístup může také ovlivnit to, jakým způsobem klient ukládá prostředky do mezipaměti.

Nasazování nových verzí statického obsahu při aktualizaci aplikace může být složité, pokud jsou předchozí prostředky uložené v mezipaměti v síti CDN. Další informace najdete dál v části věnované řízení mezipaměti.

Zvažte omezení přístupu k obsahu CDN podle země/oblasti. Azure CDN umožňuje filtrovat požadavky podle země nebo oblasti původu a omezit doručované obsahy. Další informace najdete v tématu Omezení přístupu k obsahu podle země/oblasti.

Řízení mezipaměti

Zamyslete se nad tím, jak v systému spravovat ukládání do mezipaměti. Například v Azure CDN můžete nastavit globální pravidla ukládání do mezipaměti a pak nastavit vlastní ukládání do mezipaměti pro konkrétní koncové body původu. Způsob ukládání do mezipaměti v CDN můžete také řídit odesíláním hlaviček direktiv pro mezipaměť původnímu zdroji.

Další informace najdete v článku Jak funguje ukládání do mezipaměti.

Pokud chcete zabránit dostupnosti objektů v CDN, můžete je odstranit z původního zdroje, odebrat nebo odstranit koncový bod CDN nebo v případě úložiště objektů blob nastavit kontejner nebo objekt blob jako privátní. Položky se však z CDN neodeberou, dokud nevyprší platnost časového limitu. Můžete také ručně vyprázdnit koncový bod CDN.

Zabezpečení

CDN může doručovat obsah přes HTTPS (SSL), s využitím certifikátu poskytnutého CDN a také přes standardní HTTP. Abyste se vyhnuli upozorněním prohlížeče na smíšený obsah, budete k vyžádání statického obsahu, který se zobrazuje na stránkách načtených prostřednictvím HTTPS, možná muset použít protokol HTTPS.

Pokud k doručování statických prostředků, jako jsou například soubory písem, používáte CDN, můžete se použití volání XMLHttpRequest k vyžádání těchto prostředků z jiné domény setkat s potížemi způsobenými zásadami stejného původu. Celá řada webových prohlížečů zabraňuje sdílení prostředků různého původu (CORS), pokud webový server není nakonfigurovaný k nastavení odpovídajících hlaviček odpovědi. Ke konfiguraci podpory CORS v CDN můžete použít jednu z následujících metod:

Záložní CDN

Zamyslete se nad tím, co se ve vaší aplikaci stane v případě selhání nebo dočasné nedostupnosti CDN. Pokud není k dispozici CDN, klientské aplikace pravděpodobně budou mít možnost použít kopie prostředků, které byly místně uložené do mezipaměti (na straně klienta) během předchozích požadavků, nebo mohou obsahovat kód, který detekuje selhání a vyžádá si prostředky z původního zdroje (složky aplikace nebo kontejneru objektů blob v Azure, který příslušné prostředky obsahuje).