Eine Einführung in das Akamai Content Delivery Network

Akamai ist einer der weltweit führenden Anbieter von Content Delivery Network (CDN). Über die Akamai Intelligent Platform werden viele Produkte angeboten, um Leistung, Verfügbarkeit, Sicherheit und Einblicke zu generieren.

Andere CDNs umfassen Cloudflare, Fastly, MaxCDN, Incapsula und Rackspace.

Hier werden wir uns ansehen, was ein CDN ist, und dann einige Besonderheiten der Implementierung von Akamai, einschließlich:

  • Die Akamai Intelligent Platform und Edge Server
  • Der Akamai Interface und Property Manager
  • Routing-Leistung
  • Caching

Was ist ein CDN?

Eine Benutzeranforderung für Inhalte im öffentlichen Internet mag einfach erscheinen, indem eine Verbindung zu dem Server hergestellt wird, auf dem sich der Inhalt befindet (der "Inhaltsursprung"), und dieser an den Benutzer zurückgegeben wird. Tatsächlich ist sie jedoch sehr komplex.

Die Verbindung muss möglicherweise über viele Internetdienstanbieter (ISPs), Peering Points und Rechenzentren über konkurrierende Netzwerke hinweg erfolgen und unter nicht konsistent verfügbaren Routen leiden.

Es können viele verschiedene Gerätetypen und Bandbreiten von verschiedenen globalen Standorten mit unterschiedlichen angeforderten Inhaltstypen verwendet werden.

Dies kann zu schwankenden Geschwindigkeiten und Verfügbarkeiten, Sicherheitsherausforderungen und einer geringen Sichtbarkeit der Vorgänge zwischen dem Benutzer und dem Ursprung des Inhalts führen.

Ein CDN gibt dem Inhaltsanbieter mehr Kontrolle und hilft, die Endbenutzererfahrung zu verbessern.

Dies geschieht, indem es als paralleles Hochleistungsnetzwerk fungiert und ein eigenes Netzwerk hochverteilter Server unterhält. Durch die Verteilung auf viele physische Standorte und Netzwerkstandorte, die jedoch als ein Netzwerk optimiert sind, besteht mehr Kontrolle und Zuverlässigkeit für Benutzeranforderungen.

Mit dem Wachstum eines Unternehmens ist auch die Skalierung zur Erfüllung höherer Anforderungen an die Herkunft von Inhalten mit Herausforderungen verbunden. Wir werden auch untersuchen, wie CDN-Tools verwendet werden können, um die Belastung des Ursprungs zu verringern und nicht nur die Leistung zu verbessern, sondern auch die Kosten zu senken, indem reduziert wird, wie hoch der Ursprung skaliert werden muss.

Akamai Intelligente Plattform

Akamai unterhält ein globales Netzwerk von mehr als 240.000 "Edge-Servern". Diese befinden sich am Rande des Internets, so nah wie möglich am Endbenutzer. Um dies zu erreichen, befinden sich viele Edgeserver sogar direkt in ISPs oder in mobilen Datentürmen, um die Latenz zwischen der Verbindung mit dem ISP eines Benutzers vor dem Wechsel in das Akamai-Netzwerk noch weiter zu verringern.

Wenn ein Benutzer eine Anfrage stellt, ordnet Akamai diese dynamisch dem nächstgelegenen verfügbaren Edgeserver zu. Der Edgeserver wendet die vom Inhaltsanbieter angegebenen Geschäftsregeln an, bevor er die beste verfügbare Route zwischen allen anderen Edgeservern im Akamai-Netzwerk verwendet, um Inhalte vom Ursprung abzurufen. Geschäftsregeln werden auf jedem Edgeserver repliziert.

Alle verfügbaren und zum Zwischenspeichern konfigurierten Inhalte werden dann auf dem Edgeserver für zukünftige Anforderungen zwischengespeichert, die eine Verbindung zu diesem Knoten herstellen. Wir werden uns das später genauer ansehen.

