Was ist FaaS (Function-as-a-Service)?

URL kopieren

FaaS (Function-as-a-Service) ist ein Cloud-Computing-Service, mit dem Entwicklerinnen und Entwickler Anwendungspakete als Funktionen entwickeln, ausführen und verwalten können, ohne eine eigene Infrastruktur unterhalten zu müssen.

FaaS ist ein event-gesteuertes Ausführungsmodell in zustandslosen Containern, dessen Funktionen die serverseitige Logik sowie den Status mithilfe der Services eines FaaS-Anbieters verwalten.

FaaS-Lösungen sind für die wichtigsten Public Clouds verfügbar und bieten wichtige neue Funktionen für die Anwendungsentwicklung der Unternehmens-IT. Holen Sie sich den Guide für eine cloudnative Strategie, und bereiten Sie die Implementierung eines Serverless-Ansatzes mit FaaS vor.

Beliebte Beispiele für FaaS sind:

  • IBM Cloud Functions
  • AWS Lambda von Amazon
  • Google Cloud Functions
  • Microsoft Azure Functions (Open Source)
  • OpenFaas (Open Source)
Cloudnative Umgebungen und Hybrid Cloud: Strategy Guide

FaaS ist eine Methode zur Implementierung des Serverless Computings. Entwicklerinnen und Entwickler schreiben dabei eine Geschäftslogik, die in Linux-Containern ausgeführt wird, welche vollständig durch eine Plattform gemanagt werden.

Üblicherweise handelt es sich bei diesem Modell um eine Cloud-Computing-Plattform mit Cloud-Services, das aber nun vermehrt auch mit lokalen und Hybrid-Deployments eingesetzt wird.

Bei der Serverless-Variante werden Infrastrukturaufgaben wie die Verwaltung und Provisionierung von Servern sowie die Ressourcenzuweisung an eine Plattform (wie Red Hat® OpenShift®) übertragen. So können sich die Entwickler darauf konzentrieren, Code zu schreiben und geschäftlichen Mehrwert zu schaffen.

Unter einer Funktion versteht man eine Softwarekomponente, mit der eine geschäftliche Logik in einem Betriebssystem ausgeführt wird. Anwendungen können aus vielen Funktionen bestehen.

Das FaaS-Modell bietet eine Möglichkeit, Apps mit einer Serverless-Architektur zu erstellen. Angesichts der steigenden Popularität des Serverless-Modells suchen Entwicklerinnen und Entwickler aber vermehrt nach Lösungen, die Serverless-Microservices und zustandslose Container unterstützen.

Der Weg zu cloudnativen Anwendungen

Red Hat Ressourcen

FaaS bietet Entwicklern eine Abstraktion zur Ausführung von Webanwendungen als Reaktion auf Events, und zwar ohne Serververwaltung. So kann z. B. ein Datei-Upload zur Aktivierung von benutzerdefiniertem Code führen, mit dem die Datei in verschiedene Formate transkodiert wird.

FaaS-Infrastrukturen werden vom Service-Anbieter üblicherweise nach ihrer Nutzung bzw. über ein event-gesteuertes Ausführungsmodell berechnet. Sie stehen also stets zur Verfügung, erfordern aber keine permanent im Hintergrund ausgeführten Serverprozesse wie bei PaaS (Platform-as-a-Service)

Moderne PaaS-Lösungen bieten Serverless-Funktionen im Rahmen allgemeiner Workflows, mit denen Entwickler Anwendungen bereitstellen können, wodurch sich die Grenzen zu FaaS immer weiter verwischen. 

Tatsächlich ist es so, dass ganze Anwendungen aus einer Kombination dieser Lösungen bestehen, also aus Funktionen, Microservices und langfristig ausgeführten Services.

Die Verfügbarkeit der Funktion über eine API und die Ressourcenzuweisung werden von einem Anbieter gemanagt. Da Funktionen nicht ressourcen-, sondern event-gesteuert sind, lassen sie sich auf einfachste Weise skalieren, was wiederum die Effizienz und den Wert erhöhen kann.

Bestimmte architekturtechnische Beschränkungen ermöglichen die Aktivierung mancher dieser Vorteile, darunter Zeitlimits bei der Ausführung einer Funktion. Daher muss sich eine Funktion umgehend starten und ausführen lassen. 

