Virtualisierung auf die Spitze getrieben

Was ist Serverless Computing?

| Autor / Redakteur: Ariane Rüdiger / Ulrike Ostler

Serverless ist ein heißer Trend im Computing
Serverless ist ein heißer Trend im Computing (Bild: © djama - stock.adob.com)

Serverless ist beim Cloud Computing der Trend der Stunde – diese Form des Cloud-Rechnens treibt den On-Demand-Gedanken auf die Spitze.

Serverless, Serverless Computing oder Serverless Infrastructure wird gelegentlich auch als Event-Driven Computing bezeichnet. Bei Serverless handelt es sich um einen aktuellen Hype im Rahmen des Cloud- und derzeit vor allem Public-Cloud-Computing. Der Reiz daran: Anwender müssen sich bei Serverless überhaupt nicht mehr um die dahinterstehende Infrastruktur kümmern, wenn sie etwas auf einer Cloud tun wollen.

Bisher mussten sie in der Regel wenigstens die übliche Infrastruktur, bestehend aus Servern, virtuellen Maschinen, der zugeordneten Storage und die Netzwerkverbindungen im Hinterkopf haben, wenn sie Anwendungen ausführen wollten.

Dies galt selbst dann, wenn sie diese nicht selbst verwalteten wie bei IaaS- oder PaaS-Angeboten. Gab es doch zu bedenken, wie viele Server und wie viel Storage eigentlich erforderlich sind, um eine Applikation auszuführen, wie man am besten skaliert und so weiter.

Kein Ärger mehr mit Capacity Planning

Anders als bei PaaS, das auf den ersten Blick ähnlich zu funktionieren scheint, brauchen Anwender sich beim Serverrless Computing noch nicht einmal mit den APIs der Cloud-Infrastruktur zu beschäftigen. Denn bei einem PaaS vermittelt die Applikation über die vom Provider gelieferten Plattform lediglich Programmcode, der Ressourcen beispielsweise für Ausfallsicherheit skaliert. Er muss vorher aber in die betreffenden Applikationen eingebracht werden.

Nichts von alledem bei Serverless Infrastructure: Der Anwender liefert Code, die Serverless Infrastructure maßschneidert alle Ressourcen, die notwendig sind, um diesen Code auszuführen – handele es sich um Rechenknoten, Speicher und Sonstiges.

Funktionen im Zentrum

Die andere übliche Bezeichnung für dieses Konzept, Event-driven Computing, verweist auf eine weitere nötige Komponente dieser Form des Rechnens: Neben dem eigentlichen Programmcode müssen Entwickler auch Funktionen definieren und in die Cloud hochladen. Unter einer Funktion muss man sich einen Befehl vorstellen, der vorschreibt, wie auf ein bestimmtes Ereignis (sic!) jeweils zu reagieren ist.

Zum Beispiel: Sobald ein Kunde im Online-Shop auf eine Ware klickt (Ereignis), lädt der Mikroservice „Nähere Beschreibung aus Datenbank laden“ (Reaktion). Durch Funktionsaufrufe werden so auch Mikroservices, die entweder der Cloud-Provider, der Anwender oder ein Dritter bereitstellen kann, in eine Applikation, die Server-los betrieben wird, eingebunden und aktiviert.

Kitt für Mikroservices

Funktionen können damit als Kitt (fachmännisch: eine Art Middleware) in Mikroservice-Infrastrukturen betrachtet werden. Vielen wird der Begriff Middleware im Zusammenhang mit solchen Funktionen nicht als die reine Lehre erscheinen, doch betrachtet man, was diese Funktionen tun, nämlich Softwarestücke über Ereignisse verknüpfen, trifft es letztlich zu.

Fallen viele gleichartige Ereignisse an, kann die jeweils nötige Funktion beliebig oft gestartet werden und skaliert damit gewissermaßen uferlos. Das geht insbesondere, weil sie zustandslos ist, das heißt aber auch, dass sie keine Daten speichert oder dauerhaft mit sich korrelieren kann. Dazu braucht es andere Mechanismen.

Stürzt eine Funktion ab, kann sie sofort wieder aufgerufen werden. Fehlerhafte Funktionen lassen sich schneller ersetzen als komplexe Apps, sind also in gewissem Sinne fehlertolerant.

