Serverless Computing

KAPITEL 08 · CLOUD & INFRASTRUKTUR

Serverless Computing

Funktionen ohne Server betreiben – AWS Lambda, Azure Functions, Google Cloud Functions. Lernen Sie das Kostenmodell, Cold-Start-Problem, Use Cases und Best Practices für moderne Cloud-Architekturen.

AWS Lambda Azure Functions Cloud Functions Kostenrechner

Inhaltsverzeichnis

Schnellübersicht

Auf dieser Seite lernen Sie alles über Serverless Computing:

  • Definition: Was ist Serverless und wie funktioniert es?
  • Anbieter: AWS Lambda, Azure Functions, Google Cloud Functions
  • Vergleich: Serverless vs. traditionelle Server
  • Cold Start: Das Performance-Problem verstehen
  • Kostenrechner: Interaktives Tool zur Kostenschätzung
  • Use Cases: Typische Anwendungsfälle
  • Best Practices: Design, Security, Performance, Kosten
  • FAQ: Häufige Fragen und Antworten

1. Was ist Serverless Computing?

Definition

Serverless Computing ist ein Cloud-Computing-Modell, bei dem der Cloud-Anbieter die Server-Infrastruktur dynamisch verwaltet. Entwickler stellen Funktionen (Functions) bereit, die bei bestimmten Ereignissen automatisch ausgeführt werden – ohne sich um Server-Provisionierung, Skalierung oder Wartung kümmern zu müssen.

Wichtig: "Serverless" bedeutet nicht, dass keine Server beteiligt sind – es bedeutet, dass der Entwickler sich nicht um die Server kümmern muss. Die Infrastruktur wird vollständig vom Cloud-Anbieter gemanagt.

Das Grundprinzip: Sie schreiben Code → laden ihn hoch → der Cloud-Anbieter führt ihn bei Bedarf aus → Sie zahlen nur für die tatsächliche Ausführungszeit (Pay-per-Use).

Die drei Kernprinzipien von Serverless

  • Event-Driven: Funktionen werden durch Ereignisse ausgelöst (HTTP-Requests, Datei-Uploads, Timer, Nachrichten)
  • Stateless: Jede Ausführung ist unabhängig – kein lokaler Zustand zwischen Aufrufen
  • Auto-Scaling: Automatische Skalierung von 0 auf tausende parallele Ausführungen

2. Die wichtigsten Serverless-Anbieter

Jeder große Cloud-Anbieter bietet eigene Serverless-Dienste an. Hier die wichtigsten im Überblick:

01

AWS Lambda

Der Marktführer · Seit 2014

Der Pionier und meistgenutzte Serverless-Dienst. Unterstützt Node.js, Python, Java, C#, Go, Ruby und Custom Runtimes.

  • Max. Laufzeit: 15 Minuten
  • Max. Speicher: 10 GB RAM
  • Free Tier: 1 Mio. Requests/Monat
  • Integration: 200+ AWS-Services
  • Concurrency: Bis 1000+ parallele Ausführungen
Preise: $0.20 pro 1 Mio. Requests + $0.0000166667 pro GB-Sekunde
02

Azure Functions

Enterprise-Integration · Hybrid Cloud

Starke Integration mit dem Microsoft-Ökosystem. Ideal für Unternehmen mit Active Directory, Office 365 und .NET-Anwendungen.

  • Max. Laufzeit: 10 Min (Consumption), unbegrenzt (Premium)
  • Max. Speicher: 14 GB RAM
  • Free Tier: 1 Mio. Requests/Monat
  • Languages: C#, F#, Java, JavaScript, Python, PowerShell
  • Durable Functions: Für komplexe Workflows
Preise: $0.20 pro 1 Mio. Requests + $0.000016/GB-Sekunde
03

Google Cloud Functions

Kubernetes-Native · Firebase-Integration

Starke Integration mit Firebase und Google Cloud. Ideal für mobile Apps, Web-Backends und Event-Processing.

  • Max. Laufzeit: 9 Minuten (Gen 2)
  • Max. Speicher: 32 GB RAM
  • Free Tier: 2 Mio. Requests/Monat
  • Languages: Node.js, Python, Go, Java, .NET, Ruby, PHP
  • Cloud Run: Container-basierte Alternative
