Serverless Computing – Computing ohne Server?
  • WK IT GmbH
  • Serverless Computing – Computing ohne Server?

Serverless Computing – Computing ohne Server?

Der Begriff “serverless”, also serverlos, bezieht sich auf ein cloudnatives Entwicklungsmodell, in dem Anwendungen erstellt und ausgeführt werden. Die verantwortlichen Entwickler müssen sich nicht um die Verwaltung der dazugehörigen Server kümmern.

Allerdings müssen selbst beim Serverless Computing weiterhin Server vorhanden sein. Nur so können die notwendigen Backend-Dienste der Anwendungen bereitgestellt werden. Die Verwaltung der Serverinfrastruktur wird beim Serverless Computing durch den jeweiligen Cloudanbieter übernommen.

Wie sieht eine Serverless-Computing-Architektur aus?

Ein Begriff für eine Serverless-Computing-Architektur ist Function-as-a-Service (FaaS). Das Backend der Anwendung ist in diesem Fall in unterschiedliche Funktionen unterteilt. Jede dieser Funktionen hat die Aufgabe, einen anderen Prozess der Anwendung auszuführen.

FaaS ist genau zwischen denen im Techblog „Welche Arten von Cloud Services gibt es und wie unterscheiden sie sich?“ erwähnten Serviceklassen PaaS und SaaS angesiedelt. Sowohl bei Paas als auch bei Faas müssen sich die Entwickler lediglich um ihren Code kümmern. Deutliche Unterschiede gibt es allerdings in Sachen Skalierbarkeit. Bei FaaS können im Falle eines großen Anfrageaufkommens innerhalb von Millisekunden neue Instanzen einer Anwendungsfunktion bereitgestellt werden. Bei PaaS ist eine solche Skalierung deutlich träger und mit wesentlich mehr Konfigurationen verbunden.

Serverless-Architekturen zeichnen sich also vor allem durch ihre automatische Skalierbarkeit aus. Auf diese Weise können sie sich immer dem aktuellen Bedarf und der Nutzeranzahl anpassen. Funktionen, die gerade keine Anwendung finden, werden nicht ausgeführt.

Außerdem kann der Entwickler auf die Services des jeweiligen Providers zugreifen. Wobei die Ausführungszeit einer Applikation bei den großen Anbietern wie Amazon pro Durchlauf auf 9-15 Minuten beschränkt ist. Sollte diese Zeit überschritten werden, wird die Funktion automatisch abgebrochen. Aus diesem Grund sind Serverless Computing Architekturen nicht für jedes Anwendungsgebiet geeignet.

Vorteile

Entwickler müssen sich beim Serverless Computing keinerlei Gedanken über die Backend-Server machen. Stattdessen können sie sich vollkommen auf das Schreiben und Hochladen ihres Codes fokussieren. Der Cloudanbieter kümmert sich dann um den Betrieb der Hardware und der IT. Dazu gehören unter anderem die Verwaltung und Skalierung der Serverinfrastruktur. All dies ist notwendig, um den Code schlussendlich ausführen zu können.

Ein weiterer Vorteil ist die Aktualisierung der Anwendungen nach Funktionen. Dadurch entfällt bei einem Update die Bereitstellung eines kompletten Anwendungspakets. Zusätzlich ergeben sich durch Serverless-Computing signifikante Kostenvorteile für Unternehmen. Ungenutzter Speicherplatz wird bei mangelnder Serverauslastung nicht in Rechnung gestellt.

Nachteile

Das Prinzip “Zahle nur, was du verbrauchst”, kann sich allerdings auch zu einem Nachteil entwickeln. Der Provider bepreist nämlich genau die Zeit, in der aktiv Code ausgeführt wird. Aus diesem Grund ist Serverless Computing auch nicht für dauerhaft laufende Anwendungen geeignet.

Ein weiterer Nachteil ist das erschwerte Debugging aufgrund der feinen Aufteilung der Anwendungen und der fehlenden Einsicht der Entwickler in die Backend-Prozesse.

Typische Use Cases für Serverless Computing

Serverless Funktionen werden, nachdem sie ihre Tätigkeit beendet haben, wieder deaktiviert und finden so vor allem bei zustandslosen Anwendungen Verwendung. Zustandslose Anwendungen, auch Stateless Apps genannt, sind Anwendungen, bei denen keine Daten von Web-Sessions gespeichert werden. Auf diese Art und Weise kann der Anbieter besonders schnell so viele Kopien der Funktion starten, wie benötigt werden (Stichwort: Skalierbarkeit). 

Beispiele für weitere Anwendungsfälle sind außerdem:

  • Batch-Verarbeitung
  • Datenbanküberwachung/-verarbeitung
  • Datenstreaming
  • Backend-APIs

Zu den bekanntesten Serverless Computing-Lösungen gehören:

  • AWS Lambda
  • Azure Functions
  • Google Cloud Functions

Zurück