Was ist serverless computing (serverless processing) / FaaS?

Was ist Serverless Computing / FaaS?

Definition von Serverless Computing

Serverless Computing ist ein Modell der Cloud-Anwendungsarchitektur und -ausfuehrung, bei dem der Cloud-Anbieter die Allokation und Bereitstellung von Serverressourcen dynamisch verwaltet und Anwendungsentwickler sich nicht um die Verwaltung der Infrastruktur (Server, Betriebssysteme, Skalierung) kuemmern muessen. Anwendungen werden typischerweise als Sammlung kleiner, unabhaengiger Funktionen (Functions as a Service — FaaS) aufgebaut, die nur bei Bedarf ausgefuehrt werden (als Reaktion auf Ereignisse), und die Abrechnung erfolgt ausschliesslich fuer die tatsaechliche Ausfuehrungszeit und die verbrauchten Ressourcen.

Der Name “serverless” ist etwas irrefuehrend — Server existieren natuerlich, sind aber fuer den Entwickler vollstaendig abstrahiert. Anstatt Server zu provisionieren, zu konfigurieren und zu warten, konzentrieren sich Programmierer ausschliesslich auf die Geschaeftslogik ihrer Anwendung. Dies stellt einen fundamentalen Paradigmenwechsel im Vergleich zu traditionellen Hosting-Modellen dar, bei denen Organisationen jede Schicht des Technologie-Stacks selbst verwalten mussten.

Wie Serverless Computing funktioniert

Im Serverless-Modell wird der gesamte Infrastruktur-Lebenszyklus vom Cloud-Anbieter verwaltet. Wenn ein Ereignis eine Funktion ausloest (z.B. eine HTTP-Anfrage, eine Nachricht in einer Warteschlange oder eine Aenderung in einer Datenbank), startet die Plattform automatisch einen Container mit dem Funktionscode, fuehrt die Geschaeftslogik aus und gibt die Ressourcen nach Abschluss der Verarbeitung wieder frei.

Der Prozess verlaeuft in mehreren Schritten. Zunaechst wird das ausloesende Ereignis von der Serverless-Plattform empfangen. Dann prueft die Plattform, ob ein bereiter Container mit geladenem Funktionscode existiert. Falls nicht (sogenannter Cold Start), erstellt die Plattform einen neuen Container, laedt den Code und initialisiert die Laufzeitumgebung. Nach der Initialisierung verarbeitet die Funktion das Ereignis und gibt das Ergebnis zurueck. Nach Abschluss der Verarbeitung kann der Container fuer kurze Zeit erhalten bleiben fuer nachfolgende Aufrufe (Warm Start) oder freigegeben werden.

Die Plattform skaliert die Anzahl der Funktionsinstanzen automatisch als Reaktion auf die Last. Wenn gleichzeitig Tausende von Ereignissen eintreffen, startet die Plattform Tausende von Instanzen gleichzeitig. Wenn die Last auf Null sinkt, werden keine Ressourcen verbraucht und keine Gebuehren berechnet.

Functions as a Service (FaaS)

FaaS ist das grundlegende Berechnungsmodell der Serverless-Architektur. Es basiert auf dem Ausfuehren kleiner Code-Fragmente (Funktionen) als Reaktion auf bestimmte Ereignisse. Jede Funktion ist typischerweise fuer eine einzelne, klar definierte Aufgabe verantwortlich, was das Single-Responsibility-Prinzip und eine modulare Architektur foerdert.

Typische Ereignisquellen umfassen HTTP-Anfragen und API Gateway, Datei-Uploads in Objektspeicher (z.B. S3), Nachrichten in Warteschlangen (SQS, Event Bridge), Datenbankaenderungen (DynamoDB Streams), zeitgesteuerte Ausloeser (Cron-aehnliche Trigger) sowie IoT-Ereignisse.

