Header Background
 
 
 

Function as a Service (FaaS) ist ein Cloud-Computing-Modell, das es Entwicklern ermöglicht, Code als eigenständige Funktionen auszuführen, ohne sich um die zugrunde liegende Infrastruktur kümmern zu müssen. Diese Funktionen werden ereignisgesteuert ausgeführt und skalieren automatisch basierend auf der Nachfrage. FaaS ist eine Kernkomponente der serverlosen Architektur, bei der Server zwar physisch existieren, ihre Verwaltung jedoch vollständig vom Cloud-Anbieter übernommen wird. Beispiele für populäre FaaS-Dienste sind AWS Lambda, Microsoft Azure Functions und Google Cloud Functions.

Funktionsweise von FaaS

Die Funktionsweise von FaaS lässt sich in mehrere Stufen unterteilen:

1. Ereignisgesteuerte Ausführung
FaaS-Funktionen werden nur dann ausgeführt, wenn ein spezifisches Ereignis eintritt. Ein solches Ereignis kann beispielsweise ein HTTP-Request, das Hochladen einer Datei in einen Cloud-Speicher, ein Datenbank-Trigger oder eine Nachricht in einer Message Queue sein.

2. Code-Deployment
Entwickler schreiben den Code in einer unterstützten Programmiersprache wie Python, Java, Node.js oder Go und laden ihn in den FaaS-Dienst hoch. Der Dienst verpackt den Code zusammen mit dessen Abhängigkeiten in eine ausführbare Einheit.

3. Isolierte Ausführungsumgebung
Jede FaaS-Funktion läuft in einer isolierten Umgebung, häufig in leichtgewichtigen Containern. Diese Container werden on-demand gestartet, um die Funktion auszuführen, und anschließend wieder beendet, um Ressourcen zu sparen.

4. Automatische Skalierung
FaaS-Dienste skalieren automatisch. Wenn beispielsweise hunderte von Anfragen gleichzeitig eingehen, erstellt der FaaS-Anbieter mehrere Instanzen der Funktion und führt diese parallel aus. Ist keine Last mehr vorhanden, wird keine Funktion mehr ausgeführt, und es fallen keine Kosten an.

5. Pay-as-you-go-Abrechnung
Die Kostenstruktur von FaaS basiert auf der tatsächlichen Nutzung. Abgerechnet wird in der Regel die Ausführungszeit (z. B. in Millisekunden) sowie die Menge der verarbeiteten Daten.

Technische Details

Architektur

  • Containerisierung: FaaS nutzt Container-Technologie (z. B. Docker oder Kubernetes) zur Isolation und schnellen Bereitstellung der Funktionen.
  • Cold Starts: Ein häufig diskutiertes Problem bei FaaS ist die Verzögerung beim Starten einer Funktion, wenn kein laufender Container vorhanden ist (Cold Start). Dies wird durch das Vorhalten von Warm-Containern minimiert, aber nicht vollständig eliminiert.
  • State Management: FaaS ist grundsätzlich zustandslos, d. h., jede Funktion hat keinen persistenten Speicher. Zustandsinformationen müssen extern in Datenbanken oder Speichern wie AWS DynamoDB oder Redis verwaltet werden.

Sicherheitsaspekte

  •  Sandboxing: Funktionen laufen in einer Sandbox-Umgebung, die den Zugriff auf das zugrunde liegende Betriebssystem einschränkt.
  • IAM-Rollen: FaaS-Dienste integrieren sich in die Zugriffskontrollmechanismen der Cloud-Anbieter, wodurch granulare Berechtigungen für jede Funktion definiert werden können.
  • Verschlüsselung: Daten während der Übertragung und im Ruhezustand werden durchgehend verschlüsselt.