Preise: $0.40 pro 1 Mio. Requests + $0.0000025 pro GB-Sekunde
04

IBM Cloud Functions

Apache OpenWhisk · Open Source

Basiert auf Apache OpenWhisk (Open Source). Ideal für Hybrid-Cloud-Szenarien und Enterprise-Workloads.

  • Max. Laufzeit: 10 Minuten
  • Max. Speicher: 4 GB RAM
  • Free Tier: 400.000 GB-Sekunden/Monat
  • Languages: Node.js, Python, Java, PHP, Swift, Go, .NET
  • OpenWhisk: Selbst hostbar
Preise: $0.000017 pro GB-Sekunde + $0.000004 pro Ausführung

3. Serverless vs. Traditionelle Server

Wann lohnt sich Serverless und wann sind traditionelle Server besser?

Kriterium Serverless Traditionelle Server (VM/Container)
Kostenmodell Pay-per-Use (nur Ausführungszeit) Pay-per-Second/Hour (auch im Leerlauf)
Skalierung Automatisch, von 0 auf tausende Manuell oder Auto-Scaling (mit Verzögerung)
Cold Start Ja (100ms - mehrere Sekunden) Nein (Server immer warm)
Max. Laufzeit Begrenzt (5-15 Minuten) Unbegrenzt
State Stateless (externer Speicher nötig) Stateful möglich (lokaler Speicher)
Kontrolle Weniger (Managed Service) Voll (Root-Zugriff möglich)
Wartung Keine (Provider managed) Viel (OS, Patches, Security)
Debugging Schwieriger (verteilte Logs) Einfacher (direkter Zugriff)
Vendor Lock-in Hoch (Provider-spezifisch) Niedrig (Container portabel)
Ideal für Event-driven, sporadische Workloads Konstante Workloads, komplexe Apps

Faustregel: Wann Serverless?

  • ✅ Serverless nutzen bei: Sporadischen Workloads, Event-driven Architekturen, Microservices, APIs mit variabler Last, Batch-Processing
  • ❌ Traditionelle Server bei: Konstanter hoher Auslastung, langen Prozessen (>15 Min), Stateful Applications, Legacy-Systemen, strengen Compliance-Anforderungen

4. Das Cold-Start-Problem

Cold Start vs. Warm Execution

Wenn eine Serverless-Funktion nach einer Inaktivitätsperiode ausgeführt wird, muss der Cloud-Anbieter zuerst eine Laufzeitumgebung initialisieren. Dies führt zu einer Verzögerung (Cold Start).

Cold Start

Erste Ausführung nach Inaktivität

Init: 200-5000ms
Execute: 50-500ms
Gesamtzeit: 250-5500ms
Ursache: Runtime-Init
Häufigkeit: Selten

Warm Execution

Wiederholte Ausführung (Runtime aktiv)

Execute: 50-500ms
Gesamtzeit: 50-500ms
Ursache: Nur Code
Häufigkeit: Normal

Cold Start minimieren

  • Provisioned Concurrency (AWS): Warme Instanzen bereithalten (kostet extra)
  • Kleine Deployment-Packages: Weniger Code = schnellere Initialisierung
  • Schnelle Sprachen: Node.js, Python sind schneller als Java, .NET
  • Regelmäßige Aufrufe: Ping alle 5 Minuten hält Runtime warm
  • Lazy Loading: Dependencies erst bei Bedarf laden

5. Interaktiver Serverless-Kostenrechner

Berechnen Sie die monatlichen Kosten für Ihre Serverless-Funktion. Wählen Sie einen Anbieter und geben Sie Ihre Nutzungsparameter ein.

Serverless Kostenrechner

Dieser Rechner schätzt die monatlichen Kosten für AWS Lambda, Azure Functions oder Google Cloud Functions basierend auf Requests, Ausführungszeit und Speicher.

Konfiguration

z.B. 1.000.000 = 1 Million
In Millisekunden (ms)
In Megabyte (MB)

Geschätzte Kosten