Der Entwickler stellt lediglich den Funktionscode in einer der unterstuetzten Programmiersprachen bereit (Python, Node.js, Java, Go, C#, Rust und andere), und die Plattform kuemmert sich um alles Weitere — Provisionierung, Skalierung, Monitoring und Logging.

Schluesselmerkmale der Serverless-Architektur

Serverabstraktion

Im Serverless-Modell existiert kein Serverkonzept aus Entwicklerperspektive. Es gibt keine virtuellen Maschinen zu konfigurieren, keine Betriebssysteme zu aktualisieren und keine Sicherheitspatches auf Infrastrukturebene zu installieren. Die gesamte Verantwortung liegt beim Cloud-Anbieter.

Automatische Skalierung

Die Plattform skaliert Ressourcen automatisch nach oben und unten, einschliesslich Skalierung auf Null, und passt sie an die aktuelle Last an. Diese Skalierung ist nahezu sofortig und erfordert keine Konfiguration seitens des Entwicklers. Im Gegensatz zu traditionellen Autoscalern, die auf Metriken mit Verzoegerung reagieren, skaliert Serverless auf der Ebene einzelner Ereignisse.

Pay-per-Execution

Das Preismodell von Serverless basiert auf dem tatsaechlichen Ressourcenverbrauch. Bezahlt wird fuer die Anzahl der Funktionsaufrufe, die Ausfuehrungszeit (gemessen in Millisekunden) und den zugewiesenen Speicher. Es fallen keine Gebuehren fuer ungenutzte Ressourcen an, was Serverless besonders kosteneffizient fuer Anwendungen mit variierender oder sporadischer Last macht.

Ereignisgesteuert (Event-driven)

Serverless-Architektur ist von Natur aus ereignisgesteuert. Funktionen werden als Reaktion auf Ereignisse aus verschiedenen Quellen ausgefuehrt, was lose gekoppelte, reaktive Architekturen foerdert. Dieses Modell harmoniert gut mit Mustern wie CQRS und Event Sourcing.

Backend as a Service (BaaS)

Neben FaaS nutzt Serverless-Architektur haeufig auch Backend as a Service (BaaS). Dies sind fertige Cloud-Dienste, die typische Backend-Funktionalitaeten bereitstellen, ohne dass serverseitiger Code geschrieben werden muss.

Populaere BaaS-Dienste umfassen Benutzerauthentifizierung (AWS Cognito, Firebase Authentication, Auth0), Datenbankverwaltung (AWS DynamoDB, Firestore, Aurora Serverless), Dateispeicherung (AWS S3, Google Cloud Storage), Push-Benachrichtigungen und Messaging (SNS, Firebase Cloud Messaging) sowie Volltextsuche (Algolia, Elasticsearch Service).

Die Kombination von FaaS und BaaS ermoeglicht den Aufbau kompletter Anwendungen ohne Verwaltung jeglicher Server, was die betriebliche Komplexitaet drastisch reduziert und die Time-to-Market beschleunigt.

Vorteile des Serverless-Ansatzes

Niedrigere Betriebskosten stellen einen der Hauptvorteile dar. Die Bezahlung nur fuer den tatsaechlichen Ressourcenverbrauch kann deutlich guenstiger sein als die Aufrechterhaltung staendig laufender Server, insbesondere bei schwankender Last. Fuer Anwendungen mit grossen Verkehrsschwankungen koennen die Einsparungen im Vergleich zu traditioneller Infrastruktur 60-80% betragen.

Schnellere Entwicklung und kuerzere Time-to-Market ergeben sich aus der Moeglichkeit, dass sich Entwickler auf die Geschaeftslogik konzentrieren koennen, anstatt Infrastruktur zu verwalten. Die Eliminierung betrieblicher Aufgaben ermoeglicht es kleineren Teams, mehr Funktionalitaet in kuerzerer Zeit zu liefern.

Automatische Skalierbarkeit und hohe Verfuegbarkeit sind in die Plattform eingebaut. Es ist keine Kapazitaetsplanung, Autoscaler-Konfiguration oder Failover-Mechanismus-Planung erforderlich. Die Plattform stellt diese Eigenschaften automatisch bereit.

Reduzierung der betrieblichen Komplexitaet bedeutet weniger Serveradministrationsaufgaben, weniger zu installierende Sicherheitspatches und weniger infrastrukturbezogene Bereitschaftsdienste. Teams koennen die gesparte Zeit fuer die Produktentwicklung nutzen.

Herausforderungen und Einschraenkungen

Cold Start

Der erste Aufruf einer Funktion nach einer Inaktivitaetsperiode kann laenger dauern, da die Plattform die Laufzeitumgebung initialisieren muss. Cold Starts koennen von einigen zehn Millisekunden bis zu mehreren Sekunden dauern, abhaengig von Programmiersprache, Paketgroesse und Konfiguration. Fuer Anwendungen mit Anforderungen an niedrige Latenz kann dies eine erhebliche Einschraenkung darstellen.

Strategien zur Minimierung von Cold Starts umfassen Provisioned Concurrency (AWS Lambda), Beibehalten kleiner Deployment-Pakete, Auswahl von Sprachen mit schnellem Start (Python, Node.js statt Java) sowie Warm-up-Trigger.

Ressourcen- und Ausfuehrungszeitlimits

FaaS-Funktionen haben Beschraenkungen hinsichtlich Ausfuehrungszeit (z.B. 15 Minuten bei AWS Lambda), verfuegbarem Speicher (bis 10 GB), Deployment-Paketgroesse und Antwortgroesse. Diese Einschraenkungen schliessen Serverless von einigen Anwendungsfaellen aus, wie langlaeuigen Berechnungsprozessen oder ML-Modelltraining.

Vendor Lock-in

Die starke Abhaengigkeit von spezifischen Diensten und Mechanismen eines bestimmten Cloud-Anbieters erschwert die Migration zwischen Anbietern. Jede Plattform hat eigene APIs, Konfigurationsformate und begleitende Dienste, was die Kosten fuer die Portierung von Anwendungen erhoeht.

Zustandsverwaltung

FaaS-Funktionen sind zustandslos, was die Verwendung externer Dienste zur Speicherung des Anwendungszustands erfordert. Dies fuehrt zu zusaetzlicher architektonischer Komplexitaet und potenziellen Ausfallpunkten.

Debugging-Komplexitaet

Das Debugging und Monitoring von Anwendungen, die aus vielen Funktionen und BaaS-Diensten bestehen, kann herausfordernd sein. Die verteilte Natur der Serverless-Architektur erfordert fortschrittliche Observability-Tools wie AWS X-Ray, Datadog oder Lumigo.

Plattformen und Werkzeuge

Die grossen Cloud-Anbieter bieten ihre Serverless-Plattformen an: AWS Lambda (die populaerste), Azure Functions, Google Cloud Functions und IBM Cloud Functions. Jede Plattform hat ihre Staerken und spezifische Integrationen mit anderen Diensten des jeweiligen Anbieters.

Deployment-Frameworks wie Serverless Framework, AWS SAM (Serverless Application Model) und AWS CDK vereinfachen die Definition, das Deployment und die Verwaltung von Serverless-Anwendungen. Sie ermoeglichen die Definition von Infrastruktur als Code (Infrastructure as Code) und die Automatisierung von CI/CD-Prozessen.

ARDURA Consulting unterstuetzt Organisationen bei der Gewinnung von Cloud-Spezialisten und Serverless-Architekten, die beim Design, der Implementierung und der Optimierung von Serverless-Architekturen helfen, die auf spezifische geschaeftliche Anforderungen zugeschnitten sind.

Serverless-Anwendungsfaelle in der Praxis

Serverless eignet sich besonders gut fuer die Echtzeit-Ereignis- und Datenverarbeitung, API-Backends fuer mobile und Webanwendungen, Prozess- und Workflow-Automatisierung, Datei- und Medienverarbeitung, Chatbots und KI/ML-Integration, Microservices mit variabler Last sowie IoT-Datenverarbeitung von Sensoren und Geraeten.

Ein typisches Beispiel ist die Bildverarbeitung: Nach dem Hochladen eines Fotos in S3 erstellt eine Lambda-Funktion automatisch Thumbnails in verschiedenen Aufloesungen, optimiert das Format und speichert die Ergebnisse. Der gesamte Prozess ist vollstaendig automatisiert und skaliert von einem bis zu Millionen von Bildern ohne jeglichen Eingriff.

Zusammenfassung

Serverless Computing und FaaS repraesentieren den naechsten Schritt in der Evolution des Cloud Computing und bieten das hoechste Niveau an Infrastrukturabstraktion und Kosteneffizienz. Sie ermoeglichen den schnellen Aufbau skalierbarer, ereignisgesteuerter Anwendungen ohne die Notwendigkeit der Serververwaltung. Obwohl sie mit Herausforderungen wie Cold Starts, Ressourcenbeschraenkungen und dem Risiko von Vendor Lock-in verbunden sind, stellen sie eine attraktive Option fuer viele moderne Anwendungsfaelle dar. Serverless veraendert grundlegend die Art und Weise, wie Organisationen Software erstellen und bereitstellen, indem die Verantwortung fuer die Infrastruktur auf Cloud-Anbieter verlagert wird und Entwicklerteams sich auf das Wesentliche konzentrieren koennen — die Bereitstellung von Geschaeftswert.

Häufig gestellte Fragen

Was ist Serverless computing (serverless computing)?

Serverless Computing ist ein Modell der Cloud-Anwendungsarchitektur und -ausfuehrung, bei dem der Cloud-Anbieter die Allokation und Bereitstellung von Serverressourcen dynamisch verwaltet und Anwendungsentwickler sich nicht um die Verwaltung der Infrastruktur (Server, Betriebssysteme, Skalierung) ku...

Wie funktioniert Serverless computing (serverless computing)?

Im Serverless-Modell wird der gesamte Infrastruktur-Lebenszyklus vom Cloud-Anbieter verwaltet. Wenn ein Ereignis eine Funktion ausloest (z.B.

Welche Vorteile bietet Serverless computing (serverless computing)?

Niedrigere Betriebskosten stellen einen der Hauptvorteile dar. Die Bezahlung nur fuer den tatsaechlichen Ressourcenverbrauch kann deutlich guenstiger sein als die Aufrechterhaltung staendig laufender Server, insbesondere bei schwankender Last.

Welche Herausforderungen gibt es bei Serverless computing (serverless computing)?

Der erste Aufruf einer Funktion nach einer Inaktivitaetsperiode kann laenger dauern, da die Plattform die Laufzeitumgebung initialisieren muss. Cold Starts koennen von einigen zehn Millisekunden bis zu mehreren Sekunden dauern, abhaengig von Programmiersprache, Paketgroesse und Konfiguration.

Welche Tools werden für Serverless computing (serverless computing) verwendet?

Die grossen Cloud-Anbieter bieten ihre Serverless-Plattformen an: AWS Lambda (die populaerste), Azure Functions, Google Cloud Functions und IBM Cloud Functions. Jede Plattform hat ihre Staerken und spezifische Integrationen mit anderen Diensten des jeweiligen Anbieters.

Brauchen Sie Unterstuetzung bei Staff Augmentation?

Kostenlose Beratung vereinbaren →
Angebot erhalten
Beratung vereinbaren