In einer serverlosen Architektur hat eine größere Anzahl von Points of Presence einen großen positiven Einfluss auf die Performance.
Nach Lektüre dieses Artikels können Sie Folgendes:
Link zum Artikel kopieren
Einer der Vorteile des Serverless-Computing ist die Möglichkeit, Anwendungscode von überall her auszuführen. Per Definition gibt es in einer serverlosen Architektur keine Ursprungsserver. Deshalb ist es möglich, dass Code an Edge-Standorten in der Nähe der Endbenutzer ausgeführt wird. Zwei serverlose Plattformen, die sich diese Fähigkeit und die daraus resultierende Verkürzung der Latenz zunutze machen, sind AWS Lambda@Edge und Cloudflare Workers. Durch die Messung der Lambda-Performance im Vergleich zur Performance von Cloudflare Workers und Lambda@Edge können die Auswirkungen der Bereitstellung von serverlosen Anwendungen am Rand beobachtet werden. Die Testergebnisse (unten) zeigen, dass Cloudflare Workers in der Regel schneller reagiert.
AWS Lambda ist ein serverloser Infrastrukturdienst, der von Amazon Web Services bereitgestellt wird. Lambda hostet ereignisgesteuerte Anwendungsfunktionen, die in einer Vielzahl von Sprachen geschrieben sind, und es startet und führt sie aus, wenn sie benötigt werden.
AWS bietet eine Reihe von Regionen für die Bereitstellung auf der ganzen Welt an. Normalerweise wird eine von Lambda gehostete Anwendung nur in einer dieser Regionen gehostet.
AWS Lambda@Edge ist Lambda, das in allen global verteilten AWS-Regionen statt in einer lokalen geografischen Region bereitgestellt wird. Während Lambda mehrere Sprachen unterstützt, laufen Lambda@Edge-Funktionen auf Node.js, einer Laufzeitumgebung zur Ausführung von JavaScript. Wenn eine Lambda@Edge-Funktion ausgelöst wird, läuft sie innerhalb der AWS-Region, die der Quelle des auslösenden Ereignisses am nächsten liegt, d. h. sie läuft so nah wie möglich an der Person oder Maschine, die die Anwendung verwendet.
Nehmen wir zum Beispiel an, ein Benutzer in Chicago fordert Informationen durch eine Anwendung mit einer serverlosen Architektur an. Wenn die Infrastruktur der serverlosen Anwendung unter Verwendung von AWS Lambda in der US-East-1-Region (in Virginia) gehostet wird, muss die Anfrage den ganzen Weg zu einem AWS-Zentrum in Virginia zurücklegen, und die Antwort muss dann von dort den ganzen Weg zurück nach Chicago laufen. Wenn die Anwendung jedoch über AWS Lambda@Edge gehostet wird, müssen Anfrage und Antwort nur den Weg von und zur nächstgelegenen AWS-Region zurücklegen, dies wäre dann US-East-2 in Ohio. Diese Verringerung der Strecke verringert dann die Latenz im Vergleich zu AWS Lambda.
Ähnlich wie bei AWS Lambda@Edge handelt es sich bei Cloudflare Workers um ereignisgesteuerte JavaScript-Funktionen, die von Rechenzentren auf der ganzen Welt gehostet werden. Es gibt jedoch viele wichtige Unterschiede zwischen den beiden serverlosen Infrastrukturdiensten. Cloudflare Workers läuft direkt auf Chrome V8 anstatt auf Node.js, und Cloudflare verfügt über Rechenzentren in 200 Städten auf der ganzen Welt. Da diese V8 direkt nutzen, kann Cloudflare Workers viel schneller starten und verbraucht viel weniger Ressourcen als andere serverlose Plattformen. Wenn im obigen Beispiel der Benutzer in Chicago versuchte, eine Antwort von einer mit Cloudflare Workers erstellten Anwendung zu erhalten, würde die Anfrage an den Cloudflare PoP in Chicago statt in Ohio weitergeleitet werden.
In Netzwerken bedeutet „Latenz“ die Zeitverzögerung, bevor die angeforderten Informationen geladen werden. Mit zunehmender Latenz steigt auch die Anzahl der Benutzer, die die Webseite verlassen.
Bereits kleine Verringerungen der Ladezeit erhöhen das Engagement der Benutzer erheblich. Eine Studie von Walmart zeigte zum Beispiel, dass jede Verbesserung der Seitenladedauer um eine Sekunde die Konversionsrate um 2 % erhöhte. Umgekehrt ist es mit zunehmender Latenz wahrscheinlicher, dass immer mehr Benutzer die Nutzung einer Website oder einer Anwendung beenden. Die Latenz verringert sich, wenn die Entfernung, die die Informationen zurücklegen müssen, kürzer wird.
Ein Point of Presence (PoP) ist ein Ort, an dem Kommunikationsnetzwerke miteinander verbunden sind, und in Bezug auf das Internet ist es ein Ort, an dem sich die Hardware (Router, Switches, Server usw.) befindet, die es den Menschen ermöglicht, sich mit dem Internet zu verbinden. Wenn man von einem Edge-Netzwerk spricht, ist ein Point of Presence der Standort eines Edge-Servers. Eine höhere Anzahl von PoPs am Rand führt zu schnelleren Antworten für eine größere Anzahl von Benutzern, denn die Wahrscheinlichkeit, dass ein PoP geografisch in der Nähe eines Benutzers liegt, steigt mit der Anzahl der PoPs.
Cloudflare führte Tests durch, bei denen AWS Lambda, Lambda@Edge und Cloudflare Workers miteinander verglichen wurden, um die serverlose Reaktionsfähigkeit zu demonstrieren und die Wirksamkeit der Bereitstellung von serverlosen Funktionen über mehrere PoPs hinweg zu überprüfen. (Die Testfunktionen waren einfache Skripte, die mit der aktuellen Tageszeit antworteten, zu der sie ausgeführt wurden.)
Das nachstehende Diagramm zeigt die Reaktionszeiten der Funktionen von AWS Lambda (blau), AWS Lambda@Edge (grün) und Cloudflare Workers (rot). Für diesen Test wurden die AWS-Lambda-Funktionen in der Region US-East-1 gehostet.
In einer serverlosen Architektur hat der Ort (geographisch gesehen), an dem Code ausgeführt wird, Auswirkungen auf die Latenz. Wenn der Anwendungscode näher am Benutzer ausgeführt wird, verbessert sich die Performance der Anwendung, da die Informationen nicht so weit übertragen werden müssen und die Anwendung schneller reagiert. Obwohl die Reaktionszeiten bei allen drei Diensten unterschiedlich waren, waren die Antworten von Cloudflare Workers in der Regel am schnellsten. Lambda@Edge war die zweitschnellste Lösung und veranschaulichte somit die Vorteile des Einsatzes von serverlosen Funktionen an mehreren Standorten.
Die AWS-Regionen sind zwar über den ganzen Erdball verteilt, aber Cloudflare hat insgesamt mehr PoPs. Cloudflare führte auch Tests durch, die rein auf Nordamerika beschränkt waren, und Verzögerungen, die durch die DNS-Auflösung verursacht wurden, wurden herausgefiltert. Die unten dargestellten Ergebnisse sind ein weiteres Beispiel dafür, wie mehr PoPs die Latenz verringern und die Performance verbessern. Beachten Sie, dass die Antworten von Cloudflare Workers am wenigsten Zeit in Anspruch nahmen.
Beim Serverless-Computing bedeutet ein „Kaltstart“, dass eine Funktion, die in letzter Zeit nicht ausgeführt wurde, auf ein Ereignis reagieren muss. Solche Funktionen müssen erst „hochgefahren“ werden, bevor sie ausgeführt werden können, was normalerweise einige Millisekunden in Anspruch nimmt. Dies kann zusätzliche Latenzprobleme verursachen.
Cloudflare Workers hat Kaltstarts vollständig eliminiert, d. h. sie benötigen keine Anlaufzeit. Dies ist an jedem Standort im globalen Netzwerk von Cloudflare der Fall. Im Gegensatz dazu können sowohl Lambda- als auch Lambda@Edge-Funktionen mehr als eine Sekunde brauchen, um nach einem Kaltstart zu reagieren.
Die Unterschiede sind größtenteils auf die Tatsache zurückzuführen, dass Cloudflare Workers auf Chrome V8 statt auf Node.js läuft. Node.js ist auf Chrome V8 aufgebaut, benötigt mehr Zeit zum Hochfahren und hat mehr Speicher-Overhead. Normalerweise benötigen V8-Instanzen weniger als 5 Millisekunden, um hochzufahren.
Erfahren Sie mehr über Cloudflare Workers.