Wie funktioniert serverloses JavaScript? | Service Workers und Cloudflare Workers

Serverloses JavaScript wird verwendet, um serverlose Webanwendungen mit minimaler Latenz zu erstellen.

Lernziele

Nach Lektüre dieses Artikels können Sie Folgendes:

  • Serverloses JavaScript definieren
  • Die Verwendung von serverlosem JavaScript zur Erstellung von Webanwendungen mit niedriger Latenz verstehen
  • Verstehen, warum JavaScript effektiver ist als VCL
  • HTTP-Caching und HTTP-Anfragen verstehen
  • Service Workers, Cloudflare Workers und die Unterschiede zwischen ihnen kennen

Link zum Artikel kopieren

Was ist serverloses JavaScript?

Serverloses JavaScript ist JavaScript-Code, der einen Teil oder eine komplette Anwendung umfasst, nur läuft, wenn er angefordert wird, und nicht auf proprietären Servern gehostet wird. Er ermöglicht es Entwicklern, leistungsfähige serverlose Anwendungen mit niedriger Latenz herzustellen (so wie JAMstack applications), die im Netzwerk laufen, und viele Probleme zu vermeiden, die mit anderen serverlosen Anwendungen in Zusammenhang gebracht werden, z. B. Kaltstarts.

Serverloses JavaScript wird in einem Edge-Netzwerk oder von einem HTTP-Cachedienst gehostet, der Inhalte speichert, um schnell auf HTTP-Anfragen zu antworten. Entwickler können JavaScript-Funktionen schreiben und bereitstellen, die HTTP-Anfragen verarbeiten, bevor sie den ganzen Weg bis zum Ursprungsserver zurücklegen.

Serverloses JavaScript auf Edge Server

Mit serverlosem JavaScript ist es möglich, die Funktionalität vorhandener Anwendungen zu erweitern und die Nutzererfahrung zu verbessern, indem Code an der Edge ausgeführt wird, oder eine neue, vollständig serverlose Anwendung zu erstellen, die schnell und stark skalierbar ist. Cloudflare Workers ist eine serverlose JavaScript-Plattform.

Was ist Varnish?

Varnish ist ein Web-Accelerator, der dazu dient, Webanwendungen zu beschleunigen und die Website-Performance zu verbessern. Es handelt sich um einen Reverse-Proxy mit HTTP-Zwischenspeicherung, was bedeutet, dass er vor jedem Webserver sitzt und HTTP-Traffic zu und von diesem Server durch Zwischenspeichern aller Inhalte beschleunigt, die häufig von Webclients angefordert werden. Die Varnish Configuration Language (VCL) wird zusammen mit Varnish verwendet, um es Entwicklern zu ermöglichen, die Art anzupassen, auf die Varnish Web-Anfragen verwaltet.

Worin liegt der Vorteil, JavaScript anstelle von VCL in einer serverlosen Architektur zu verwenden?

VCL ist eine Konfigurationssprache, die entwickelt wurde, um den Varnish-Cache einfach konfigurieren zu können. Es ist keine vollständige Programmiersprache. VCL ist nicht flexibel genug, um robuste Anwendungen zu erstellen oder zu erweitern. Im Vergleich zu JavaScript ist es in seinen Möglichkeiten eingeschränkt. Darüber hinaus wird VCL nicht außerhalb von Varnish-Implementierungen verwendet, und daher sind die meisten Entwickler nicht damit vertraut. Im Gegensatz dazu ist JavaScript allgegenwärtig und wird bereits weitläufig zur Erstellung von Anwendungen eingesetzt. Durch die Verwendung von JavaScript in einer serverlosen Architektur können Entwickler komplette Anwendungen in einer Sprache erstellen, mit denen sie vertraut sind.

Serverloses JavaScript ermöglicht es einer größeren Gruppe von Entwicklern, serverloses Computing an der Edge einzusetzen und eine größere Vielfalt von Anwendungen zu erstellen.

Wie trägt die Erstellung einer Anwendung mit serverlosem JavaScript dazu bei, Latenz zu reduzieren?

Serverloses JavaScript läuft in einem Netzwerk mit HTTP-Zwischenspeicherung, das näher am Endbenutzer liegt als Code, der in einem Ursprungsserver gehostet wird. Infolgedessen müssen Anfragen nicht den ganzen Weg bis zum Ursprungsserver und zurück reisen, und die Anwendung antwortet viel schneller auf Interaktionen von Benutzern. Je mehr geographisch verteilte Edge-Standorte ein Cache-Netzwerk hat, desto mehr wird die Latenz reduziert.

Wann wird serverloses JavaScript ausgeführt?