Request-Kosten
Compute-Kosten (GB-Sekunden)
Free Tier Ersparnis
Gesamte GB-Sekunden/Monat
Geschätzte monatliche Kosten
Hinweis: Dies ist eine Schätzung basierend auf Standard-Preisen (Stand 2024). Tatsächliche Kosten können je nach Region, Data-Transfer und zusätzlichen Services variieren.

Kostenoptimierung – Tipps

  • Free Tier nutzen: AWS Lambda bietet 1 Mio. Requests/Monat kostenlos
  • Speicher optimieren: Mehr RAM = schnellere Ausführung = weniger Kosten
  • Timeout setzen: Verhindert kostspielige Endlos-Schleifen
  • Monitoring: CloudWatch/Azure Monitor für Kosten-Alerts nutzen
  • Budget-Alerts: Warnung bei unerwartet hohen Kosten einrichten

6. Typische Use Cases

Für welche Szenarien eignet sich Serverless besonders gut?

REST APIs & Backends

Serverless Functions als Backend für Web- und Mobile-Apps. Ideal für variable Last.

Beispiel: E-Commerce-Produkt-API
→ Lambda + API Gateway + DynamoDB

Event-Processing

Verarbeitung von Ereignissen aus Queues, Streams oder Datei-Uploads.

Beispiel: Bild-Verarbeitung bei Upload
→ S3-Upload → Lambda → Thumbnail erstellen

Daten-Transformation

ETL-Prozesse, Datenbereinigung und -anreicherung in Echtzeit.

Beispiel: CSV → JSON Konvertierung
→ S3-Trigger → Lambda → Neue Datei speichern

Automation & Cron Jobs

Zeitgesteuerte Aufgaben wie Backups, Reports oder Cleanup.

Beispiel: Täglicher Datenbank-Backup
→ CloudWatch Event → Lambda → Backup erstellen

IoT-Datenverarbeitung

Verarbeitung von Sensordaten, Telemetrie und Device-Events.

Beispiel: Temperatur-Überwachung
→ IoT Core → Lambda → Alert bei Schwellenwert

Webhooks & Integrationen

Verarbeitung von Webhooks von GitHub, Stripe, Slack, etc.

Beispiel: GitHub-Push-Webhook
→ Webhook → Lambda → CI/CD auslösen

7. Best Practices

Design & Architektur

  • Stateless design: Kein lokaler Zustand zwischen Aufrufen
  • Kleine Funktionen: Eine Funktion = eine Aufgabe (Single Responsibility)
  • Idempotenz: Mehrfache Ausführung führt zum gleichen Ergebnis
  • Externen Speicher nutzen: DynamoDB, S3, Redis für State
  • Asynchrone Verarbeitung: Queues für langlaufende Tasks

Security

  • Least Privilege: Minimale IAM-Rollen und Berechtigungen
  • Environment Variables: Secrets nicht im Code hardcoden
  • VPC-Integration: Private Subnets für Datenbanken
  • Input Validation: Alle Eingaben validieren und sanitizen
  • Encryption: Daten in Transit und at Rest verschlüsseln

Performance

  • Deployment-Package optimieren: Nur nötige Dependencies
  • Connection Pooling: DB-Connections wiederverwenden
  • Caching: ElastiCache/DynamoDB DAX für häufige Queries
  • Provisioned Concurrency: Für latenzkritische Anwendungen
  • Parallel Execution: Mehrere Funktionen parallel ausführen

Kostenoptimierung

  • Memory-Tuning: Mehr RAM = schnellere Ausführung = günstiger
  • Timeout setzen: Verhindert kostspielige Endlos-Schleifen
  • Free Tier maximieren: 1 Mio. Requests/Monat kostenlos
  • Monitoring: CloudWatch für Kosten-Alerts nutzen
  • Reserved Concurrency: Für predictable Workloads

Memory-Tuning – Der Sweet Spot

Bei AWS Lambda gilt: Mehr RAM = schnellere CPU = kürzere Ausführungszeit = weniger Kosten. Der optimale Speicher liegt oft bei 1024-2048 MB, selbst wenn die Funktion weniger benötigt. Testen Sie verschiedene Konfigurationen mit AWS Lambda Power Tuning Tool.

8. FAQ – Häufige Fragen & Antworten