Anwendungsbeispiele

  • Webhooks und API-Backends
    FaaS eignet sich hervorragend für das Erstellen von leichtgewichtigen APIs, die bei Bedarf skalieren. Beispielsweise kann eine E-Commerce-Website FaaS verwenden, um Produktbestände abzufragen oder Bestellungen zu verarbeiten.
  • Datenverarbeitung in Echtzeit
    Eine Funktion könnte automatisch ausgelöst werden, wenn eine Datei in einen Cloud-Speicher hochgeladen wird, um diese zu analysieren oder zu transformieren.
  • IoT-Integrationen
    FaaS ermöglicht es, Ereignisse von IoT-Geräten (z. B. Sensoren) zu verarbeiten und Aktionen auszulösen.
  • Automatisierung von Workflows
    Wiederkehrende Aufgaben wie das regelmäßige Aktualisieren von Datenbanken oder das Versenden von Berichten können automatisiert werden.
  • Machine Learning Inferenz
    Modelle können in FaaS-Umgebungen bereitgestellt werden, um Vorhersagen in Echtzeit zu liefern, ohne dedizierte Server zu betreiben.

Vorteile von FaaS

  • Kosteneffizienz: Durch das Pay-as-you-go-Modell fallen nur Kosten an, wenn die Funktion tatsächlich ausgeführt wird. Dadurch entfallen die Kosten für ungenutzte Serverkapazitäten.
  • Skalierbarkeit: Die automatische Skalierung stellt sicher, dass Anwendungen auch bei plötzlichem Anstieg der Nutzerzahlen zuverlässig funktionieren.
  • Entwicklungsvereinfachung: Entwickler können sich auf das Schreiben von Code konzentrieren, ohne sich mit Infrastrukturmanagement oder Serverkonfiguration beschäftigen zu müssen.
  • Schnelle Bereitstellung: Die isolierte und modulare Struktur von FaaS-Funktionen ermöglicht schnelles Testen und Ausrollen von Updates.

Nachteile von FaaS

  • Cold Starts: Die Verzögerung beim ersten Aufruf einer Funktion kann die Leistung beeinträchtigen, insbesondere bei Echtzeitanwendungen.
  • Begrenzte Ausführungszeit: FaaS-Dienste haben häufig eine maximale Ausführungszeit pro Funktion (z. B. 15 Minuten bei AWS Lambda).
  • Zustandslosigkeit: Das Fehlen eines persistenten Zustands erfordert zusätzliche Architekturkomponenten, um Daten über mehrere Aufrufe hinweg zu speichern.
  • Anbieterbindung: Die Nutzung von FaaS kann zu einer engen Bindung an den gewählten Cloud-Anbieter führen (Vendor Lock-in), da viele Dienste proprietär sind.
  • Komplexe Abhängigkeiten: Die Aufteilung von Anwendungen in viele kleine Funktionen kann die Fehlersuche und das Debugging erschweren.

Fazit: FaaS – Flexibilität auf Kosten der Kontrolle

FaaS ist eine transformative Technologie, die Unternehmen ermöglicht, Anwendungen effizient und skalierbar zu betreiben, ohne sich mit der Verwaltung von Infrastruktur zu belasten. Insbesondere für Anwendungen mit schwankendem Ressourcenbedarf bietet FaaS erhebliche Kostenvorteile und eine schnelle Entwicklungszeit. Jedoch sollte man sich der Einschränkungen bewusst sein, insbesondere im Hinblick auf Cold Starts, Anbieterbindung und die Notwendigkeit externer Zustandsverwaltung.

Für kurzfristige Projekte, Echtzeitverarbeitung oder Prototyping ist FaaS eine ideale Wahl. Für komplexe, langlebige Systeme mit hohen Anforderungen an Performance und Kontrolle über die Infrastruktur sollte jedoch abgewogen werden, ob traditionelle Architekturansätze oder containerisierte Workloads besser geeignet sind.

Autor: Michael Deinhard Autor

LinkedIn Profil von: Michael Deinhard Michael Deinhard

Artikel erstellt: 09.01.2025
Artikel aktualisiert: 10.06.2025

zurück zur Übersicht

 
 
 
Diese Seite weiterempfehlen:
0
Merkzettel öffnen
0
Besuchsverlauf ansehen
IT-Schulungen.com Control Panel