Serverless im Markt

Serverless steht bei AWS als „Lambda“-Services zur Verfügung, bei Google als „Cloud Functions“, bei MS Azure als „Azure Functions“ und bei IBM als „Bluemix OpenWhisk“. Doch es wird nicht bei den Aktivitäten der Großen bleiben, vielmehr ist zu erwarten, dass zukünftig vor allem die Open-Source-Community hier aktiv wird.

Beim Serverless Computing übernimmt der Cloud-Provider für den Anwender neben Plattform- und Infrastrukturaufgaben, beispielsweise das Kapazitäts-Management
Beim Serverless Computing übernimmt der Cloud-Provider für den Anwender neben Plattform- und Infrastrukturaufgaben, beispielsweise das Kapazitäts-Management (Bild: Crisp Research)

Zwei Beispiele dazu: Das US-Unternehmen Iron.io bietet mit dem Open-Source-Produkt FaaS (Function as a Service) einen Serverless-Service an. Er wendet sich speziell an Entwickler, wird direkt in Applikationen implementiert und läuft in jeder Cloud (Public, Private, Hybrid Clouds).

Serverless, gegründet 2015, unterstützt mit „The Serverless Platform“ ein Open-Source-Serverless-Projekt. Es besteht aus einen dreiteiligen „Werkzeugkoffer“ für den Aufbau von Infrastrukturen, die mit Serverless Computing arbeiten. Die Komponenten sind ein Framework für den Bau von Serverless-Applikationen, eine Plattform für ihre Skalierung, Sicherung und ähnliche Rahmenfunktionen sowie der nötige Support.

Bequemlichkeit versus Sicherheit

Der größte Reiz des Server-losen Computing dürfte für viele Entwickler und Anwender darin bestehen, dass Server-loses Computing nach den jeweils für die Funktionsausführung notwendigen Ressourcen abgerechnet wird. Das On-Demand-Prinzip wird hier sozusagen auf die Spitze getrieben.

Diesen Komfort bezahlen Anwender allerdings mit weniger Kontrolle – die liegt ja eindeutig beim Provider. Anwender müssen sich also hier wie so oft zwischen zwei schwerlich unter einen Hut zu bringenden Kriterien entscheiden.

Preisvergleich als Wissenschaft

Zum Schluss noch einen kurzen Blick auf die Preisgestaltung zweier wichtiger Services für Server-loses Rechnen, AWS Lambda und MS Azure Functions. Bei AWS Lambda gibt es ein kostenloses Kontingent von einer Million Anforderungen respektive 400.000 Megabyte pro Sekunde (MB/s). Datenverarbeitungszeit pro Monat. Dabei wird ein Arbeitsspeicher von 128 MB zugrunde gelegt. Wird mehr Arbeitsspeicher verwendet, sinkt das Freivolumen umgekehrt proportional (also: je mehr Speicherbeanspruchung, desto weniger Freiabfragen/Freisekunden).

Das klingt nach großen Freikapazitäten, kann aber bei einer Reihe von Funktionen und etwa einem aktiven Online-Shop schnell erreicht sein. Danach kosten eine Million Anforderungen 0,2 Dollar respektive 0,00001667 Dollar pro GB-Sekunde, also abhängig von dem belegten Speicher.

Azure Functions gibt Kunden 400.000 freie GB-Sekunden und eine Million Ausführungen pro Monat grundsätzlich frei, danach kostet das serverlose Rechnen 0,000016 Dollar pro GB-s und berechnet ebenfalls 0,2 Dollar pro eine Million Ausführungen. Dazu kommen bei beiden Kosten für weitere genutzte Dienste, beispielsweise Storage.

Der Preisvergleich zwischen den Lambda-Services unterschiedlicher Anbieter ist komplex. Weil das so ist, dürfte sich die Neigung verstärken, einem einmal gewählten Anbieter treu zu bleiben, was möglicherweise auf die Dauer wieder einmal zu einem Lock-In führt.

copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Kontaktieren Sie uns über: support.vogel.de/ (ID: 45663863 / Definitionen)