Doprovodné materiály k CDN

Azure Storage
Azure Blob Storage

Síť pro doručování obsahu (CDN) je distribuovaná síť serverů, které mohou uživatelům efektivně doručovat webový obsah. Sítě CDN ukládají obsah uložený v mezipaměti na hraničních serverech, které jsou blízko koncovým uživatelům, 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 můžou také pomoct snížit zatížení webové aplikace, protože aplikace nemusí obsluhovat požadavky na obsah hostovaný v síti CDN.

Diagram sítě CDN

V Azure je Azure Content Delivery Network globální řešení CDN pro doručování obsahu s velkou šířkou pásma hostovaného v Azure nebo jiném umístění. Pomocí Azure Content Delivery Network můžete ukládat veřejně dostupné objekty načtené z úložiště objektů blob Azure, webové aplikace, virtuálního počítače, libovolného veřejně přístupného webového serveru.

Toto téma popisuje některé obecné osvědčené postupy a důležité informace o 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. Tyto prostředky můžou být obrázky, šablony stylů, dokumenty, soubory, skripty na straně klienta, stránky HTML, fragmenty HTML nebo jakýkoli jiný obsah, který server nemusí pro každou žádost upravovat. Aplikace může vytvářet položky za běhu a zpřístupnit je CDN (například vytvořením seznamu aktuálních titulků zpráv), ale pro každou žádost to neudělá.

  • 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.

  • 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é by jinak mohli zaznamenat vyšší latenci. Velká část celkové velikosti obsahu ve webové aplikaci je často statická a použití SÍTĚ CDN může pomoct udržet výkon a celkové uživatelské prostředí a zároveň eliminovat požadavek na nasazení aplikace do více datových center. Seznam umístění uzlů Azure Content Delivery Network najdete v tématu Azure CDN POP Locations.

  • 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 když je aktualizace operačního systému vydána pro hardwarové zařízení, jako je například konkrétní model směrovače, nebo pro uživatelské zařízení, jako je inteligentní TELEVIZE, je obrovská špička v poptávce, protože ji stáhnou miliony uživatelů a zařízení za krátkou dobu.

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 zdrojů. Například možná budete muset implementovat samostatný krok pro načtení obsahu do Azure úložiště objektů blob.

  • Správa verzí a řízení mezipaměti. Zvažte, jak aktualizovat statický obsah a nasadit nové verze. Seznamte se se způsobem, kterým CDN řeší ukládání v mezipaměti a čas TTL (Time to Live). Azure Content Delivery Network najdete v tématu Pokud ukládání do mezipaměti funguje.

  • 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 Content Delivery Network, podporují ověřování založené na tokenech za účelem ochrany obsahu CDN. Další informace najdete v tématu Zabezpečení zdrojů sítě pro doručování obsahu Azure s tokenovou autentizací.

  • Zabezpečení klientů. Klienti se můžou připojit z prostředí, které neumožňuje přístup k prostředkům v SÍTI 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ízkou míru úspěšnosti, může být přistupován jenom několikrát během své platnosti (určuje se jeho nastavením časové platnosti).

  • 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í

Statický obsah může být potřeba zřídit a nasadit nezávisle na aplikaci, pokud ho nezahrnete do balíčku nebo procesu nasazení aplikace. Zvažte, jak to ovlivní přístup správy verzí, který používáte ke správě komponent aplikace i 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 jiného umístění, jedná se o další krok v procesu nasazení. Pokud aplikace aktualizuje obsah sítě CDN, možná v pravidelných intervalech nebo v reakci na událost, musí aktualizovaný obsah uložit do libovolného jiného umístění a také koncový bod pro CDN.

Zvažte, jak zpracováváte místní vývoj a testování, pokud se očekává, že se z CDN bude obsluhovat nějaký statický obsah. Jako součást skriptu sestavení můžete například předem připravit obsah do CDN. 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). Kompresi lze provést na původním serveru webovou aplikací, která ji hostí, nebo přímo na okrajových serverech CDN. Další informace najdete v Zlepšete výkon komprimací souborů v systému Azure CDN.

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

Možná budete muset v různých časech používat různé instance CDN. Když například nasadíte novou verzi aplikace, můžete chtít použít novou síť CDN a zachovat starou síť CDN (držící obsah ve starším formátu) pro předchozí verze. Pokud jako zdroj obsahu používáte Azure úložiště objektů blob, můžete vytvořit samostatný účet úložiště nebo samostatný kontejner a nasměrovat na něj koncový bod CDN.

Nepoužívejte řetězec dotazu k označení různých verzí aplikace v odkazech na prostředky v CDN, protože při načítání obsahu z úložiště objektů blob 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 v následující části ovládacího prvku mezipaměti.

Zvažte omezení přístupu k obsahu CDN podle země nebo oblasti. Azure Content Delivery Network umožňuje filtrovat žádosti podle země nebo oblasti původu a omezit obsah doručený. Další informace najdete v tématu Omezení přístupu k obsahu podle země nebo oblasti.

Řízení mezipaměti

Zamyslete se nad tím, jak v systému spravovat ukládání do mezipaměti. Například v Azure Content Delivery Network 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 zpřístupnění objektů v CDN, můžete je odstranit ze zdroje, odebrat nebo odstranit koncový bod CDN nebo pro úložiště objektů blob nastavit kontejner nebo objekt blob jako soukromý. Položky se ale z CDN neodeberou, dokud nevyprší jejich časová platnost. Můžete také ručně vyprázdnit koncový bod CDN.

Zabezpečení

CDN může doručovat obsah přes PROTOKOL HTTPS (SSL) pomocí certifikátu poskytovaného CDN. Může také doručovat obsah přes standardní protokol 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 soubory písem, používáte CDN, můžete narazit na potíže se zásadami stejného původu, pokud použijete volání XMLHttpRequest k vyžádání těchto prostředků z jiné domény. 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

Zvažte, jak se vaše aplikace vypořádá se selháním nebo dočasnou nedostupností CDN. Klientské aplikace můžou během předchozích požadavků používat kopie prostředků, které byly uloženy místně (na klientovi), nebo můžete zahrnout kód, který zjistí selhání, a místo toho požádat o prostředky ze zdroje (složka aplikace nebo Azure kontejner objektů blob, který obsahuje prostředky), pokud cdN není k dispozici.