SharePoint Online CDN aktivieren

Alle die mit professionellen Webseiten arbeiten, wird Content Delivery Network (CDN) etwas sagen, dennoch kurz erklärt. Jede Website hat gewisse statische Inhalte wie CSS, JPG, PNG oder JS Dateien, die sich selten ändern. Wenn ich die Seite aufrufe, werden diese immer vom Server geladen. Wenn ich nun eine weite räumlich Distanz zum Server habe, dauert dieser Vorgang lange. Beispiel: Server steht in München, Client in San Francisco = hohe Ladezeit, hohe Latenz.

Content Delivery Network
Client ruft statische Inhalte von Edge Servern ab. Edge Server cachen diese vom originalen Server. Inhalte werden schneller geladen und Latenz verringert.

Ein Content Delivery Network wie Akamai, Verizon oder Cloudflare haben Ihre eigenen Edge Server, die Inhalte über eine andere Domain holen. Dabei wird bereits auf DNS-Ebene geprüft, an welchem Standort sich der Client befindet, wo sich der näheste Edge Server befindet, der dann die o.g. Dateien ausliefert. Das geht dann schnell um den Faktor 10x schneller!

Neuerdings kann das auch SharePoint Online. Darum geht es in diesem Artikel.

Content Delivery Network (CDN) in Office 365

Microsoft hat kürzlich in einem Blog die Unterstützung von privaten und public CDN’s angekündigt. Seit April 2017 sollte dies auf allen First Release Tenants ausgerollt sein, alle anderen folgen. Hier noch die offizielle Meldung: https://dev.office.com/blogs/general-availability-of-office-365-cdn

Grundsätzlich muss man wissen, das dies mit dem Publishing Feature von SharePoint aufbaut und primär auf Intranet Szenarien ausgelegt ist.

CDN Typ

Microsoft unterscheidet dabei zwei Typen, die beide gleichzeitig aktiviert werden können:

Public

Im CDN Typ Public werden alle öffentlichen Inhalte zwischengespeichert, d.h. es reicht die URL zu kennen und aus dem SharePoint aufzurufen. Dies kann auch in SPFx Lösungen verwendet werden. Ganz anonym geht es dann doch nicht, denn über den Referrer muss der Aufruf durch SharePoint erfolgen.

Private

Im CDN Typ Private werden Inhalte über einen dynamischen Link zwischengespeichert, d.h. die URL erhält ein Token, der eine Stunde gültig ist und ist damit dynamisch. SharePoint versucht für authentifizierte Benutzer immer den gleichen Token auszustellen, damit Caching am Proxy noch funktioniert.

Konfiguration per PowerShell

Die Konfiguration lässt sich ausschließlich per PowerShell erledigen, ein komplettes PowerShell Skript gibt es hier: https://github.com/Hobmaier/Scripts/blob/master/CDN/SharePointOnlineCDN.ps1

Ansonsten hier noch Schritt für Schritt:

Anmeldung an SharePoint Online

Status abrufen

Konfiguration aktivieren

 

Status „(configuration pending)“ kann bis zu 15 Minuten dauern, bis die Konfiguration auch wirklich aktiv ist

Listen Bibliotheken oder Ordner in die CDN Konfiguration aufnehmen

CDN deaktivieren

Analyse mit Browser Developer Tools

Ich nehme hierzu gerne die Chrome Developer Tools (oder IE) – per F12, anschließend auf den Reiter Netzwerk gehen.

In beiden Fällen habe ich jeweils ein Beispiel für:

  • CDN.png = Public Profil
  • CreditCard.jpg = Private Profil

Bitte vor allem auf die URL und die Ladezeit schauen.

Vorher

Hier am Beispiel Public:

Shows Browser Developer Tools before CDN
CDN.png needs 97,47 ms to load.

URL: https://s2sshowcase.sharepoint.com/sites/Publishing297/PublishingImages/CDN.png

Und am Beispiel Private:

Shows Browser Developer Tools with CDN
CreditCard.jpg (2,6 MB) needs 1,91 s to load.

URL: https://s2sshowcase.sharepoint.com/sites/Publishing297/SalesDashboard/CreditCard.jpg

Nachher

Shows Browser Developer Tools with CDN
CDN.png only needs 30,75 ms and HTTP/2. URL changes to CDN.

URL von publiccdn.sharepointonline.com (immer gleicher Prefix): https://publiccdn.sharepointonline.com/s2sshowcase.sharepoint.com/sites/Publishing297/PublishingImages/CDN.png

Und am Beispiel Private:

Shows Browser Developer Tools with CDN
CreditCard.jpg (2,6 MB) only needs 628,17 ms and HTTP/2. URL changes to CDN.

URL von privatecdn.sharepointonline.com (inkl. Token der eine Stunde gültig ist): https://privatecdn.sharepointonline.com/s2sshowcase.sharepoint.com/sites/Publishing297/SalesDashboard/CreditCard.jpg?_eat_=1501491469_35275883c7ea3a5bccdcd280c3f7f9e39a7cbabffa589cb034a19388a4e82634&_oat_=1501491469_24ddf2c92c4b61b2ac2a80881c2f8af46df46396cdca5da53c08e3f70e571105

URL Rewriting

Grundsätzlich funktioniert ein automatisches URL Rewriting, allerdings nur auf Publishing Seiten, daher muss das Veröffentlichungs-Feature aktiviert sein. In einem Intranet ist dies aber in der Regel bereits aktiv, so dass die Einbindung reibungsfrei läuft und höchstens noch zusätzliche Ordner aufgenommen werden müssen (Origin).

Hier noch eine kurze Checkliste, was man beachten muss, damit Inhalte auch zwischengespeichert werden:

  • Major Version (1.0, 2.0…)
  • Seiten, Bilder, Skripte veröffentlicht
  • Eingecheckt
  • Publishing Page
  • Einzelnes Element vom Cache ausnehmen
    • Element auschecken
    • Minor Version (1.1, 1.2, 1.3,…)
    • Query String anfügen: ?NoAutoReWrites=true

Video (by Vesa Juvonen)

Referenzen

Autor: Dennis Hobmaier

Dennis Hobmaier ist Senior Consultant bei Solutions2Share. Er hat über 15 Jahre Erfahrung in IT-Enterprise Umgebung aller Größenordnungen und bedient Kunden aus den unterschiedlichsten Branchen. Als MCSE SharePoint hat er tiefgreifende Kenntnisse in den Bereichen Microsoft Active Directory, Windows, SharePoint und Office 365. Gerne teilt er seine Projekterfahrung mit Ihnen.

Kommentar verfassen