Serverless-Architektur FAQ

Serverless-Computing einfach erklärt

03.11.2019
Von   


Stefan Henke ist Head of DACH bei Cloudflare. Er gilt als Experte für das Thema IT-Security, SaaS, Cloud und Informationmanagement. Seine besondere Expertise liegt im Großkundenbereich, insbesondere im Industrie- und Finanzsektor und in der Automobilbranche. Er hat über 25 Jahre Erfahrung im IT-Bereich und war zuletzt mehrere Jahre bei Symantec und Veritas tätig. 
In diesem Artikel lesen Sie Wissenswertes über Serverless-Architektur. Was versteht man darunter und welche Anwendungsmöglichkeiten gibt es bereits.
Entwickler auf Serverless-Computing-Plattformen nutzen einen Universal-Code, bei dem die darunterliegende IT-Infrastruktur keine Rolle spielt.
Entwickler auf Serverless-Computing-Plattformen nutzen einen Universal-Code, bei dem die darunterliegende IT-Infrastruktur keine Rolle spielt.
Foto: nmedia - shutterstock.com

Serverless-Computing ist eine Methode zur Bereitstellung von Backend-Services auf Grundlage der tatsächlichen Nutzung. Ein Serverless-Provider bietet Entwicklern die Möglichkeit, Code zu schreiben und bereitzustellen, ohne sich Gedanken über die zugrunde liegende Infrastruktur zu machen. Physische Server werden zwar verwendet, müssen jedoch nicht von den Entwicklern verwaltet werden. Serverless-Code wird nur im Bedarfsfall ausgeführt und die Serverless-Architektur passt sich automatisch der Nachfrage an.

Wie sieht eine Serverless-Computing-Architektur aus?

Eine Serverless-Architektur unterteilt das Anwendungs-Backend in Funktionen. Jede einzelne Funktion führt eine andere Aufgabe innerhalb der Anwendung aus. Diese Art von Architektur wird auch als Function-as-a-Service (FaaS) bezeichnet.

Eines der wichtigsten Features einer Serverless-Architektur ist die automatische Skalierbarkeit. Serverless-Anwendungen passen sich automatisch der Benutzeranzahl oder dem Nutzungsbedarf an. Muss eine Funktion auf mehreren Instanzen ausgeführt werden, werden diese von den Servern des Serverless-Providers nach Bedarf gestartet, ausgeführt und beendet. Wird eine Funktion nicht verwendet, wird sie auch nicht ausgeführt.

Wie unterscheidet sich Serverless von anderen Arten von Cloud-Computing?

  • Serverless vs. Platform-as-a-Service (PaaS): Bei PaaS stellt ein Cloudanbieter Tools, Server und Ressourcen für die Anwendungsentwicklung über das Internet bereit. Serverless-Computing ist sehr viel skalierbarer als PaaS, was Kosten und Rechenleistung angeht. Serverless-Anwendungen passen sich sofort, automatisch und nach Bedarf an, ohne dass vom Entwickler oder Anbieter weitere manuelle Konfigurationen vorgenommen werden müssen. Im Gegensatz dazu müssen Entwickler bei Anwendungen mit PaaS die Skalierung im Voraus einplanen.

  • Serverless vs. Backend-as-a-Service (BaaS): BaaS-Anbieter bieten zusätzlich zum Cloudspeicher oder Cloudhosting bereits geschriebene Software für Aktivitäten auf Servern an, z. B. für die Benutzerauthentifizierung oder Datenbankverwaltung. BaaS-Provider bieten Backend-Services, aber das Backend lässt sich nicht nach Bedarf skalieren. Ein Serverless-Backend wird in kleinere Funktionen unterteilt, die als Reaktion auf Ereignisse starten und wieder stoppen.

  • Serverless vs. Containers: Containerisierte Microservices werden immer ausgeführt, während Serverless-Funktionen von Ereignissen ausgelöst werden. Für die Ausführung von Containern fällt ein Festpreis an und sie lassen sich nicht automatisch skalieren. Im Gegensatz dazu zahlen Entwickler mit einem Serverless-Backend nur für die Rechenleistung, die ihre Funktionen tatsächlich verwenden.

Was sind die Vorteile einer Serverless-Architektur?

Eine Serverless-Architektur bietet eine verbesserte Skalierbarkeit, mehr Flexibilität und eine schnellere Release-Erstellung.

Mit Serverless Computing müssen sich Entwickler keine Gedanken über den Kauf, die Bereitstellung und die Verwaltung von Backend-Servern machen. Entwickler können Code schreiben und fast augenblicklich bereitstellen. Sie können Anwendungen stück-, das heißt funktionsweise aktualisieren, anstatt das gesamte Anwendungspaket bei jedem Update erneut bereitstellen zu müssen. Darüber hinaus müssen Unternehmen nicht mehr wie bei älteren Backendmodellen für ungenutzten Serverspeicherplatz bezahlen, wenn bereitgestellte Server nicht mit maximaler Kapazität ausgeführt werden.

Was sind die Nachteile einer Serverless-Architektur?

Beim Serverless-Computing sind die Backendkosten mitunter weniger vorhersehbar, da sie mit der Nutzung steigen und fallen. Serverless-Architekturen sind nicht auf lange laufende Anwendungen ausgelegt. Und da Serverless-Provider die Zeit in Rechnung stellen, in der Code ausgeführt wird, kann es teurer sein, eine Anwendung mit lang andauernden Prozessen in einer Serverless-Infrastruktur auszuführen. Außerdem ist das Debugging komplizierter, da Entwickler keinen vollständigen Einblick in die Backendprozesse haben und die Anwendungen in separate, kleinere Funktionen unterteilt sind.

Was sind häufige Anwendungsfälle für Serverless-Computing?

Heutzutage sehen wir zwei wichtige Bereiche, in denen Serverless-Computing verwendet wird. Im ersten werden Serverless-Funktionen als Möglichkeit genutzt, um Ereignisse oder Daten zwischen verschiedenen Services zu übermitteln. Beispielsweise das Parsing von Webhooks von Drittanbietern (z. B. Zahlungsverarbeitungsplattformen), die Änderung von hochgeladenen Bildern oder die Bearbeitung von Elementen in einem Warteschlangenservice.

Der zweite Bereich ist die Erstellung einer API mit nur einem Zweck oder einem kleineren Service. Unternehmen können diese in sich geschlossenen APIs oder Services schnell starten, ohne sich Gedanken über die Skalierung oder die langfristigen Nutzungskosten machen zu müssen. Seit Kurzem nutzen Unternehmen Serverless Computing, um immer größere Anwendungen zu erstellen, indem sie viele dieser kleineren Anwendungsfälle zusammenlegen.

Das könnte Sie zum Thema Serverless-Computing auch interessieren:

Ein Ausflug in die Welt der Serverless-Architekturen

Wie Serverless-Konzepte die IT automatisieren

Welche Auswirkungen hat Serverless-Computing auf die Anwendungssicherheit?

Anwendungen mit einer Serverless-Architektur sind bis zu einem gewissen Grad davon abhängig, dass der Provider für die Sicherheit sorgt. Serverless-Provider haben große Anstrengungen unternommen, um ein angemessenes Sandboxing von Anwendungscode sicherzustellen, das demjenigen in einer herkömmlichen Cloudumgebung ähnelt. Es ist dennoch extrem wichtig, zu gewährleisten, dass Anwendungen mit angemessenen Prozessen und Berechtigungen bereitgestellt werden, um einen maximalen Grad an Sicherheit zu gewährleisten. (hal)