Häufige Fragen zu Serverless

Ist Serverless wirklich kostenlos?

Nein, aber es gibt ein großzügiges Free Tier.

  • AWS Lambda: 1 Mio. Requests + 400.000 GB-Sekunden/Monat kostenlos (dauerhaft)
  • Azure Functions: 1 Mio. Requests + 400.000 GB-Sekunden/Monat kostenlos
  • Google Cloud Functions: 2 Mio. Requests + 400.000 GB-Sekunden + 200.000 GHz-Sekunden/Monat

Für kleine Projekte und Prototypen ist Serverless oft komplett kostenlos. Bei produktiven Anwendungen mit hoher Last fallen jedoch Kosten an.

Kann ich jede Programmiersprache für Serverless nutzen?

Die meisten, aber nicht alle. Alle großen Anbieter unterstützen:

  • Node.js (JavaScript/TypeScript)
  • Python
  • Java
  • C# (.NET)
  • Go

AWS Lambda bietet zusätzlich Custom Runtimes, mit denen Sie jede Sprache nutzen können, die auf Linux läuft (z.B. Rust, Ruby, PHP). Azure Functions unterstützt auch PowerShell und F#.

Wie lang darf eine Serverless-Funktion maximal laufen?

Typische Limits:

  • AWS Lambda: Max. 15 Minuten
  • Azure Functions: 10 Min (Consumption), unbegrenzt (Premium Plan)
  • Google Cloud Functions: 9 Minuten (Gen 2)

Für längere Prozesse sollten Sie Step Functions (AWS), Durable Functions (Azure) oder Cloud Workflows (GCP) verwenden, die mehrere Funktionen orchestrieren können.

Was ist der Unterschied zwischen Serverless und Containern?

Serverless (FaaS):

  • Nur Code hochladen, keine Infrastruktur verwalten
  • Automatische Skalierung von 0
  • Pay-per-Use
  • Vendor Lock-in (Provider-spezifisch)

Container (Docker/Kubernetes):

  • Volle Kontrolle über Laufzeitumgebung
  • Portabel zwischen Clouds
  • Pay-per-Second (auch im Leerlauf)
  • Kein Vendor Lock-in

Hybrid-Ansatz: AWS Fargate, Azure Container Instances oder Google Cloud Run kombinieren Container mit Serverless-Prinzipien.

Wie gehe ich mit Cold Starts um?

Strategien zur Cold-Start-Minimierung:

  • Provisioned Concurrency (AWS): Warme Instanzen bereithalten (kostet extra, aber garantiert niedrige Latenz)
  • Kleine Deployment-Packages: Nur nötige Dependencies einbinden
  • Schnelle Sprachen wählen: Node.js, Python sind schneller als Java, .NET
  • Regelmäßige Pings: Cron-Job alle 5 Minuten hält Runtime warm
  • Lazy Loading: Dependencies erst bei Bedarf laden
  • Initialization Code optimieren: Globale Variablen für wiederverwendbare Connections
Ist Serverless sicherer als traditionelle Server?

Ja und nein – es kommt darauf an:

  • Vorteile: Kein OS-Patching nötig, automatische Security-Updates, Isolation zwischen Funktionen, DDoS-Schutz durch Cloud-Provider
  • Nachteile: Größere Angriffsfläche durch viele Funktionen, schwieriger zu überwachen, Event-Injection-Risiken

Best Practices: Least Privilege IAM-Rollen, Input Validation, Secrets Management (AWS Secrets Manager, Azure Key Vault), VPC-Integration für sensible Daten.

Wie debugge ich Serverless-Funktionen?

Tools und Techniken:

  • CloudWatch Logs (AWS): Zentrale Log-Sammlung für alle Lambda-Ausführungen
  • Azure Application Insights: Distributed Tracing und Performance-Monitoring
  • Google Cloud Logging: Strukturierte Logs mit Filtermöglichkeiten
  • X-Ray (AWS): Distributed Tracing über mehrere Services hinweg
  • Lokales Testing: SAM Local, Serverless Framework Offline, Azure Functions Core Tools

Tipp: Strukturierte Logs (JSON) verwenden und Correlation-IDs für Request-Tracking einsetzen.

