Serverless Computing – Was ist das?
Serverless Computing, Serverless Infrastruktur oder einfach Serverless genannt, ist eine Unterkategorie von Cloud Computing und bedeutet die Hinterlegung der Services und Anwendungen in einer zentralen Cloud. Dabei werden bestimmte Serverschichten abstrahiert, es wird also kein Server mehr direkt gemietet. Entwickler nutzen bereits vorhandene Umgebungen und müssen sich nicht aktiv um das Management kümmern.
Der besondere Vorteil hierbei ist, dass ohne Anfragen auch keine Kosten anfallen. Sie zahlen lediglich nur für Compute time. Serverless Computing wird für elastische Anwendungen eingesetzt, bei denen die zu verarbeitende Anfragemenge stark variiert. Ein Beispiel hierfür ist die kurzzeitig erhöhte Datenlast auf einer Website in Folge einer Werbekampagne.
Serverless im Detail
Function as a Service (FaaS), auch Serverless-Funktionen genannt, gehören zum Cloud Computing. FaaS beschreibt eine Umgebung, die keine komplette Anwendung, sondern nur APIs (Programmschnittstellen) zu verfügung stellt. So wird stets gewährleistet, dass die APIs von anderen Dienste bzw. Anwendungen benutzt werden können. Zusätzlich müssen sie je nach Gebrauch in der Lage sein, dynamisch vorhandene Ressourcen (Kapazitäten, Storage, Infrastruktur, Netzwerk usw.) in Echtzeit hoch- oder herunter zu skalieren.
Nachdem Entwickler, Code in die Cloud (virtueller Server) hochladen, müssen sie bestimmte “Funktionen” , definieren. Mit deren Hilfe wird eine Reaktion auf bestimmte Ereignisse, bspw. Hochladen einer Graphics, definiert.
Virtualisierung innerhalb von Serverless Computing
Virtualisierung bedeutet eine Ablösung von Hardware durch Software. Die Abstraktion der Server passiert in der Cloud durch Serverless Funktionen (FaaS). Hier wird Software zu neuer Hardware. FaaS stellt sogar eigenständig eine weitere Ablösung von Hard- und Software dar, sodass keine Software mehr vorhanden ist. Um sich das besser vorstellen zu können, ist die folgende Erklärung hilfreich: es ist nicht wichtig, in welcher Datenbank Daten gespeichert sind, vielmehr geht es darum, dass die Daten überhaupt gespeichert worden sind.
Vor- und Nachteile einer Serverless Infrastruktur
Ein Vorteil von Serverless ist das Pay-as-you-use Prinzip für die Kunden. Dieser Aspekt setzt gleichzeitig eine automatische Skalierung voraus. Weiterhin zählen automatisierte Ressourcenverwaltung und schnelle Ressourcenbereitstellung zu den weiteren Vorteilen von Serverless Computing.
Aus der Sicht der Entwickler ist die Abhängigkeit des Serverless Computings vom Provider aufgrund der Spezifikationen des Services (Proprietarität) ein großes Problem, da man damit an den Provider gebunden ist (Vendor-Lock-in). Ein Providerwechsel ist in diesem Fall sehr schwierig. Ein weiterer Nachteil ist, dass eine freie Gestaltung des Managements vom Anwender wie bspw. eine Modifikation am Betriebssystem oder an der Laufzeitumgebung, nicht vorgesehen ist.
Fazit
Cloud Computing Dienste unterscheiden sich in ihrer Funktionen voneinander. Bei Serverless handelt es sich um Dienste, die keine physikalische Server benötigen. Es ist meistens eine auf Zeit eingeschränkte Umgebung, die vom Provider verwaltet wird. Dieser Aspekt bringt sowohl Vor- als auch Nachteil mit sich.