Funktionen werden binnen Millisekunden gestartet und verarbeiten dann individuelle Anfragen. Wenn für Ihre Funktion mehrere gleichzeitige Anfragen vorliegen, erstellt das System Kopien in der entsprechenden Zahl.

Geht die Nachfrage wieder zurück, wird die Anwendung herunterskaliert. Die dynamische Skalierung ist ein Vorteil von FaaS und dazu noch kostengünstig, weil Anbieter lediglich die tatsächlich genutzten Ressourcen und nicht die Standby-Zeit berechnen.

In lokalen Umgebungen kann diese Dynamik die Dichte Ihrer Plattform erhöhen. Dadurch können Sie mehr Workloads ausführen und die Ressourcennutzung und Funktionalität optimieren.

Ein event-gesteuerter Service, der eine horizontale Skalierung erfordert, kann als Funktion oder auch als RESTful-Anwendung funktionieren. 

FaaS eignet sich gut für hochvolumige Transaktionen und selten ausgeführte Workloads wie etwa die Erstellung von Berichten, Bildverarbeitung oder geplante Aufgaben. Zu den gängigen Use Cases für FaaS gehören Datenverarbeitung, IoT-Services sowie mobile oder Webanwendungen.

Sie können mit FaaS eine vollständige Serverless-Anwendung entwickeln oder eine Anwendung aus teils Serverless-, teils traditionellen Microservice-Komponenten zusammenstellen, um neuere Technologien und Container-Orchestrierungssysteme wie Kubernetes zu nutzen.

Best Practices für eine Migration zu containerisierten Anwendungen
  • Höhere Entwicklerproduktivität und kürzere Entwicklungszyklen
  • Keine Verantwortung für das Servermanagement
  • Einfache Skalierung sowie von der Plattform gemanagte horizontale Skalierung
  • Pay-as-you-go-Verbrauchsmodell
  • Möglichkeit der Programmierung von Funktionen in fast allen Programmiersprachen

Zu Anfang waren die Begriffe FaaS und Serverless mehr oder weniger synonym. Mittlerweile wird mit Serverless eine größere Menge an Architekturmustern und -praktiken bezeichnet, bei denen neben der in FaaS kodierten benutzerdefinierten Geschäftslogik vermehrt allgemeine Services genutzt werden.

Serverless kann von Microservices und sogar traditionellen Anwendungen genutzt werden, solange diese containerisiert werden können und die Anforderungen für dynamische Skalierung und Statusmanagement einhalten. 

Der Begriff „Serverless" steht zudem für gemanagte Services wie Datenbanken und Messaging-Systeme, bei denen Entwickler oder Administratoren nichts mit der Systemausführung zu tun haben, weil diese vom Cloud-Anbieter oder einem Drittunternehmen gehandhabt wird.  

Die größten Vorteile für Serverless-Entwickler ergeben sich aus der Kombination von FaaS mit gängigen Backend-Services (wie Datenbanken, Messaging und Authentifizierung), die über eine event-gesteuerte Architektur miteinander verbunden sind.

Mehr zum Thema Serverless erfahren
Hub

Der offizielle Red Hat Blog

Lernen Sie mehr über unser Ökosystem von Kunden, Partnern und Communities und erfahren Sie das Neueste zu Themen wie Automatisierung, Hybrid Cloud, KI und mehr.

Red Hat Testversionen

Unsere kostenlosen Testversionen unterstützen Sie dabei, praktische Erfahrungen zu sammeln, sich auf eine Zertifizierung vorzubereiten oder zu bewerten, ob ein Produkt die richtige Wahl für Ihr Unternehmen ist.

Weiterlesen

Cloud Computing-Modelle im Vergleich: IaaS vs. PaaS vs. SaaS

As a Service-Modelle sind Cloud Computing-Services, die von Drittanbietern bereitgestellt werden. Was sind die Unterschiede zwischen IaaS, PaaS und SaaS?

Was ist PaaS? Platform as a Service: Definition, Funktion und Vorteile

Platform as a Service (PaaS) ist ein Cloud Computing-Modell, bei dem Software and Hardware-Tools für die Anwendungsentwicklung von Drittanbietern bereitgestellt werden.

Was ist IaaS (Infrastructure as a Service)? | Red Hat DE

Infrastructure as a Service (IaaS) ist eine Art des Cloud Computing, bei dem Infrastruktur-Services über die Cloud bereitgestellt werden. IaaS - PaaS - SaaS im Vergleich

Ressourcen zu Cloud Services