Was ist Vendor Lock-in und wie vermeide ich ihn?

Vendor Lock-in bedeutet: Ihre Funktionen sind an einen Cloud-Provider gebunden und können nicht einfach zu einem anderen migriert werden.

Strategien zur Vermeidung:

  • Provider-agnostische Frameworks: Serverless Framework, CDK, Pulumi
  • Container-basierte Alternativen: AWS Fargate, Azure Container Instances, Google Cloud Run
  • Open-Source Serverless: OpenFaaS, Knative (Kubernetes-basiert)
  • Abstraktionsschichten: Business-Logik von Provider-spezifischen Triggern trennen

Realität: 100% Vendor-Lock-in-Vermeidung ist bei Serverless kaum möglich. Der Fokus sollte auf Business-Value liegen, nicht auf perfekter Portabilität.

Wann sollte ich KEIN Serverless verwenden?

Serverless ist NICHT ideal für:

  • Konstante hohe Auslastung: Bei 24/7-Vollauslastung sind VMs/Container günstiger
  • Lange Laufzeiten: Prozesse > 15 Minuten (Lambda-Limit)
  • Stateful Applications: Apps, die lokalen Speicher benötigen
  • Legacy-Systeme: Alte Anwendungen, die nicht refactored werden können
  • Strenge Compliance: Bestimmte Branchen (Banking, Healthcare) haben spezielle Anforderungen
  • Predictable Workloads: Wenn Sie genau wissen, wie viel Kapazität Sie brauchen
Wie skaliere ich Serverless-Architekturen?

Serverless skaliert automatisch – das ist einer der Hauptvorteile. Aber Sie können die Skalierung optimieren:

  • Reserved Concurrency: Maximale parallele Ausführungen begrenzen (verhindert Kostenexplosion)
  • Provisioned Concurrency: Warme Instanzen für garantierte Performance
  • Multi-Region Deployment: Funktionen in mehreren Regionen deployen für niedrige Latenz
  • Asynchrone Verarbeitung: SQS/SNS für Entkopplung und Buffering
  • Step Functions: Komplexe Workflows orchestrieren

Monitoring: CloudWatch Metrics für Concurrency, Errors, Duration und Throttles überwachen.

Zusammenfassung

Die wichtigsten Punkte

  • Serverless Computing: Cloud-Modell, bei dem der Provider die Infrastruktur managed
  • Anbieter: AWS Lambda (Marktführer), Azure Functions (Enterprise), Google Cloud Functions (Firebase)
  • Vorteile: Pay-per-Use, Auto-Scaling, keine Server-Wartung, schnelle Deployment
  • Nachteile: Cold Starts, Vendor Lock-in, begrenzte Laufzeit, schwieriger Debugging
  • Use Cases: APIs, Event-Processing, Cron Jobs, IoT, Webhooks, Daten-Transformation
  • Best Practices: Stateless Design, Least Privilege, Memory-Tuning, Monitoring
  • Kosten: Free Tier nutzen, Speicher optimieren, Budget-Alerts einrichten
  • Zukunft: Serverless wird zunehmend Standard für Cloud-native Anwendungen

Enterprise-Tipps

  • Hybrid-Ansatz: Serverless für variable Workloads, Container für konstante Last
  • Infrastructure as Code: AWS SAM, Serverless Framework, CDK für reproduzierbare Deployments
  • Monitoring: CloudWatch, X-Ray, Application Insights für umfassende Observability
  • Security: Secrets Management, VPC-Integration, regelmäßige Audits
  • Kostenkontrolle: Budget-Alerts, Reserved Concurrency, regelmäßige Kosten-Reviews

Weiterführende Themen

Cloud Computing

IaaS, PaaS, SaaS – Cloud-Modelle und deren Einsatzgebiete.

Zu Cloud Computing
Docker & Kubernetes

Container-Orchestrierung und Microservices-Architekturen.

Zu Container Orchestration
Infrastructure as Code

Terraform, CloudFormation, Pulumi – Infrastruktur automatisiert bereitstellen.

Zu IaC
Monitoring & Logging

CloudWatch, Azure Monitor, Prometheus – Observability für Cloud-Anwendungen.

Zu Monitoring