Zurück zum Blog

Folgen und abonnieren

Compute: Die JavaScript Unterstützung ohne Cold Starts oder erhöhte Sicherheitsrisiken, die Sie sich gewünscht hatten

Sean Leach

Chief Product Architect, Fastly

Bislang konnten Entwickler bei uns kein JavaScript schreiben und es für Compute nicht auf WebAssembly kompilieren. Da so viele Entwickler an die Verwendung von JavaScript gewöhnt sind, war uns bewusst, dass dies eine Einstiegshürde für Compute darstellte. Wir wollten aber keine Abstriche machen oder Kompromisse zwischen Sicherheit und Performance eingehen. 

Wenn ich von Kompromissen spreche, dann meine ich Folgendes: JavaScript Umgebungen (z. B. V8) litten in der Vergangenheit unter Startlatenzen von ca. 5 Millisekunden oder mehr. Dabei ist die Zeit, die für die Initialisierung der Anwendung benötigt wird, noch nicht einmal mit eingerechnet. Diese Cold Starts sorgen für ein erhöhtes Sicherheitsrisiko und zusätzliche Latenzzeiten.

Ich freue mich aber, Ihnen heute mitteilen zu können, dass wir eine Lösung für diese Probleme gefunden haben und dass JavaScript ab sofort für WebAssembly und Compute verfügbar ist. So sind Sie bei Compute noch schneller startklar – mit einer Sprache, mit der Sie bereits vertraut sind – und profitieren gleichzeitig von der Geschwindigkeit und Sicherheit, die Sie in einer Serverless-Build-Umgebung brauchen. Hier erfahren Sie, wie wir Compute fit für die beliebteste Computing-Sprache gemacht haben.

JavaScript und Compute

Da es sich bei den JavaScript Engines, die zur Erstellung von Instanzen verwendet werden, um große Codebases handelt, schleichen sich leicht Fehler ein, die es Angreifern ermöglichen, die virtuelle JavaScript Maschine zu umgehen und Zugriff auf das System zu erhalten. Aus diesem Grund unternehmen Browser wie Chrome und Firefox große Anstrengungen, um sicherzustellen, dass Websites in vollständig getrennten Prozessen ausgeführt werden. Außerdem raten sie davon ab, ihre prozessinternen Sandboxen als Sicherheitsschranken zu betrachten. 

Um JavaScript in Compute zu integrieren, haben wir uns zunächst auf die Sicherheit konzentriert. Indem wir die virtuelle JavaScript Maschine innerhalb einer WebAssembly Sandbox ausführen, können wir unseren Kunden als zusätzlichen Schutzschild eine sicherere Außengrenze bieten. Die Abgrenzungstechnologie von Compute erstellt und zerstört innerhalb von Mikrosekunden eine Sandbox für jede Anfrage, die durch unsere Plattform fließt. So wird die Angriffsfläche umfassend minimiert, ohne dass Skalierbarkeit und Performance darunter leiden, und Ihr Code bleibt vollständig von anderen Anfragen, die über die Plattform laufen, getrennt. Andere Serverless-Plattformen verwenden Techniken, um Latenzen zu verbergen, und nutzen Instanzen zwischen einzelnen Anfragen oft mehrmals. Dies stellt ein Sicherheitsrisiko dar, da es zu einem größeren Aktionsradius für Angreifer führt.  

Außerdem haben wir einen genauen Blick auf die Performance geworfen, da sich die Art und Weise, wie wir auf Compute Höchstleistungen erreichen, direkt auf die Sicherheit der Plattform auswirkt. Obwohl JavaScript Umgebungen in der Vergangenheit unter messbaren Startlatenzen gelitten haben, profitiert JavaScript auf Compute von Cold Starts mit einer Dauer von null Millisekunden. Sie erhalten also Zugang zu über 65 Hochleistungsserver-Clustern, die Skalierbarkeit und beispiellose Computing-Ressourcen für die Ausführung Ihres Codes bieten. So verbessert sich nicht nur die Performance Ihrer Anwendung, sondern es reduziert sich auch die Angriffsfläche. Die Art und Weise, wie wir JavaScript ausführen (siehe Beschreibung im Blog der Bytecode Alliance), ermöglicht es uns, denselben New-Instance-per-Request-Ansatz wie bei anderen Sprachen zu verwenden, was normalerweise nicht möglich wäre, da die Kombination aus der Erstellung einer Instanz und der Initialisierung des darin ausgeführten Javascripts unverhältnismäßig kostenaufwendig und langsam wäre.

Serverless JavaScript heute

JavaScript kommt überall zum Einsatz und wird inzwischen von mehr Entwicklern verwendet als jede andere Programmiersprache. Fast alle Entwickler von Weberlebnissen kommen aus der JavaScript Entwicklung, und obwohl die Akzeptanz von WebAssembly im Browser zunimmt, laufen viele Webanwendungen nach wie vor mit JavaScript. 

Wir freuen uns, diese Sprachunterstützung auf Compute anbieten zu können. Mehr dazu – einschließlich, wie Sie am besten loslegen – erfahren Sie in unserem Developer Hub. Und wenn Sie Compute noch nicht nutzen, registrieren Sie sich jetzt, um die Power von Serverless selbst zu entdecken.