Office 365 CDN
- Posted by Jan Vaněk
- On 2.2.2020
- In Nezařazené
- 0
Autor článku: Jan Vaněk
Co to je CDN?
Obecně je CDN soustava proxy a file serverů, která je rozmístěna po celém světě, a je spojena vysokorychlostními linkami s datovými centry. Jejich cílem je hostovat statický obsah a poskytnout ho uživateli z co nejbližšího místa, co nejrychleji. Jedná se v podstatě o souborové cache. Používají se ke zrychlení webových aplikací, kdy frontend server aplikace poskytuje dynamický obsah (data) a CDN poskytuje statické obrázky, javascripty, kaskádní styly a podobně. Tím se kromě jiného uleví backendu a databázi tak, aby se jeho výkon mohl použít na užitečný obsah.
Office 365 (včetně SharePointu Online) využívá CDN sám o sobě, ale bez možnosti konfigurace nebo použití pro naše účely. Proto je v dokumentaci k SPO uvedeno, že musí být pro klienty dosažitelné následující domény: *.sharepointonline.com, cdn.sharepointonline.com, privatecdn.sharepointonline.com, publiccdn.sharepointonline.com, spoprod-a.akamaihd.net, static.sharepointonline.com. Existují i specializované CDN jako např. Microsoft Ajax CDN, kde je hostováno jQuery, ASP.NET Ajax, Bootstrap, Knockout.js.
Dalším typem jsou univerzální CDN jako je Azure CDN nebo Akamai a další do nichž si také můžete „odložit“ statický obsah. Výhoda využití Office 365 CDN oproti nim je v tom, že je dostupná v rámci Office 365 předplatného (nestojí tedy nic navíc), přímo se integruje se SharePointem Online a má, byť omezenou podporu, oprávnění. Přínos Office 365 CDN je i v tom, že podporuje protokol HTTP/2, který je efektivnější než HTTP/1.1. Nicméně tím, že SharePoint Online v mnoha případech už CDN pro systémové věci používá, tak přínos v tomto není podle mých měření příliš velký.
Důležité termíny
Origins – zdroj pro CDN. Místo odkud se kopíruje obsah do CDN sítě, může to být adresář, knihovna dokumentů, web
Public/private – typ zdroje. K souborům z public zdrojů má přístup každý, kdo zná URL (bez ověřování). Na soubory z private zdrojů jsou v CDN aplikována oprávnění.
Politiky – pravidla, která se aplikují na všechny private/public CDN zdroje podle definice – co se má ze zdrojů v SPO kopírovat do CDN. Povolují se přípony, ale i soubory z tagovaných webů. Lze omezit, že zdrojem může být pouze web
Publikace a odstranění souborů
Public
Při přidání souboru (musí odpovídat politikám) do zdrojové knihovny je soubor do několika minut publikován na CDN serverech. Odstraněný obsah z public je dostupný ještě 30 dní z cache, ale odkazy na obsah jsou zneplatněny do 15 minut. Soubory umístěné publikované do CDN mají následující strukturu URL:
Ve výchozím
nastavení jsou z public zdrojů do CDN kopírovány soubory následujících přípon: .css, .eot,
.gif, .ico, .jpeg, .jpg, .js, .map, .png, .svg, .ttf, a .woff A výchozími
public zdroji jsou: */masterpage */style library */clientsideassets Pokud budete
zkoušet fungování odkazů do public CDN, nezapomeňte, že se kontroluje hlavička
referal. Bez její správné hodnoty (adresa vašeho SPO) URL nebude fungovat.
Takže prosté zkopírování adresy do nového okna prohlížeče povede k chybě
typu access denied. S ohledem na
anonymní přístup do, nemělo by do public CDN přijít nic citlivého, co byste
nedali např. na váš veřejně dostupný web. Private Slouží k uložení
statických souborů, jejichž obsah je citlivý. Není možný přímí přístup k takto
vypublikovaným souborům, musí dojít k odkazu ze SharePointu Online. Kontroluje
se nejen hlavička referal (jako u public zdrojů), ale i časově omezené
(30-60min dle dokumentace) tokeny, které musí být součástí URL. Odstraněný
obsah z private je dostupný ještě 1 hodinu z cache, ale odkazy na obsah
jsou zneplatněny do 15 minut k přístupu je nutné oprávnění v originálním zdroji
(alespoň read). Nehraje se na oprávnění položky (ani kdyby měla individuálně
nastavená oprávnění), ale oprávnění se řeší na úrovni adresáře. Takto může
vypadat odkaz na položku v private CDN: https://tenant.sharepoint.com/sites/site/…) na do tvaru s privatecdn. A to včetně použití ve script editor webové
části. Jen dejte pozor, že k tomu začne docházet až po vypublikování hlavní
verze stránky. Ve výchozím
nastavení jsou z private zdrojů do CDN kopírovány soubory následujících přípon:
.gif, .ico,
.jpeg, .jpg, .js, and .png Výchozími private
zdroji jsou: */userphoto.aspx */siteassets Pokud u konkrétního
souboru z nějakého důvodu potřebujete mechanismus změny URL vypnout (tedy
zachovat odkaz do SPO i kdyby byl soubor publikován do CDN), můžete k odkazu na
soubor přidat parametr ?noautorewrites=true. Toto platí jak pro public tak
private CDN. Konfigurace Office 365 CDN se
zapíná a spravuje pomocí PowerShellu. Zapnutí/vypnutí:
Set-PnPTenantCdnEnabled -Enable [$true|$false] -CdnType [Public|Private|Both] Pozor, bude trval
cca 15-20 minut, než se změna projeví. Přidání knihovny
na webech jako zdroj do public CDN: Add-PnPTenantCdnOrigin -CdnType public
-OriginUrl */CDNLIBRARY Nastavení
politik: Set-PnPTenantCdnPolicy -CdnType [Public|Private] -PolicyType
[IncludeFileExtensions|ExcludeRestrictedSiteClassifications|ExcludeIfNoScriptDisabled]
-PolicyValue [string] SPFx SharePoint Framework
řešení mohou taky profitovat z CDN. Dokážou využít public CDN. Jen je
potřeba v konfiguraci package-solution.json nastavit atribut includeClientSideAssets: {
„$schema“: „https://developer.microsoft.com/json-schemas/spfx-build/package-solution.schema.json“,
„solution“: {
„name“: „helloword-webpart-client-side-solution“,
„id“: „3c1af394-bbf0-473c-bb7d-0798f0587cb7“, „version“: „1.0.0.0“, „includeClientSideAssets“: true, „isDomainIsolated“: false
},
„paths“: {
„zippedPackage“: „solution/helloword-webpart.sppkg“
} } A v souboru write-manifests.json
nastavit atribut cdnBasePath: {
„$schema“: „https://developer.microsoft.com/json-schemas/spfx-build/write-manifests.schema.json“,
„cdnBasePath“: „<!– PATH TO CDN –>“ } Závěr Dnešní doba přímo
vybízí ke stránkám se spoustou statického obsahu (obrázky, CSS, JS). A proto
zapnutí a používání Office 365 CDN doporučuji. Nestojí to nic navíc a u
publikačních stránek je to prakticky bez práce. Jen je potřeba dát pozor, co
publikujete do public CDN, aby vám neuteklo něco, co si zaslouží ochranu. Občas
se i v JS souborech objevují klíče do nejrůznějších služeb, jako třeba Webtrends
a podobně. Dalším úskalím
může být nastavení proxy serverů a politik, které budou omezovat přístup na URL
public nebo private CDN serverů. Co se týče zrychlení,
tam je výsledek hodně závislý na konkrétní situaci, ale nikdy jsem nepozoroval zpomalení.
Celkově totiž potenciální zrychlení vychází z několika směrů: Zrychlení stažení
jednotlivých souborů bylo poměrně zajímavé, ale je potřeba si uvědomit, že
většinu statického obsahu stejně stáhne prohlížeč jen jednou a pak soubory
načítá z lokální cache počítače. Na druhou stranu, pro scénáře, kdy
potřebujete mít stránku načtenou ASAP (typicky homepage), může být použití
Office 365 CDN rozdíl mezi úspěchem a neúspěchem. A tedy k nezaplacení.
0 comments on Office 365 CDN