Du hast deinen AdBlocker an?

Es wäre ein Traum, wenn du ihn für t3n.de deaktivierst. Wir zeigen dir gerne, wie das geht. Und natürlich erklären wir dir auch, warum uns das so wichtig ist. Digitales High-five, deine t3n-Redaktion

Ratgeber

Serverless Computing: Keine Server, einfach nur Code

    Serverless Computing: Keine Server, einfach nur Code
Foto: A Lot Of People / Shutterstock

Mit Serverless Computing wird ein Traum vieler Backend-Entwickler wahr: Anwendungen zu entwickeln, ohne sich Gedanken über den Server machen zu müssen.

Im Folgenden zeigen wir, welche Konzepte und Technologien sich hinter dem Begriff verbergen und welche Vorteile serverlose Infrastrukturen in der Praxis mit sich bringen.

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.

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 ihren Code – „Funktionen“ genannt – einfach hoch, und dieser wird beim Eintreten bestimmter vordefinierten 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. 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.

Anzeige

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.

AWS Lambda

Screenshot: AWS Lambda

Zu den wichtigsten Vertretern für Serverless Computing zählen wenig überraschend die führenden Cloud-Provider. Das sind vor allem Microsoft mit Azure-Functions, Google mit Cloud-Functions, IBM mit OpenWhisk und allen voran Amazon, das mit Lambda die erste Serverless-Computing-Lösung auf den Markt brachte. Lambda führt Code automatisch auf einer hochverfügbaren Datenverarbeitungsinfrastruktur aus und erledigt die gesamte Administration der Datenverarbeitungsressourcen, einschließlich Server- und Betriebssystemwartung, Kapazitätsbereitstellung und automatischer Skalierung sowie Code- und Sicherheitspatch-Bereitstellung. Entwickler erstellen Lambda-Funktionen im AWS-Dashboard und können diese so einrichten, dass sie automatisch von anderen AWS-Diensten wie S3, DynamoDB oder CloudWatch ausgelöst werden, oder von einer beliebigen Web- oder Mobile-App. Praktisch dabei: Mit AWS Step Functions lassen sich komplexere Prozesse durch Koordinieren mehrerer Lambda-Funktionen abbilden. Was die Kosten angeht: Es wird entsprechend der Anzahl der ausgeführten Requests und der Zeit abgerechnet, während der Code ausgeführt wird. Amazon bietet ein kostenloses Kontingent für Lambda, das eine Million Requests und 400.000 GB/s Datenverarbeitungszeit pro Monat umfasst.

Cloud-Functions

(Screenshot: Google-Cloud-Functions)

Seit 2016 bietet Google mit Cloud-Functions seine eigene Version von Serverless Computing. Das System hat zwar eine logische Verbindungsschicht, die es Entwicklern ermöglicht, Code zum Verbinden und Erweitern von Google-Cloud-Services zu schreiben. Doch das Angebot richtet sich vor allem an Entwickler, die APIs und Microservices aus einfachen, lose gekoppelten Funktionen erstellen möchten. Dieses neue Lösungsparadigma stellt eines der zentralen Konzepte im Serverless-Computing-Modell dar und fördert die Agilität von Software-Teams, da sie kleine, unabhängige Funktionseinheiten bereitstellen können, die speziell für eine bestimmte Aufgabe ausgelegt sind. Ähnlich wie bei Lambda kann es sich dabei um ereignisgesteuerte oder direkt über HTTP aufgerufene Funktionen handeln. Im Gegensatz zu Amazon hat sich Google allerdings für Javascript als einzige Programmiersprache für die Erstellung von serverlosen Anwendungen entschieden. Diese werden in einer herkömmlichen Node.js-Laufzeitumgebung ausgeführt.

Azure-Functions

(Screenshot: Azure-Functions)

Wer sich über die Infrastruktur oder die Bereitstellung von Servern keine Gedanken mehr machen möchte, sollte auch einen Blick auf Azure-Functions werfen. Microsoft hat sein Serverless-Computing-Produkt im Jahr 2016 in sein Cloud-Portfolio aufgenommen. Sowohl was die Funktionalität als auch das Pricing angeht, gibt es zwischen Google, Amazon und Microsoft wenige Unterschiede. Die Redmonder punkten jedoch mit einer größeren Auswahl an Programmiersprachen und adressieren somit ein breiteres Publikum als Google. Azure-Functions lassen sich in Javascript, C# oder F# und mit verschiedenen Skripterstellungsoptionen wie Python, PHP, Bash, Batch und PowerShell erstellen. Praktisch dabei: Anwender können auch vorkompilierten Code hochladen und ausführen, den sie mit ihrem bevorzugten Entwicklungstool erstellt haben. Dies zeigt, dass sich Microsoft besonders bemüht, den Einstieg in die Serverless-Computing-Welt so einfach wie möglich zu machen.

Fazit

Serverless Computing stellt eine weitere Abstraktionsschicht bei der Entwicklung von Backend-Systemen dar, bei der traditionelle Konzepte wie Anwendungsserver oder Laufzeitumgebungen vollkommen verschwinden – ganz nach dem Motto „Run code, not servers“. Dadurch können sich Softwareentwickler nicht nur die komplexe Administration der Server-Infrastruktur, die für die Ausführung ihrer Anwendungen erforderlich ist, ersparen, sondern auch Geld. Denn das Pricing ist noch flexibler als bei den IaaS- und PaaS-Angeboten: Man zahlt nur dann, wenn der Code tatsächlich ausgeführt wird. Dank dieser Zeit- und Kostenersparnisse können sich Entwickler stärker auf ihre eigentliche Arbeit konzentrieren und bessere Software liefern.

Ebenfalls spannend:

Finde einen Job, den du liebst

Schreib den ersten Kommentar!

Du musst angemeldet sein, um einen Kommentar schreiben zu können.

Jetzt anmelden

Hinweis

Du hast gerade auf einen Provisions-Link geklickt und wirst in Sekunden weitergeleitet.

Bei Bestellung auf der Zielseite erhalten wir eine kleine Provision – dir entstehen keine Mehrkosten.


Weiter zum Angebot