Serverless Computing
Betriebs- und Architekturparadigma, bei dem Cloud-Anbieter Laufzeit und Skalierung verwalten, während Entwickler sich auf Funktionen und Ereignisse konzentrieren.
Klassifikation
- KomplexitätMittel
- AuswirkungTechnisch
- EntscheidungstypArchitektur
- OrganisationsreifeFortgeschritten
Technischer Kontext
Prinzipien & Ziele
Use Cases & Szenarien
Kompromisse
- Vendor-Lock-in durch anbieter-spezifische Features
- Unvorhersehbare Kosten bei hoher Invocationszahl ohne Limits
- Komplexität bei Debugging und verteilten Fehlern
- Funktionen kurz, zustandslos und idempotent halten
- Verwendung von Dead-Letter-Queues für Fehlerfälle
- Limits und Kostenbudgets früh konfigurieren
I/O & Ressourcen
- Cloud-Account und Berechtigungen
- Definition von Events und Triggern
- Observability- und Monitoring-Stack
- Skalierende Funktionen mit Monitoringdaten
- Kostenberichte nach Nutzung
- Automatisierte Fehlerbehandlungspfade
Beschreibung
Serverless Computing beschreibt ein Cloud-Betriebsmodell, bei dem Anwendungen in vom Anbieter verwalteten Laufzeitumgebungen ausgeführt werden, ohne dass Entwickler Serverinfrastruktur verwalten müssen. Es fokussiert auf ereignisgesteuerte Funktionen, automatische Skalierung und Abrechnung nach Nutzung, reduziert Betriebsaufwand und verändert Architektur- und Entwicklungsentscheidungen in Organisationen.
✔Vorteile
- Reduzierter Infrastruktur-Betriebsaufwand
- Feinkörnige Skalierung und Kosteneffizienz bei variabler Last
- Schnellere Iteration durch Fokussierung auf Code statt Server
✖Limitationen
- Einschränkungen bei Laufzeitdauer und Ressourcen je Ausführung
- Potenzielle Kaltstart-Latenzen
- Schwierigkeiten bei lang andauernden oder stateful Workloads
Trade-offs
Metriken
- Kaltstart-Latenz
Zeit bis zur ersten bedienbaren Antwort nach Inaktivität; relevant für Latenz-SLAs.
- Kosten pro Million Aufrufe
Monetäre Kennzahl zur Abschätzung der Nutzungsabhängigen Kosten.
- Fehlerquote pro Invocation
Anteil fehlgeschlagener Ausführungen; Indikator für Zuverlässigkeit und Resilienz.
Beispiele & Implementierungen
Dateiverarbeitung per Objekt-Storage-Trigger
Upload löst Funktion aus, die Bildverarbeitung durchführt und Metadaten speichert.
Echtzeit-Benachrichtigungen durch Event-Streams
Ereignisse erzeugen Benachrichtigungen, die durch serverlose Funktionen verteilt werden.
Webhook-gestützte API-Endpunkte
Externe Dienste senden Webhooks, die Funktionen zur Verarbeitung und Weiterleitung auslösen.
Implementierungsschritte
Analyse geeigneter Workloads für Serverless
Prototyp mit typischem Event-Flow erstellen
Monitoring, Retries und Kostenalarme einführen
⚠️ Technische Schulden & Engpässe
Tech Debt
- Lock-in durch anbieter-spezifische SDKs
- Verwaiste Funktionen ohne Lifecycle-Management
- Mangelnde Observability-Standards für Funktionen
Bekannte Engpässe
Beispiele für Missbrauch
- Lang laufende Datenbankmigrationen in Functions ausführen
- Große Binärartefakte als direkte Funktionspakete verteilen
- Unbegrenztes Retries ohne Backoff konfigurieren
Typische Fallen
- Ignorieren von Kaltstart-Strategien bei Latenzanforderungen
- Nichtbeachtung von Anbieter-Limits und Throttling
- Fehlende End-to-End-Tests für verteilte Abläufe
Erforderliche Fähigkeiten
Drivers (Architectural Drivers)
Constraints
- • Maximale Ausführungsdauer je Funktion abhängig vom Anbieter
- • Beschränkte Ressourcen pro Invocation (Memory/CPU)
- • Anbieter-spezifische APIs und Konfigurationen