Eine Site wird zu Akamai hinzugefügt, indem ein CNAME-Eintrag in DNS hinzugefügt wird, der vom Hostnamen, beispielsweise "community.akamai.com", auf einen Akamai-Edge-Hostnamen, "community.akamai.com.edgekey.net", verweist, den der Akamai kontrollierte Die Edge-Server-Zuordnung übernimmt die Zuweisung des besten verfügbaren Edge-Servers. Wenn Sie einen Hostnamen "graben" und "edgekey.net" sehen, wissen Sie, dass Akamai vom Inhaltsanbieter verwendet wird.

Akamai-Schnittstelle

Akamai bietet eine Web-GUI mit dem Namen "Luna Control Center", mehrere APIs und eine CLI.

Wie auf der Registerkarte " Monitor" zu sehen ist , stehen viele Berichts- und Analysetools zur Verfügung, um Erkenntnisse auf CDN-Ebene zu generieren. Auf Anfrage sind auch Protokolle von Edgeservern erhältlich.

Auf der Registerkarte Konfigurieren konzentrieren wir uns auf die Einführung von Property Manager und lassen andere Optionen für einen zukünftigen Beitrag.

Eine Eigenschaft , die manchmal auch als Konfiguration bezeichnet wird , ist die Hauptmethode, um zu steuern, wie Edgeserver auf Benutzeranforderungen reagieren. Eigenschaften wenden eine Liste von Regeln auf eine Reihe von Hostnamen an , und Sie können jeweils nur eine Eigenschaft auf einen bestimmten Hostnamen anwenden. Regeln bestehen aus Kriterien / Spielbedingungen und Verhaltensweisen . Ein weiteres Beispiel hierfür wird später beim Caching angezeigt. In der Standardregel jeder Eigenschaft muss ein gültiger CP-Code ( Content Provider ) angegeben werden , der für den Service in Rechnung gestellt und gemeldet werden soll. Regeln sind "letzte Matchgewinne".

Es gibt eine Property Manager-API (und eine CLI) mit einem umfangreichen Glossar der Konzepte.

Wenn Sie Änderungen an einer Eigenschaft vornehmen, wird zuerst eine neue Version erstellt, sodass Änderungen vorgenommen und getestet werden können, während die vorherige Eigenschaft aktiv bleibt. Die neue Version kann zuerst in der Akamai-Inszenierung aktiviert werdenNetzwerk, auf das ein Entwickler seinen lokalen Computer verweisen kann, um Tests durchzuführen, bevor er in der Produktion aktiviert wird. Die Aktivierung der Produktion dauert ungefähr zehn Minuten, um die neue Version global auf allen Edgeservern bereitzustellen. Eine schnelle Fallback-Option wird innerhalb von Minuten zurückgesetzt.

Routenleistung

Neben der Bereitstellung einer immer größeren Anzahl verteilter Edgeserver kann der Weg zum Inhaltsursprung optimiert werden, um zwischengespeicherte Inhalte so nah wie möglich an jedem Benutzer bereitstellen zu können. In Akamais Fall erfolgt dies über SureRoute.

Das Akamai-Servernetzwerk (ein Benutzer stellt zuerst eine Verbindung zum Edgeserver her und alle nachfolgenden übergeordneten Server zu diesem Server) überlagert die Standardroute zum Ursprung. Die Standardroute kann zwischen mehreren verschiedenen ISPs und Netzwerken verlaufen, die möglicherweise nicht immer gut miteinander übereinstimmen. Wie oben zu sehen ist, kann eine verlustbehaftete Verbindung (oder eine andere solche Verschlechterung) bedeuten, dass eine nicht offensichtliche Route die beste Option ist.

Die beste Route finden Sie in zwei Schritten.

  • Erstens führen Akamai-Server fortlaufend Sonden gegeneinander und zu einem geringeren Preis gegen alle Ursprünge aller Akamai-Kunden aus. Diese werden verwendet, um eine zentralisierte Liste von Kandidatenrouten zwischen jedem Edgeserver / Ursprungspaar zu berechnen und zu verteilen .
  • Zweitens wird, um diese rohen Kandidatenrouten auf eine einzige beste Option einzugrenzen , ein statisches SureRoute-Testobjekt von jedem Kunden an seinem spezifischen Ursprung platziert, dessen Größe dem durchschnittlich erwarteten Inhalt entspricht. Rennen zum Abrufen dieses Objekts werden regelmäßig zwischen jedem Edgeserver und dem Ursprung ausgeführt, damit eine Aufzeichnung des Objekts mit der niedrigsten Latenz und / oder Paketverlustrate auf dem neuesten Stand gehalten werden kann.

