Ein wichtiger Vorteil eines CDN ist seine Fähigkeit, Inhalte schnell und effizient bereitzustellen. Performanceoptimierungen durch ein CDN lassen sich in drei Kategorien unterteilen. Schauen Sie sich im CDN-Leitfaden um.
Nach Lektüre dieses Artikels können Sie Folgendes:
Ähnliche Inhalte
Was ist Anycast?
Was ist ein Ursprungsserver?
Paketumlaufzeit (Round-trip Time, RTT)
Gültigkeitsdauer (Time-to-live, TTL)
Zuverlässigkeit von CDNs
Was ist ein CDN-Rechenzentrum?
Abonnieren Sie theNET, Cloudflares monatliche Zusammenfassung der beliebtesten Einblicke in das Internet!
Link zum Artikel kopieren
Praktisch jeder im Internet hat die Vorteile eines Content Delivery Network (CDN) kennengelernt. Die meisten Technologieunternehmen, darunter auch Unternehmen wie Google, Apple und Microsoft, verwenden CDNs zur Verringerung der Latenz beim Laden von Webseiteninhalten.
Bei einem CDN werden normalerweise an den Übergängen zwischen verschiedenen Netzwerken Server platziert. Diese Internet Exchange Points (IXPs) sind die wichtigsten Verbindungspunkte zwischen verschiedenen Internetprovidern, die sich dort gegenseitig Zugriff auf Ressourcen in ihren jeweiligen Netzwerken ermöglichen. Neben den IXPs werden für ein CDN Server in Rechenzentren an Standorten auf der ganzen Welt platziert, normalerweise in Bereichen mit hohem Traffic und an strategischen Positionen, damit der Traffic so schnell wie möglich übertragen werden kann.
Ein wichtiger Vorteil eines CDN ist seine Fähigkeit, Inhalte schnell und effizient bereitzustellen. Die Performanceoptimierungen durch ein CDN lassen sich in drei Kategorien unterteilen:
Um die Vorteile eines CDN zu verstehen, wollen wir uns ansehen, wie eine normale Client/Server-Datenübertragung ohne CDN abläuft.
Stellen wir uns vor, jemand in New York muss eine Website aufrufen, die auf einem Server in Singapur gehostet wird. Der Abstand zwischen diesen Orten ist mit einer physischen Entfernung von ca. 15.300 km beträchtlich.
Wenn ein Server, auf dem die Website-Inhalte gehostet werden, (der Ursprungsserver) in Singapur steht, muss jede Anfrage für jedes Element einer Webseite von New York nach Singapur und wieder zurück reisen. Ähnlich wie bei einem internationalen Flug mit vielen Zwischenstationen muss jede Anfrage auf ihrer Fernreise von Punkt A nach Punkt B über eine Reihe von Routern laufen.
Wenn Sie sich einmal ein echtes Beispiel dafür ansehen möchten, wie viele verschiedene Verbindungen (Hops) Ihr Computer benötigt, um von Ihrem aktuellen Standort einen bestimmten Webdienst zu erreichen, dann probieren Sie doch einmal auf einem Desktopcomputer das Dienstprogramm Traceroute aus.
Da die Anfrage von New York nach Singapur jeden Router-Standort auf dem Weg durchlaufen muss, erhöht sich die Zeit (Latenz) sowohl aufgrund der Gesamtentfernung als auch durch die Zeit, die jeder Router für die Verarbeitung der Anfrage braucht. Wenn der Ursprungsserver die Anfrage verarbeitet und dem Client antwortet, der die Anfrage stellt, sendet er Informationen über eine ähnliche Abfolge von Routern zurück, bis die Antwort wieder in New York ankommt. Die gesamte gemessene Zeit für Hin- und Rücklauf wird in der Telekommunikation als RTT (round trip time, „Umlaufzeit“) bezeichnet. Wir wollen einmal ein Beispiel für die Latenzfaktoren durchgehen, ohne dabei die verfügbare Bandbreite und mögliche Engpässe im Netzwerk zu berücksichtigen.
Zur Veranschaulichung treffen wir folgende Annahmen:
Schauen wir uns an, wie lange es ungefähr dauert, diese Webseite zu laden:
In diesem einfachen Beispiel beträgt die Gesamttransitzeit für das Laden dieser Webseite ca. 3000 ms.
Wie Sie sehen, wird bei jeder Anfrage und jeder Antwort der gesamte Pfad zwischen dem Client in New York und dem Ursprungsserver in Singapur durchlaufen. Bei größeren Websites mit noch mehr Assets nimmt die Latenz zwischen Punkt A und Punkt B weiter zu.
Kommen wir noch einmal auf das Beispiel zurück, dass Inhalte in Singapur gehostet und für einen Webclient in New York bereitgestellt werden. Aber diesmal wird für die Website in Singapur ein CDN mit einem Server in Atlanta verwendet, auf dem eine zwischengespeicherte Kopie der statischen Website liegt:
Schauen wir uns an, wie lange es mit dem CDN ungefähr dauert, diese Webseite zu laden:
Die Gesamttransitzeit für das Laden dieser Webseite beträgt ca. 1100 ms.
In diesem Beispiel führt die Verringerung des Abstands zwischen Client und Inhalt dazu, dass die Latenz für statische Inhalte um 1900 ms besser wird. Die Ladezeit verkürzt sich also um fast 2 Sekunden.
Durch die Reduzierung der Gesamtentfernung, die der ganze notwendige Traffic durchlaufen muss, spart jeder Benutzer der Website eine Menge Ladezeit. Da Websitebesucher bei zunehmenden Wartezeiten immer schneller abwandern (Bounce), kann man hierdurch die Erfahrungen für Benutzer verbessern und die Verweilzeiten auf der Seite verlängern.
Wenn ein Client eine Datei von einem Ursprungsserver anfordert, muss die entsprechende Anfrage zu diesem Server und wieder zurück befördert werden, wie schon beschrieben. Durch ein CDN kann die Latenz verbessert werden. Dazu werden die Dateien mit statischen Inhalten vom Ursprungsserver in das verteilte CDN-Netzwerk verschoben. Diesen Vorgang nennt man Caching. Einige CDNs bieten weitere Features, durch die auch dynamische Inhalte selektiv zwischengespeichert werden können. Das CDN stellt solche im Cache liegenden Inhalte dann vom nächstgelegenen CDN-Rechenzentrum aus für den Client bereit.
Nach einem TCP-Handshake sendet der Clientcomputer eine HTTP-Anfrage an das CDN-Netzwerk. Wenn die Inhalte noch nicht im Cache zwischengespeichert wurden, lädt das CDN die Inhalte zunächst vom Ursprungsserver herunter. Dazu wird eine zusätzliche Anfrage zwischen dem Ursprungsserver und dem Edge-Server des CDN gestellt.
CDN-Caching erfolgt typischerweise in diesen vier Schritten:
Der Nutzen durch die Nähe eines CDN zum Client tritt dann ein, wenn die gleiche Anfrage an den Ursprungsserver schon einmal erfolgt ist. Sobald die Daten des Ursprungsservers im Cache des CDN-Netzwerks liegen, muss jede nachfolgende Anfrage eines Clients nur bis zum nächsten Edge-Server gehen. Dadurch wird die Latenz verringert und die Inhalte können viel schneller bereitgestellt werden, sofern der nächste Edge-Server näher liegt als der Ursprungsserver.
Denken Sie daran, dass die Zeit für das Herunterladen von Assets und zum Verarbeiten von Anfragen und Antworten hierbei noch nicht berücksichtigt ist. Bisher ist nur die Transitzeit zum Übertragen von Daten zwischen diesen beiden Standorten eingerechnet. Wir werden noch weitere wichtige Latenzfaktoren untersuchen, nämlich Datenreduzierung, Festplattengeschwindigkeit und Netzwerküberlastung.
Um die Seitenladedauer zu verkürzen, reduzieren CDNs die Gesamtmenge der Daten, die zwischen den Cache-Servern des CDN und dem Client übertragen werden. Bei geringerer insgesamt übertragener Datenmenge nimmt die Latenz ab und man braucht weniger Bandbreite. Dadurch werden Seiten schneller geladen und die Kosten für Bandbreite sinken. Für die Reduzierung der Datenmenge gibt es zwei entscheidende Komponenten:
Minifikation – Beim Vorgang der Minifikation werden Codeblöcke dadurch verkleinert, dass alle Bestandteile entfernt werden, die für Menschen wichtig sind, um den Code nachvollziehen zu können. Ein Entwickler muss seine Ideen in sinnvolle Variablennamen, Leerräume und Kommentare gliedern, damit die Codeblöcke lesbar und wartbar sind. Aber Computer können diesen Code auch dann ausführen, wenn diese Zeichen entfernt werden.
Hier als Beispiel ein Codeblock vor und nach der Minifikation:
Vor der Minifikation: acht Codezeilen
Nach der Minifikation: nur noch eine Zeile Code
Durch die Verkleinerung des Codeschnipsels von acht auf eine Zeile wird auch die Gesamtdatei kleiner, und damit nimmt die Übertragung der Datei weniger Zeit in Anspruch. Die Latenz nimmt ab und Inhalte werden schneller geladen.
Dateikomprimierung – Dateikomprimierung ist ein wesentlicher Faktor für weniger Latenz und Bandbreitenverbrauch beim Übertragen von Daten über das Internet. GZip ist eine gängige Kompressionsmethode und gilt als bewährtes Verfahren für die Übertragung von Webseiten. Bei vielen CDN-Providern ist GZip standardmäßig aktiviert. Wie hoch sind die Einsparungen durch GZip-Komprimierung? In der Regel werden Dateien dadurch um etwa 50 bis 70 % der ursprünglichen Dateigröße verkleinert.
Bei der Optimierung der CDN-Hardware bringt der Einsatz von SSD-Laufwerken (Solid State Drives) gegenüber herkömmlichen Festplatten (HDD) große Vorteile. Auf SSD-Laufwerken können Dateien bis zu 30 % schneller geöffnet werden als auf herkömmlichen Festplatten. Außerdem sind sie widerstandsfähiger und zuverlässiger.
Ähnlich wie ein Plattenspieler besteht ein herkömmliches Festplattenlaufwerk aus einer rotierenden kreisförmigen Metallscheibe mit einer Magnetbeschichtung, auf der die Daten gespeichert werden. Ein Lese-/Schreibkopf an einem Arm greift auf Informationen zu, wenn sich die Scheibe darunter dreht. Dieser Vorgang ist mechanisch und wird von der Drehgeschwindigkeit der Scheibe beeinflusst. Seit dem Aufkommen von SSDs werden die älteren Festplattenmodelle seltener verwendet, obwohl sie noch heute hergestellt werden und in vielen Computersystemen weit verbreitet sind.
Auch SSD-Laufwerke sind nichtflüchtige Speicher, funktionieren jedoch eher wie USB-Sticks oder Speicherkarten, die häufig in Geräten wie Digitalkameras verwendet werden. Es gibt keine beweglichen Teile. Wenn sich eine normale Festplatte dreht und das System einen Stoß bekommt, kann die Festplatte „springen“, was zu Lese-/Schreibfehlern und gegebenenfalls zu Ausfallzeiten führt. Ein weiterer wichtiger Vorteil bei SSDs liegt im Zugriff auf fragmentierte Dateien. Bei der Dateifragmentierung befinden sich Teile einer Datei an verschiedenen Stellen auf der Festplatte, was den Zugriff bei Festplattenlaufwerken verlangsamt. Bei einer SSD hingegen kann man effizient auch auf nicht zusammenhängende Speicherorte zugreifen, die Fragmentierung beeinträchtigt also nicht die Performance.
Bei den ersten CDNs wurden die Daten auf Festplatten gespeichert. Bei einigen CDN-Diensten können heute alle Caches am Netzwerkrand auf SSD-Laufwerken liegen. Der Nachteil von SSDs sind ihre Kosten: Eine SSD kann bis zu fünfmal teurer sein als herkömmliche Medien. Deshalb werden SSDs bei einigen CDN-Diensten oft noch vermieden und die ältere Technologie wird eingesetzt. Das Cloudflare CDN arbeitet ausschließlich mit SSDs.