In einem serverlosen Modell werden Anwendungen in Funktionen aufgeteilt, und Funktionscode wird als Reaktion auf bestimmte Ereignisse ausgeführt. Sonst wird er nicht ausgeführt. Das Ereignis, das serverloses JavaScript auslöst, ist eine HTTP-Anfrage. Entwickler können die Art von HTTP-Anfragen anpassen, auf die ihre JavaScript-Funktionen reagieren, und wie die HTTP-Anfrage geändert oder erfüllt wird.

Was ist eine HTTP-Anfrage?

Das ist eine Anfrage, die über HTTP (Hypertext-Transfer-Protokoll) von einem Client an einen Server gesendet wird. Browser übersetzen Benutzeraktionen wie angeklickte Links oder eingereichte Formulare in HTTP-Anfragen. Die Anfrage wird dann weiter zum Server gesendet, und der Server sendet eine HTTP-Antwort, um die Anfrage zu erfüllen. Eine HTTP-Anfrage erfolgt auch, wenn eine Anwendung einen API-Aufruf vornimmt.

Was ist HTTP-Caching?

HTTP-Caching bedeutet, dass ein Server oder ein Browser eine Kopie einer Antwort auf eine HTTP-Anfrage eines Benutzers speichert, um schnellere Antworten auf zukünftige Anfragen zu ermöglichen. Ein CDN-Server ist ein Beispiel eines HTTP-Cache. Manche HTTP-Cachedienste ermöglichen es Entwicklern, die Funktionsweise von HTTP-Caching für ihre Anwendungen anzupassen.

Cloudflare ist ein Edge-Netzwerk mit HTTP-Caching mit Rechenzentren auf der ganzen Welt und ermöglicht es Entwicklern, ihr eigenes JavaScript am Netzwerkrand zu schreiben und bereitzustellen. Im Cloudflare-Netzwerk findet HTTP-Caching nicht in einem bestimmten Server statt, sondern innerhalb des Rechenzentrums, das der Quelle der HTTP-Anfrage am nächsten ist.

Was sind Service Workers?

Service Workers sind Skripts, die Browser herunterladen und ausführen, um individuell angepasste Benutzererfahrungen zu schaffen. Service Workers ermöglichen Features wie Pushbenachrichtigungen, Hintergrundsynchronisierung und Offline-Funktionalität im Browser. Sie werden in JavaScript geschrieben und fangen HTTP-Anfragen ab, ändern und beantworten sie, bevor die Anfragen das Internet erreichen.

Zwei Arten, auf die Service Workers HTTP-Traffic handhaben können:

Service Worker antwortet

Service Workers können auf HTTP-Anfragen antworten, ohne den Webserver zu kontaktieren

Service Worker ändert die Anfrage

Service Workers können HTTP-Anfragen und Antworten ändern

Was sind Cloudflare Workers?

Cloudflare Workers sind eine Plattform, die es serverlosen Funktionen ermöglicht, so nahe wie möglich am Endbenutzer ausgeführt zu werden. Im Wesentlichen wird der serverlose Code selbst im Netzwerk „zwischengespeichert“ und ausgeführt, wenn der richtige Anfragetyp empfangen wird. Cloudflare Workers werden in Anlehnung an die Service-Workers-API in JavaScript geschrieben, was bedeutet, dass sie die gesamte von Service Workers angebotene Funktionalität nutzen können. Sie setzen das Chrome-V8-Modul zur Ausführung ein. Cloudflare-Workers-Code wird in Cloudflares ausgedehntem Netzwerk von Rechenzentren auf der ganzen Welt gehostet.

Was ist Chrome V8`?

Chrome V8, auch einfach als „V8“ bekannt, ist ein JavaScript-Modul, das Google zum Kompilieren, Optimieren und Ausführen von JavaScript entwickelt hat. Durch Verwendung von V8 zur Ausführung von JavaScript-Code wird die Startzeit für JavaScript Workers beträchtlich reduziert, wodurch in den meisten Fällen das „Kaltstart“-Problem beseitigt wird. V8 wird auch stark auf Sicherheitsrisiken hin analysiert und ist somit ideal zur sicheren Ausführung von JavaScript-Code.

Was ist bei Cloudflare Workers im Vergleich zu Service Workers einzigartig?

Einer der Hauptunterschiede zwischen Cloudflare Workers und Service Workers besteht darin, dass Service Workers clientseitig ausgeführt werden und vom Browser des Benutzers heruntergeladen werden müssen, während Cloudflare Workers am Rand des Cloudflare-Netzwerks zwischen dem Benutzer und dem restlichen Internet und effektiv im Netzwerk selbst laufen.

Erfahren Sie mehr über Cloudflare Workers und den Grund für die Erstellung von Cloudflare Workers.