Wenn Teams serverlose Plattformen benchmarken, sprechen sie normalerweise über Kaltstarts, als ob jede Funktion die gleiche Form hätte. Das ist jedoch nicht der Fall. Ein Node.js-Prozess, der eine größere Laufzeit und einen umfangreicheren Abhängigkeitsbaum startet, ist eine andere Maschine als eine isolierte Laufzeit, die mit einer kleineren API-Oberfläche und deutlich weniger Prozessüberhead beginnt.
Deshalb fühlen sich V8-Isolate oft schnell am Edge an. Sie vollbringen kein Wunder. Sie starten von einem engeren Modell.
Warum V8 Isolate schneller starten
Eine isolierte Laufzeit eignet sich besser, wenn die Anforderungslogik kurzlebig und größtenteils CPU-arm ist:
- Authentifizierungs- und Bot-Überprüfungen
- Header- und Cookie-Neuschreibung
- A/B-Zuweisung
- geo-basierte Routing
- Feature-Flag-Lesungen
Eine typische Middleware-Form für Edge sieht so aus:
export default async function middleware(request: Request) {
const country = request.headers.get("x-country") ?? "unknown";
const bucket = country === "DE" ? "eu-homepage" : "global-homepage";
return new Response(null, {
status: 307,
headers: {
Location: `/${bucket}`,
},
});
}
Diese Logik profitiert von schnellem Start, globaler Platzierung und niedrigem Overhead pro Anfrage. Sie benötigt keine nativen Node-Module, keinen Zugriff auf das lokale Dateisystem oder ein langes Ausführungsfenster.
Was Sie aufgeben
Der Handel ist echt:
- weniger Node-spezifische APIs
- restriktivere Laufzeitgrenzen
- weniger Toleranz für schwere Abhängigkeiten
- mehr Reibung, wenn Sie native Module oder langanhaltende Hintergrundarbeit benötigen
Das bedeutet, dass isolierte Laufzeiten kein universeller Ersatz für traditionelle serverlose Funktionen sind. Wenn die Workload Bildverarbeitung, PDF-Generierung, headless Browser oder komplexen Datenzugriff umfasst, ist eine vollständige Prozesslaufzeit oft besser geeignet, auch wenn die Kaltstarts höher sind.
Die praktische Regel
Verwenden Sie Isolate, wenn die Anfrage nah am Netzwerk-Edge und die Geschäftslogik klein, deterministisch und latenzempfindlich ist. Verwenden Sie eine umfassendere Laufzeit, wenn der Handler erweiterte Plattformfähigkeiten benötigt.
Teams, die diese Entscheidung gut treffen, hören normalerweise auf zu fragen: "Welche Plattform ist schneller?" und beginnen zu fragen: "Welches Ausführungsmodell passt zu diesem Anforderungsweg?"
Weiterführende Literatur