13.08.2018, 14:13 Uhr Gerade keine Zeit? Hinweis: Wir haben in diesem Artikel Provisions-Links verwendet und sie durch "*" gekennzeichnet. Erfolgt über diese Links eine Bestellung, erhält t3n.de eine Provision.

Mit Serverless Computing wird ein Traum vieler Backend-Entwickler wahr: Anwendungen zu entwickeln, ohne sich Gedanken über den Server machen zu müssen. Doch was steckt hinter dem Begriff und welche Vorteile bringt das Konzept mit?

Anzeige

Wenn von Cloud-Computing die Rede ist, denken viele vor allem an Software as a Service (SaaS) oder Infrastructure as a Service (IaaS). Das sind in der Tat die wichtigsten Cloud-Segmente, in denen die größten Investitionen getätigt und auch die größten Umsätze erwirtschaftet werden. Doch die dritte Säule des Cloud-Computing, Platform as a Service (PaaS), gewinnt in letzter Zeit immer weiter an Bedeutung. PaaS bietet Softwareentwicklern leistungsstarke Anwendungsplattformen, die virtuelle Server-Instanzen, Datenbanksysteme, Storage-Dienste sowie professionelle Deployment-, Management- und Entwickler-Tools umfassen. Gleichzeitig punkten sie mit flexiblen und transparenten Kosten sowie theoretisch unbegrenzten Skalierungsmöglichkeiten. Durch den Einsatz einer PaaS-Lösung wie etwa Googles App Engine, Heroku oder Jelastic können sich Softwareentwickler besser auf die individuelle Business-Logik ihrer Anwendungen konzentrieren. Denn die vielen, oft komplexen Aufgaben, die mit dem Betrieb einer sicheren, hochverfügbaren und schnell skalierbaren Serverinfrastruktur zusammenhängen, werden von der PaaS-Lösung automatisiert übernommen.

Nix mehr verpassen: Die t3n Newsletter zu deinen Lieblingsthemen! Die t3n Newsletter zu deinen Lieblingsthemen! Jetzt anmelden

Anzeige

Server-Anwendungen ohne Server

„Serverless Computing“ beziehungsweise „Serverless Infrastructure“ geht noch einen Schritt weiter: Hier wird auf den direkten Einsatz von Servern komplett verzichtet. Dieses innovative IT-Betriebskonzept versetzt Developer in die Lage, Cloud-Anwendungen und -Services erstellen und ausführen zu können, ohne sich um Server und deren Verwaltung kümmern zu müssen. Während sich bei PaaS-Lösungen die Serveradministration und -Skalierung automatisieren lassen, wird bei Serverless Computing die Server-Schicht vollkommen abstrahiert. Dabei wird der Code selbstverständlich weiterhin auf einem bestimmten Anwendungsserver im Hintergrund ausgeführt – doch der Entwickler kommt damit niemals in Berührung. Ob Windows oder Linux, Tomcat, JBoss, Apache, Nginx oder Node.js eingesetzt wird, kann ihm vollkommen egal sein.

Bei serverlosen Infrastrukturen laden Entwickler neben ihrem Code auch eventbasierte Funktionen einfach hoch. Letztere werden beim Eintreten bestimmter vordefinierter Ereignisse ausgeführt – Stichwort „Event-driven Computing“. Funktionen können je nach eingesetzter Serverless-Plattform in verschiedenen Programmiersprachen wie Javascript, PHP oder Java geschrieben werden und definieren, wie auf ein bestimmtes Ereignis reagiert werden soll. So kann auch auf plattformabhängige Services zugegriffen werden. Die Funktionen werden als zustandslose, voneinander unabhängige Transaktionen ausgeführt. Die Infrastruktur-Ressourcen, die für die Datenverarbeitung erforderlich sind, stellt die Plattform automatisch bereit. Entscheidend dabei: Kunden zahlen nur für die Ressourcen, die während der Ausführung ihrer Funktionen verbraucht wurden. Das macht das Pricing noch flexibler als bei PaaS- oder IaaS-Lösungen.

Serverless Computing in der Praxis

Die Anwendungsfälle für serverlose Infrastrukturen sind vielfältig. Entwickler können diese zum Beispiel verwenden, um Funktionen oder Cronjobs als Reaktion auf bestimmte Trigger auszuführen, etwa nach Änderungen an Daten, am Systemstatus oder aufgrund von Benutzeraktionen. So kann man beispielsweise Miniaturbilder automatisiert erstellen, nachdem eine Bilddatei hochgeladen wurde, Videos transkodieren oder Dokumente indizieren. Inzwischen werden in der Praxis aber auch ganze Backend-Systeme auf Basis einer serverlosen Cloud-Infrastruktur aufgebaut, die Desktop- und Mobile-Clients bedienen sowie API-Anfragen von Online-Services von Drittanbietern verarbeiten können.

Warum Serverless Computing die Zukunft ist

Das klingt alles sehr positiv – Serverless Computing hat aber nichtsdestotrotz auch Nachteile. Denn was auf der einen Seite ein großer Vorteil sein kann, nämlich mit dem Server nicht in Kontakt zu kommen, bedeutet auf der anderen Seite aber einen Kontrollverlust. So können beispielsweise keine beliebigen Änderungen an dem Datenbank- oder Betriebssystem vorgenommen werden.

Da jedoch viele Services und Funktionen des im Hintergrund laufenden Servers vom Anbieter abhängig sind, müssten für einen Wechsel der Plattform vor allem die eventbasierten Funktionen neu implementiert werden. Doch stellt man den Aufwand und die Kosten eines möglichen Umzugs, der wohl eher selten vorkommt, dem des Betreiben und Verwalten eines größeren Teils des Server-Systems gegenüber, rechtfertigt dies wohl kaum den Verzicht auf Serverless Computing. Zumal es inzwischen sogar ein Framework gibt, mit dem sich auch dieser Teil abstrahieren lässt. Das erleichtert einen Umzug natürlich immens. Das Framework unterstützt alle gängigen Cloud-Plattformen wie etwa AWS, Google Cloud Platform oder Microsoft Azure.

Dem Nachteil des Kontrollverlustes stehen außerdem viele Vorteile gegenüber:

Automatisierte Skalierung und Verwaltung der Kapazitäten

Kostenabrechnung erfolgt über die Nutzung der Ressourcen

Neue Ressourcen können schnell bereitgestellt werden, und zwar genau dann, wenn sie benötigt werden

Der Sourcecode steht im Vordergrund und die Verwaltung der Server-Infrastruktur übernimmt die Cloud-Plattform

Anzeige

Mit Letzterem wird eins deutlich: Unternehmen, die auf Serverless Computing setzen, können sich voll und ganz auf die Anwendungsentwicklung konzentrieren. Dadurch könnte auch das klassische Berufsfeld des Server-Admins beziehungsweise ein Teil des IT-Bereichs in solchen Unternehmen wegfallen. Benötigt werden diese dann nur noch beim Cloud-Anbieter. Das alles spart Geld und Zeit – noch mehr als bei den anderen Cloud-Computing-Konzepten IaaS oder PaaS.