Serverless Computing: Uses, Advantages, and Disadvantages

Beim serverlosen Computing werden die Back-End-Funktionen einer Website oder App über cloudbasierte Technologien verwaltet. Dafür definieren Sie ein Event, das Code triggert – ab dann übernimmt die serverlose Plattform. Ihre Kosten richten sich dabei ganz nach der Häufigkeit der Nutzung. 

Allerdings ist der Begriff „serverlos“ in diesem Modell nicht ganz passend. Denn auch die Cloud-Anbieter nutzen natürlich Server, um ihre Kunden zu unterstützen. Beim Kauf der Technologie, müssen Sie selbst aber nicht in Back-End-Server investieren, um webbasierte Anwendungen zu entwickeln oder bereitzustellen. Und Sie müssen auch keine Back-End-Server warten.

Weil beim serverlosen Computing aber durchaus Server zum Einsatz kommen, bevorzugen einige Experten die Bezeichnung Function-as-a-Service (FaaS)

Unabhängig davon, wie Sie es nennen, ist serverloses Computing beliebt. Laut einer Umfrage aus dem Jahr 2019 arbeiteten beispielsweise 40 % der Befragten für Unternehmen, die irgendeine Form von serverloser Architektur nutzten. Als Hauptvorteil nannten sie vor allem die Kosten.

Sehen wir uns nun genauer an, was serverloses Computing ist und wie es funktioniert. Das wird Ihnen helfen, zu entscheiden, ob Sie diese Architektur auch in Ihrem Unternehmen implementieren wollen.

Was ist serverloses Computing? 

Serverloses Computing ermöglicht es Entwicklern, sich ganz auf das Front-End einer Website oder App zu konzentrieren, ohne sich um Back-End-Funktionen kümmern zu müssen. 

Zum Front-End einer Website oder App gehört alles, was die Nutzer sehen, womit sie interagieren und was ihnen letztlich in Erinnerung bleibt. Dazu gehören zum Beispiel Grafiken, Texte und andere visuelle Elemente. 

Das Back-End einer Website oder App enthält hingegen all die Bausteine, die Ihre Nutzer nicht sehen – die aber für eine reibungslose Interaktion mit der Website oder App erforderlich sind. Zu den Back-End-Elementen gehören:

  • Dateien. Inventare verfügbarer Produkte, Standorte geöffneter Geschäfte und Listen von Blog-Einträgen sind alle im Back-End untergebracht. 
  • Prozesse. Alle Aktivitäten Ihrer Kunden erfordern Leistung, und der Großteil der Datenverarbeitung findet im Back-End statt. 
  • Sicherheit. Ihre Nutzer müssen sich möglicherweise anmelden, um bestimmte Komponenten abzurufen. Die Anmeldeseite befindet sich im Front-End, die Funktion findet jedoch im Back-End statt. 

Im serverlosen Modell sind all diese Back-End-Funktionen letztlich Code-Teile, die inaktiv bleiben, bis die Nutzer sie benötigen. Wenn ein Nutzer etwas tut, was den Code triggert, übernimmt der Anbieter des serverlosen Computing, weist Speicherplatz zu und ermöglicht einen nahtlose Bearbeitung der Anfrage. 

Im Jahr 2014 beschrieb ein Experte das Modell folgendermaßen: Die Entwickler schreiben den Code der Anwendung und laden ihn in die Serverless-Computing-Umgebung. Er bleibt dort inaktiv, bis ein Event den Code triggert. An diesem Punkt übernimmt der Serverless-Computing-Anbieter den Code und führt ihn in seiner Cloud-Umgebung aus. Sobald das Event vorbei ist, wechselt der Code wieder in den inaktiven Zustand. 

Solche Events werden im Serverless-Computing-Modell „Funktionen“ genannt. So könnte eine Website über eine Funktion verfügen, die es Nutzern ermöglicht, Fotos hochzuladen, die dann in der Größe geändert und neu formatiert werden. Sobald ein Nutzer ein Foto hochlädt, wird die Funktion ausgelöst. 

Weil das serverlose Modell auf solchen möglicherweise kontinuierlich ausgeführten, Funktionen basiert, lässt es sich einfach skalieren. Nimmt der Traffic auf der Website oder App zu, stellt die Cloud (gegen eine entsprechende Gebühr) einfach mehr Speicherplatz und Rechenleistung zur Verfügung. Lässt der Traffic nach, werden die Ressourcen (und damit die Gebühren) entsprechend zurückgefahren. 

Das serverlose Modell wirkt auf den ersten Blick vielleicht ausufernd und schwammig. Laut Experten lassen sich echte serverlose Apps aber anhand von vier Attributen festmachen. Diese sind:

  1. Variabel im Preis. Anbieter stellen Ihnen nur das in Rechnung, was Sie auch tatsächlich verbraucht haben. 
  2. Selbstwartend. Kunden müssen sich nicht um die Wartung des Servers kümmern. 
  3. Skalierbar. Die Dienste skalieren automatisch ohne Eingreifen oder Programmieren des Kunden. 
  4. Zuverlässig. Diese Produkte verfügen über integrierte Hochverfügbarkeit und Fehlertoleranz.

