Definition
Serverless ist ein Cloud-Computing-Modell, bei dem die Verwaltung der Serverinfrastruktur vollständig vom Cloud-Anbieter übernommen wird. Nutzer müssen sich nicht um die Bereitstellung, Skalierung oder Wartung von Servern kümmern. Stattdessen wird die Ausführung von Anwendungen oder Funktionen auf Abruf ermöglicht, ohne dass eine dauerhafte Serverinstanz betrieben werden muss.
Im Serverless-Modell erfolgt die Abrechnung meist nutzungsbasiert, das heißt, Kunden zahlen nur für die tatsächlich genutzte Rechenzeit und Ressourcen. Dies unterscheidet Serverless von traditionellen Hosting-Modellen, bei denen Serverkapazitäten oft dauerhaft reserviert und bezahlt werden, unabhängig von der Auslastung.
Was bedeutet das für Ihr Unternehmen?
Serverless kann günstig sein, wenn eine Anwendung nur selten oder sehr ungleichmäßig genutzt wird, weil Sie dann nur für tatsächliche Ausführungen zahlen. Bei dauerhaft hoher Last wird es oft teurer als ein klassischer Server, und die Kosten sind schwerer vorherzusagen. Bedenken Sie auch die enge Bindung an einen Cloud-Anbieter, die einen späteren Wechsel aufwendig machen kann.
Hintergrund und Entwicklung
Das Konzept Serverless entstand in den 2010er Jahren im Zuge der zunehmenden Verbreitung von Cloud-Diensten. Anbieter wie Amazon Web Services (AWS) führten 2014 mit AWS Lambda einen der ersten populären Serverless-Dienste ein. Lambda ermöglichte es Entwicklern, kleine Codeeinheiten (Funktionen) auszuführen, die durch Ereignisse ausgelöst werden, ohne sich um die zugrundeliegende Infrastruktur kümmern zu müssen.
Seitdem haben weitere große Cloud-Anbieter wie Microsoft Azure mit Azure Functions und Google Cloud mit Cloud Functions ähnliche Dienste eingeführt. Die Popularität von Serverless stieg insbesondere durch die Vorteile bei der Skalierung und der Kostenoptimierung, die es vor allem für Anwendungen mit variabler oder unvorhersehbarer Last attraktiv machen.
Funktionsweise
Serverless-Anwendungen bestehen meist aus einzelnen Funktionen, die als Reaktion auf Ereignisse wie HTTP-Anfragen, Datenbankänderungen oder Nachrichten in Warteschlangen ausgeführt werden. Diese Funktionen laufen in isolierten Umgebungen, die vom Cloud-Anbieter verwaltet werden. Die Infrastruktur wird automatisch skaliert, sodass bei steigendem Bedarf mehr Instanzen parallel ausgeführt werden können.
Die Entwickler konzentrieren sich auf die Implementierung der Geschäftslogik, während der Anbieter die Ressourcenverwaltung, Verfügbarkeit und Sicherheit übernimmt. Die Startzeit der Funktionen, auch Kaltstart genannt, kann je nach Plattform und Programmiersprache variieren und beeinflusst die Reaktionszeit der Anwendung.
Einsatzgebiete
Serverless wird häufig für Microservices, Event-getriebene Anwendungen, Datenverarbeitung und Automatisierung eingesetzt. Typische Anwendungsfälle sind Web-APIs, Echtzeit-Datenverarbeitung, Chatbots oder Backend-Services für mobile Anwendungen. Die Möglichkeit, Funktionen nur bei Bedarf auszuführen, macht Serverless besonders für Anwendungen mit unregelmäßigen Zugriffsmustern interessant.
Darüber hinaus wird Serverless in Kombination mit anderen Cloud-Diensten wie Datenbanken, Speicher oder Messaging-Systemen genutzt, um komplexe Anwendungen ohne eigene Serverinfrastruktur zu realisieren. Dies erleichtert die Entwicklung und den Betrieb von skalierbaren und wartbaren Systemen.
Abgrenzung zu verwandten Konzepten
Serverless wird oft mit Platform as a Service (PaaS) oder Container-basierten Ansätzen verglichen, unterscheidet sich jedoch durch die vollständige Abstraktion der Serververwaltung und die nutzungsabhängige Abrechnung. Im Gegensatz zu Infrastructure as a Service (IaaS) müssen Entwickler keine virtuellen Maschinen konfigurieren oder verwalten.
Im Vergleich zu Container-Orchestrierungssystemen wie Kubernetes bietet Serverless eine höhere Abstraktionsebene, da keine Container- oder Clusterverwaltung erforderlich ist. Allerdings sind Serverless-Plattformen oft weniger flexibel bei der Kontrolle über die Laufzeitumgebung und eignen sich nicht für alle Arten von Anwendungen, insbesondere solche mit lang andauernden Prozessen oder speziellen Infrastruktur-Anforderungen.