Suchen

Definition: Anwendungen und Services aus der Cloud Was ist Serverless Computing?

| Autor / Redakteur: M.A. Dirk Srocke / Florian Karlstetter

Dank Serverless Computing können Entwickler Anwendungen oder Services in der Cloud ausführen, ohne sich selbst um Bereitstellung, Skalierung und Management von Servern kümmern zu müssen.

Firma zum Thema

IT-Trendthema Serverless Computing - Anwendungen und Services direkt aus der Cloud ausführen.
IT-Trendthema Serverless Computing - Anwendungen und Services direkt aus der Cloud ausführen.
(Bild: gemeinfrei (geralt / pixabay) / CC0 )

Als Serverless Computing bezeichnet man ein Ausführungsmodell in der Cloud, bei dem Nutzer Anwendungen erstellen und ausführen – ohne dabei einen Gedanken an den oder die darunterliegenden Server verschwenden zu müssen. Bei den häufig auch als „Function as a Service“ (FaaS) bereitgestellten Produkten handelt es sich um kurzlebige Laufzeitumgebungen, die vom Provider dynamisch zugewiesen und skaliert werden.

Zu den (größeren) Anbietern für Serverless Computing zählen unter anderem Microsoft mit Azure Functions, Amazon Web Services mit AWS Lambda, Google mit den Cloud Functions oder IBM Cloud Functions (OpenWhisk).

Wenngleich der Name anderes suggeriert, braucht es für „Serverless Computing“ auch weiterhin Server. Aus Anwendersicht werden diese allerdings noch weiter abstrahiert als dies etwa bei einer Platform as a Service (PaaS) schon der Fall wäre. Dabei entfällt für Entwickler die Notwendigkeit, mit der API der Plattform zu interagieren oder zusätzliche Ressourcen zuzuweisen respektive freizugeben.

Das bedeutet: Nutzer von „Serverless Computing“ müssen sich überhaupt nicht mehr darum kümmern, wie Server aufgesetzt, provisioniert oder skaliert werden. Stattdessen sorgt der Serviceanbieter dafür, dass stets genügend Ressourcen zur Verfügung für die jeweilige Anwendung zur Verfügung stellen. Das beinhaltet auch Verfügbarkeit und Fehlertoleranz.

Serverless Computing lässt sich dem Utility Computing zurechnen und wird nach verbrauchten Ressourcen abgerechnet. Kunden müssen somit nicht für überbuchte oder ungenutzte Ressourcen im Leerlauf aufkommen, sondern zahlen lediglich für tatsächlich verwendete Rechen- und Speicherressourcen.

Um Programme für Serverless Computing umzusetzen müssen Entwickler nicht nur Code in die Cloud laden. Zudem sind auch Funktionen zu definieren, die festlegen, wie auf bestimmte Ereignisse reagiert werden soll. Diese Funktionen sind zustandslos.

Vorteile und Nachteile

Als Vorteile von Serverless Computing gilt einerseits die am tatsächlichen Bedarf ausgerichtete Abrechnung. Auf der Haben-Seite steht überdies ein vereinfachter Betrieb, bei dem sich Entwickler auf ihre Kernkompetenzen konzentrieren können.

Nachteilig können sich entsprechende Lösungen allerdings auf die Performance niederschlagen: Anders als durchgehend laufender Code auf dedizierten Servern sowie in virtuellen Maschinen oder Containern können Provider als „serverlos“ bereitgestellte Ressourcen herunterfahren und erst bei Bedarf neu initialisieren. Je nach Startdauer der jeweiligen Laufzeitumgebung kann das zusätzliche und ungewünschte Verzögerungen verursachen. Serverless Computing taugt überdies nicht für alle Anwendungsfälle: Für High-Performance Computing kann es beispielsweise effizienter und kostengünstiger sein, die benötigten Server selbst aufzusetzen.

Auch bei Monitoring und Debugging müssen Anwender mit Einschränkungen leben. Tiefgreifende Analysen mit Profilern, Debuggern und Werkzeugen für Application Performance Management (APM) sind in der Regel nicht möglich. Wenn Provider auf proprietäre Umgebungen setzen, lassen sich diese überdies kaum auf lokalen Testinfrastrukturen replizieren.

Wenngleich sich der Cloudanbieter um aktuelle Patches seiner Umgebung kümmert, ist Serverless Computing nicht zwingend sicherer als andere Distributions-Modelle. So lässt sich argumentieren, dass Applikationen auf einer größeren Zahl von Komponenten aufsetzen als bei traditionellen Architekturen – was schließlich auch die Zahl von Angriffsvektoren erhöht. Überdies können Nutzer ihre Cloud-Workloads nicht mit traditionellen Sicherheitsprodukten für Intrusion Detection oder Prevention schützen.

Schließlich besteht beim Serverless Computing auch die Gefahr eines Vendor Lock-in, sobald man sich an herstellerspezifische Schnittstellen bindet.

Cloud native, REST API, JSON & Co.: Definitionen rund um Cloud Computing

Definitionen rund um Cloud ComputingVon AWS bis XaaS: Alle relevanten Schlagworte aus dem Bereich Cloud Computing finden Sie verständlich erklärt in unseren Definitionen. Ganz im Sinne eines kleinen, aber feinen Glossars lesen Sie hier neutral verfasste und leicht verständliche Erklärungen zu den wichtigsten Begriffen. Als Service für Sie haben wir die hier erklärten Begriffe in unseren Beiträgen auch direkt mit den zugehörigen Lexikoneinträgen verlinkt. So können Sie die wichtigsten Begriffe direkt dort nachschlagen, wo sie im Text auftauchen.  

Zum Special: Definitionen rund um Cloud Computing

(ID:45211833)

Über den Autor