Was unterscheidet serverloses Computing von anderen Architekturen?

Sie haben wahrscheinlich bereits von cloudbasierten Servern gehört, die die Verwaltung von Websites oder Apps übernehmen. Wenn Sie finden, dass einige dieser Produkte auch nach serverlosem Computing klingen, liegen Sie nicht falsch.

Viele cloudbasierte Dienste weisen ähnliche Eigenschaften wie serverloses Computing auf:

  • BaaS. Back-End-as-a-Service (oder BaaS) ermöglicht es Entwicklern, die Verwaltung von Back-End-Funktionen auszulagern. 
  • PaaS. Mit Platform-as-a-Service (oder PaaS) lassen sich Produkte in einer Cloud-Umgebung entwickeln und bereitstellen.
  • IaaS. Mit Infrastructure-as-a-Service (oder IaaS) können Sie das Handling von Websites oder Apps nahezu vollständig in die Cloud-Umgebung verlagern. 

Was serverloses Computing von all diesen Modellen unterscheidet, ist die automatische Skalierung. In den meisten Fällen müssen Sie mit Ihrem BaaS-, PaaS- oder IaaS-Anbieter sprechen, wenn Sie mehr Ressourcen benötigen. Das ist beim serverlosen Computing-Modell nicht notwendig. 

Und weil die Technologie zunehmend populär ist, verändert sich auch das serverlose Computing. Einige Unternehmen experimentieren beispielsweise mit verteilten, auf Knoten basierenden, Netzwerken, die weit von zentralen Rechenzentren abgesetzt sind. Diese Anordnung reduziert die Latenz und garantiert den Nutzern eine hochwertige Experience. Andere cloudbasierte Modelle gehen nicht in diese Richtung.

Vor- und Nachteile des serverlosen Computings

Sollten Sie Ihr aktuelles Set-Up aufgeben und zu einem serverlosen Stack wechseln? Betrachten wir die Vor- und Nachteile. 

Zu den Vorteilen von serverlosem Computing gehören:

  • Attraktive Kosten. Sie zahlen nur das, was Sie auch nutzen. Bei einigen anderen cloudasierten Modellen reservieren Sie Speicherplatz (unabhängig davon, ob Sie ihn nutzen oder nicht).
  • Flexibilität. Serverlose Modelle skalieren automatisch, ohne dass Sie etwas tun müssen. 
  • Genauigkeit. Entwickler konzentrieren sich lieber auf die Funktionalität selbst, statt sich mit der Back-End-Architektur herumzuschlagen, die das entsprechende Feature erfordert. Die klare Aufgabenteilung ermöglicht einen saubereren Code. 
  • Schnelligkeit. Entwickler müssen keine Zeit und Gedanken mehr an die Zuweisung von Speicherplatz verschwenden. 

Zu den Nachteilen von serverlosem Computing gehören:

  • Sicherheit. Sie geben einen Teil Ihrer Daten an ein anderes Unternehmen weiter, und verlieren damit ein Stückweit die Kontrolle. Bei den 60 %der Unternehmen, die keine serverlosen Systeme einführen, sind Sicherheit und Angst vor dem Unbekannten die größten Bedenken. 
  • Datenschutz. Ihre Ressourcen werden in geteilten Cloud-Umgebung verwendet, auf die auch andere Zugriff haben. 
  • Komplexität. Wenn etwas nicht so funktioniert, wie es soll, ist es mitunter schwierig, die Ursache des Problems zu finden. Sie müssen eine ganze Reihe von Aspekten im Blick behalten. 
  • Verträge. Einige Anbieter binden ihre Kunden mit langfristigen Verträgen. 

Vielleicht möchten Sie Ihren Entwicklungsprozess aufteilen, wollen sich aber noch nicht mit serverlosen Computing-Lösungen beschäftigen. Ziehen Sie Microservices in Betracht. Die Vor- und Nachteile dieser Services haben wir bereits ausführlich in unserem Blog beleuchtet. Lesen Sie nach.

Referenzen

O'Reilly Serverless Survey 2019: Concerns, What Works, and What to Expect. (November 2019). O‘Reilly. 

Serverless Explainer: The Next Generation of Cloud Infrastructure. (April 2017). Networkworld. 

What's Next for Serverless Architecture? (Februar 2020). InfoWorld. 

What Serverless Computing Really Means, and Everything Else You Need to Know. (April 2019). ZD Net.

Aurora Serverless: The Good, the Bad, and the Scalable. (April 2020). Jeremy Daly.

Serverless Computing: 5 Things to Know About the Post-Container World. Tech Beacon. 

Why Serverless Computing is the Fastest-Growing Cloud Services Segment. (September 2018). CB Insights.