Serverless Computing: Fluch oder Segen?
Serverless Computing ist ein neues cloudnatives Entwicklungsmodell. Die Bezeichnung „Serverless“ ist allerdings irreführend. Webseiten ohne Server zu hosten ist ein Unterfangen, dem sicherlich nicht viel Erfolg beschert sein wird. Vielmehr geht es darum, dass beim Serverless-System Aufgaben und Kompetenzen outgesourct werden. Gedacht ist dieses Modell in erster Linie für den kurzlebigen Austausch von Daten innerhalb der Cloud. Der Fokus liegt auf dem Verarbeiten einzelner Funktionen.
Wie funktioniert Serverless Computing?
Das Unternehmen mietet die Cloudstruktur vom Anbieter. Der/die Entwickler:in bindet Software und Funktionen in die gemietete Cloud ein und muss sich um die Verwaltung der Daten nicht weiter kümmern. Anwendungsdaten werden in einem Key/Value-Datenspeicher gesichert. Aufgaben wie die Wartung des Betriebssystems, das Ausführen von Sicherheitsmaßnahmen, Skalierung oder Protokollierung werden gänzlich vom Provider übernommen. Ereignisse können veröffentlicht und anschließend asynchron verarbeitet werden. Auf diese Weise ist es möglich, asynchrone Aufgabenpipelines aufzubauen, ohne Warteschlangen erstellen zu müssen.
Serverless Computing ist eine Weiterentwicklung des Platform-as-a-Service-Modells (PaaS). Der bedeutendste Unterschied liegt darin, dass keine Arbeitsumgebung oder ein vordefinierter Speicherplatz zur Verfügung gestellt wird. Diese Ressourcen werden nur dann abgerufen, wenn sie gebraucht werden. Der Provider ist verantwortlich dafür, dass die Software funktioniert und die benötigten Ressourcen in Echtzeit zur Verfügung stehen. Serverless-Lösungen werden u.a. von Microsoft, Google, IBM oder Serverless angeboten.
Die Vorteile von Serverless Computing
Ein bedeutender Vorteil vom Serverless-Betrieb ist die hohe Fehlertoleranz. Diese wird dadurch erreicht, dass die flexible Hardwarestruktur des Providers genutzt wird. Ressourcen stehen in Echtzeit zur Verfügung und können flexibel verwaltet werden. Die Skalierung und das Kapazitätsmanagement werden automatisch vom Provider übernommen. Das spart Ressourcen und die Programmierer können mehr Zeit auf das Coden verwenden. Außerdem werden nur die Speicherressourcen in Rechnung gestellt, die tatsächlich verbraucht wurden. Vor allem für größere Unternehmen bedeutet das auf lange Sicht eine beachtliche Kostenersparnis.
Die Nachteile von Serverless Computing
Das Implementieren von Serverless-Strukturen ist ein sehr aufwendiger Prozess mit einer hohen Fehlerquote. Tiefgreifende Fehleranalysen sind oft nicht möglich. Das erschwert den Monitoring- und Debugging-Prozess. Software-Entwickler/innen können weniger autonom arbeiten, da sie auf das Betriebssystem oder die Laufzeitumgebung keinen Zugriff mehr haben. Die Serverless-Funktionen lassen sich nur in der Umgebung des Cloud-Anbieters nutzen. Die Entwickler/innen müssen sich also mit dieser Umgebung vertraut machen. Wird der Anbieter gewechselt, kann es passieren, dass sämtliche event-basierten Funktionen neu programmiert werden müssen.
Wo lässt sich Serverless Computing am besten anwenden?
Die Anwendungsmöglichkeiten sind für manche Branchen besser geeignet als für andere. Da der Fokus auf dem Ausführen einzelner Funktionen liegt, bietet sich Serverless Computing für folgende Arbeitsbereiche an:
Time Scheduling
Für zeitplanbasierter Funktionen wie Backups oder das Aufräumen von Datenbanken ist Serverless-Cloud optimal.
Backend-as-a-Service (BaaS)
Unter diesem Begriff versteht man das Programmieren und Betreiben des gesamten Backends in der Cloud.
Virtuelle Assistenten
Aufgrund ihrer Struktur bietet die Serverless-Technik hervorragende Möglichkeiten, um Chat-Bots oder digitale Sprachassistenten zu implementieren.
Weiterverarbeitung von Daten
Egal, ob es sich um strukturierte oder unstrukturierte Daten handelt: Via Serverless Computing lassen sie sich mühelos strukturieren, verschieben, transkodieren oder kombinieren.