Dies bedeutet, dass bei jeder Anforderung an einen Edgeserver die schnellste und zuverlässigste Route zu diesem Zeitpunkt verwendet werden kann, um den Ursprung zu erreichen.

Caching

Das Zwischenspeichern auf einem Edgeserver kann die Latenz für den Endbenutzer erheblich reduzieren.

Da Organisationen das Caching skalieren, kann es auch immer wichtiger werden, die Belastung des Inhaltsursprungs zu verringern, um sowohl die Leistung zu verbessern als auch die Kosten zu senken.

Wie in der Antwort zu "Teilen Akamai-Edgeserver zwischengespeicherte Inhalte" beschrieben, werden Edgeserver in Netzwerkregionen zusammengefasst. Wenn der Cache eines bestimmten Edgeservers nicht gefüllt ist, sendet er eine lokale Anforderung an die anderen Edgeserver in seiner Region. Wenn ein Peer über Inhalte verfügt, wird die Antwort bereitgestellt, bevor er selbst zwischengespeichert wird.

Wenn alle Caches des lokalen Peers leer (oder veraltet) sind, wird die Anforderung an den übergeordneten Server des Edges weitergeleitet, wo dieselbe lokale Überprüfung zwischen den Peers des übergeordneten Peers stattfindet. Wenn auf der gesamten Route kein Inhalt zwischengespeichert wird, kehrt er zum Ursprung zurück und füllt den Cache mit seiner Antwort neu.

Der verwendete Standard-Cache-Schlüssel besteht aus dem Hostnamen (Domäne), dem Pfad und der Abfragezeichenfolge. Dies kann geändert werden, um die Kardinalität zu verringern und / oder mehr Kontrolle über das Löschen des Cache zu geben. Dies kann dadurch geschehen, dass nur bestimmte Abfrageparameter eingeschlossen werden, z. B. Produkt-IDs ausgeschlossen werden und die Werte bestimmter Cookies, Header oder benutzerdefinierter Variablen hinzugefügt werden.

Übereinstimmungsbedingungen (wenn beispielsweise das Cookie " x " vorhanden ist) können mit dem Verhalten "Cache umgehen" kombiniert werden, um erweiterte Szenarien zu erstellen, z. B. das Zwischenspeichern verschiedener Inhalte für Benutzer mit einer Sitzung oder für Benutzer an verschiedenen Standorten.

Mit einer Browser-Erweiterung wie ModHeader können Akamai Pragma-Header angezeigt werden, um das Caching-Verhalten lokal zu untersuchen.

Abschließende Gedanken

Die Verwendung eines CDN bietet Inhaltsanbietern mehr Kontrolle, und Tools wie die oben beschriebenen bieten Vorteile, die bei der Arbeit im Maßstab immer wichtiger werden.

Während hier Akamai-spezifische Produkte diskutiert wurden, gibt es ähnliche Konzepte für die Arbeit im Maßstab mit anderen CDN-Anbietern.

Weitere Besonderheiten von Akamai werden möglicherweise in einem zukünftigen Beitrag behandelt. Sie können ein Auge darauf werfen oder sich über vorgeschlagene nächste Themen informieren, z. B.:

  • Sicherheitsverbesserungen durch Zertifikatverwaltung und Web Application Firewalls (WAFs)
  • Bildmanager für optimierte Bildlieferung
  • Cloudlets zur granularen Steuerung außerhalb des Aktivierungszyklus von Property Manage mit vielen Typen, die für verschiedene Anwendungsfälle verfügbar sind
  • Global Traffic Management (GTM) für DNS-basierten Lastausgleich
  • mPulse zur Verwendung von Real User Metrics (RUM) zur Leistungsüberwachung

Danke fürs Lesen ?

Sie können auch genießen:

  • Ein Leitfaden für Anfänger zum Elastic Container Service von Amazon
  • So fügen Sie Flow schrittweise zu einer vorhandenen React-App hinzu
  • Progressive Verbesserung mit CSS Grid