Wie Cloudflare serverless zum neuen Standard machen könnte

Im Zuge des 10-jährigen Jubiläums hat Cloudflare eine revolutionäre Ankündigung bezüglich ihrer serverlosen Datenverarbeitungs- Technologie gemacht. Viele Unternehmen denken gerade erst über den Wechsel auf serverless nach und Cloudflare läutet das nächste Level ein!

Kenton Varda, Chef Ingenieur bei Cloudflare, hat über Twitter bereits Ende September von dem Launch seines persönlichen Lieblings-Features für Workers geschwärmt. Er sei seit dem Start von Workers nicht mehr so gespannt auf eine Veröffentlichung gewesen. Nach anderthalb Jahren sei das neue Feature nun endlich fertig. Im Zuge des zehnten Geburtstages von Cloudflare wurde das Feature offiziell angekündigt: Workers soll zukünftig eigene Daten ohne zusätzliche Datenbanken zwischenspeichern können. Dabei sollen die neuen “durable objects” helfen.


Durchgestrichenes Bild eines Server Raums

Das Problem mit den Datenbanken

Das Feature klingt für den Laien im ersten Moment nicht sonderlich innovativ. Dabei bietet es einen ersten Ansatz zur Lösung eines bekannten Nachteils von serverlosen Funktionen. serverless ist eine Technologie, die es Entwicklern erlaubt Code zu schreiben und auszuspielen (deployen) ohne selber Server- oder Anwendungsschnittstellen (APIs) zu verwalten. All das übernimmt der serverless-Anbieter. Bekannte Beispiele sind AWS Lambda, Microsoft Azure aber auch Opensource Varianten wie serverless. Die gesamte Architektur eines Programms läuft dann über deren Clouds. Daher wird häufig auf diese Technologie zurückgegriffen, um Kosten zu sparen. Provisionierung, also die Verteilung von Speicherkapazitäten und Kosten für Server während kaum nutzerfrequentierten Zeiten, sind damit in der Budgetplanung nur noch von geringer Bedeutung. Allerdings haben serverless Funktionen keine eigenen Daten (States). Daher konnten diese bisher nicht dauerhaft zwischengespeichert werden. Dazu brauchte man eine zusätzliche Datenbank. Die Nachteile von Datenbanken in Verbindung mit serverless sind:

  • Die Kosten: serverless ist meistens “pay per call” und ”pay per runtime”. Eine Verbindung mit Datenbanken aufzubauen ist zeitaufwendig und dementsprechend teuer.
  • Geschwindigkeit: Der langsame Verbindungsaufbau zu einer DB kann Auswirkungen auf die User Experience (UX) haben und sogar zu Ausschlüssen von serverless Lösungen für bestimmte Anwendungsfelder führen. Das können beispielsweise kollaborative echtzeit Tools wie Google Sheets und Airtable sein.
  • Standort: Datenbanken stehen immer in bestimmten Region (z.B. Europa), ein Nutzer aus einer anderen Region hat dann also längere Zugriffszeiten.

 

Eigene States dank durable objects

Die Ankündigung von Cloudflare verspricht nichts Geringeres als, dass Architekturen ohne eigenen Server diese Daten jetzt doch dauerhaft speichern können sollen. Dazu solle man Variablen (durable objects) im Code verwenden. Diese sollen zwischen jedem Funktionsaufruf an jedem Ort immer konsistent bestehen bleiben und das selbst, wenn millionen Nutzer gleichzeitig aktiv sind. Kritiker befürchten, dass diese Technologie nach wie vor für bestimmte Anwendungsfelder ungeeignet sei. So wird damit gerechnet, dass “heavy data Anwendungen” mit langer Laufzeit, wie Bildverarbeitungs-Pipelines Nachteile in puncto Geschwindigkeit und Kosten haben werden. Allgemein wird die Ankündigung positiv aufgenommen, da serverlose Datenverarbeitung bereits jetzt Entwicklern ermöglicht sich auf das Kernprodukt zu konzentrieren, anstatt sich über das Verwalten und Betreiben von Servern oder Laufzeiten Gedanken machen zu müssen.

The power to scale here without insane infrastructure headache is amazing. One day some kid is totally going to build a single-person billion dollar company from his mom’s basement.

Automatically moving objects to be near the computation that needs it, is a long-standing dream. It's awesome to see that Cloudflare is giving it a try!

 

Neue Lösung für bekanntes Problem

Immer wieder konnten Knackpunkte der serverless Technologie gelöst werden. Die Observability, sprich die Nachverfolgung und Analyse von laufenden Prozessen, war lange eine Herausforderung bei serverlosen Diensten. Auch das Entwickeln an sich war zunächst ein Nachteil. Da man von dem Betreiber der Cloud abhängig ist und keinen Server selbst verwaltet und starten kann, gab es erstmal keinen Weg den Code 1 zu 1 lokal auszuführen und zu entwickeln. Mittlerweile gibt es für diese Probleme bereits Lösungen. Stichworte sind hier State Machines und Cloud-Simulationen auf lokalen PCs. Das Verwalten von States ist eines der größten Probleme des serverlosen Programmierens. Mit den versprochenen Features von Cloudflare könnten wir einen guten Schritt näher an der Lösung sein. Das Internet ist sich daher sicher, dass die Konkurrenz schon bald nachziehen wird.