Was ist Function as a Service (FaaS)?

Function as a Service (FaaS) ist ein Cloud-Computing-Modell, bei dem Sie kleine, modulare Codeabschnitte, sogenannte Funktionen, entwickeln und ein Cloud-Anbieter diese als Reaktion auf bestimmte Ereignisse ausführt. Bei diesem Modell konzentrieren Sie sich ganz auf die Codelogik, während die serverlose Laufzeitumgebung die Infrastruktur verwaltet. Der Cloud-Anbieter kümmert sich um die physische Hardware, das Betriebssystem und die Webserversoftware.

Das unterscheidet sich von herkömmlichen serverbasierten Anwendungen oder monolithischen Architekturen. Bei diesen älteren Modellen verwalten Sie in der Regel einen Server, der kontinuierlich ausgeführt wird, auch wenn niemand Ihre Anwendung verwendet. Bei FaaS führt die Plattform Ihren Code nur aus, wenn ein bestimmtes Ereignis ihn auslöst. So können Sie Anwendungen effizient entwickeln, da Sie Ressourcen nur bei Bedarf nutzen.

FaaS, PaaS und IaaS im Vergleich

Es ist hilfreich zu verstehen, wie FaaS im Vergleich zu anderen Cloud-Dienstmodellen wie Platform as a Service (PaaS) und Infrastructure as a Service (IaaS) abschneidet. FaaS gehört zwar zur Kategorie „serverlos“, bei der der Anbieter die Server verwaltet, bietet aber eine eigene Abstraktionsebene. Serverlos umfasst jeden Dienst – wie Datenbanken, Speicher oder Computing –, bei dem der Anbieter die Server verwaltet. FaaS ist speziell der Compute-Teil des serverlosen Angebots, der Code als Reaktion auf Ereignisse ausführt.

  • FaaS konzentriert sich auf ereignisgesteuerten Code. Sie stellen eine einzelne Funktion bereit, die als Reaktion auf ein Ereignis, z. B. einen Dateiupload, eine bestimmte Aufgabe ausführt. Die Plattform übernimmt die automatische Skalierung, bei Inaktivität oft bis auf null.
  • PaaS bietet eine Plattform zum Erstellen und Ausführen von kompletten Anwendungen. Bei PaaS müssen Sie sich zwar auch nicht um Hardware und Betriebssysteme kümmern, aber Ihre Anwendung läuft in der Regel kontinuierlich und wartet auf Nutzeranfragen. Sie eignet sich am besten für vollständige Webanwendungen und weniger für einzelne Ereignistrigger.
  • IaaS bietet die größte Kontrolle, erfordert aber auch den größten Verwaltungsaufwand. Sie mieten virtuelle Maschinen (VMs) und Speicher, sind aber für die Verwaltung des Betriebssystems, der Laufzeiten und der Middleware verantwortlich.

Vergleich von Cloud-Dienstmodellen

Funktion

FaaS (Function as a Service)

PaaS – Platform as a Service

IaaS – Infrastructure as a Service

Primäre Einheit

Eine einzelne Funktion (kleines Code-Snippet)

Eine gesamte Anwendung

Virtuelle Maschinen (VMs)

Skalierbarkeit

Sofortige Skalierung pro Anfrage (auch auf null)

Langsamer, Skalierung basierend auf konfigurierten Regeln

Manuelles oder vorkonfiguriertes Autoscaling

Preismodell

Zahlung pro Ausführungszeit (Millisekunden)

Bezahlung für laufende Ressourcen (Verfügbarkeit)

Bezahlung für zugewiesene Ressourcen (Größe/Zeit)

Wartung

Keine (der Anbieter verwaltet alles)

Geringer (Anbieter verwaltet Betriebssystem/Laufzeit)

Höher (Sie verwalten Betriebssystem, Updates, Patches)

Optimal für

Ereignisgesteuerte Aufgaben, Klebecode, Datenverarbeitung

Web-Apps, Dienste mit langer Laufzeit

Legacy-Anwendungen, komplexe benutzerdefinierte Infrastruktur

Funktion

FaaS (Function as a Service)

PaaS – Platform as a Service

IaaS – Infrastructure as a Service

Primäre Einheit

Eine einzelne Funktion (kleines Code-Snippet)

Eine gesamte Anwendung

Virtuelle Maschinen (VMs)

Skalierbarkeit

Sofortige Skalierung pro Anfrage (auch auf null)

Langsamer, Skalierung basierend auf konfigurierten Regeln

Manuelles oder vorkonfiguriertes Autoscaling

Preismodell

Zahlung pro Ausführungszeit (Millisekunden)

Bezahlung für laufende Ressourcen (Verfügbarkeit)

Bezahlung für zugewiesene Ressourcen (Größe/Zeit)

Wartung

Keine (der Anbieter verwaltet alles)

Geringer (Anbieter verwaltet Betriebssystem/Laufzeit)

Höher (Sie verwalten Betriebssystem, Updates, Patches)

Optimal für

Ereignisgesteuerte Aufgaben, Klebecode, Datenverarbeitung

Web-Apps, Dienste mit langer Laufzeit

Legacy-Anwendungen, komplexe benutzerdefinierte Infrastruktur

Funktionsweise von Function as a Service

Der FaaS-Workflow kann einfach und effizient sein. Sie basiert oft auf einem ereignisgesteuerten Modell, bei dem Aktionen Ihren Code auslösen.

  1. Codebereitstellung: Sie schreiben ein kleines Stück Code oder eine Funktion, die eine einzelne Aufgabe ausführt, und laden es zu Ihrem Cloud-Anbieter hoch.
  2. Ereignisauslösung: Ein Ereignis tritt ein, z. B. ein Nutzer klickt auf einen Button, eine Datei wird in den Speicher hochgeladen oder eine Nachricht kommt in einer Warteschlange an.
  3. Ressourcenzuweisung: Der Cloud-Anbieter erkennt das Ereignis und stellt sofort die erforderliche Ausführungsumgebung bereit.
  4. Funktionsausführung: Ihr Code wird ausgeführt, erledigt seine Aufgabe und erzeugt ein Ergebnis, z. B. die Verarbeitung von Daten oder das Senden einer Benachrichtigung.
  5. Deaktivierung und Abrechnung: Sobald die Aufgabe abgeschlossen ist, werden die Ressourcen sofort freigegeben und Sie zahlen nur für die Millisekunden, in denen Ihr Code ausgeführt wurde.

Gängige Anwendungsfälle für FaaS

FaaS ist vielseitig und passt gut zu vielen modernen Anwendungsarchitekturen.

Sie können komplexe Anwendungen in kleine, unabhängige Teile zerlegen, die über Ereignisse kommunizieren.

FaaS eignet sich gut für Aufgaben wie das Ändern der Größe eines Bildes unmittelbar nach dem Hochladen durch einen Nutzer oder das Bereinigen von Daten, sobald sie eingehen.

Sie können Funktionen verwenden, um die Logik hinter mobilen Apps zu steuern oder Daten von Internet der Dinge-Geräten (IoT) zu verarbeiten.

Aufgaben, die in viele kleine, gleichzeitige Jobs aufgeteilt werden können, wie z. B. die Videocodierung, lassen sich mit FaaS sehr effizient ausführen.

Sie können herkömmliche geplante Aufgaben durch Funktionen ersetzen, die zu bestimmten Zeiten ausgeführt werden, um Wartungsarbeiten durchzuführen oder Berichte zu erstellen.

Die wichtigsten Vorteile von FaaS

Die Einführung der FaaS-Cloud-Technologie bietet Entwicklern und Unternehmen mehrere Vorteile.

Automatische, sofortige Skalierung

Ihre Anwendung kann einen plötzlichen Traffic-Anstieg von einem auf Tausende von Nutzern bewältigen, ohne dass Sie etwas manuell konfigurieren müssen.

Bessere Kostenkontrolle (nutzungsabhängige Abrechnung)

Sie zahlen nur, wenn Ihr Code ausgeführt wird. Das kann zu erheblichen Kosteneinsparungen führen, da Sie nicht für inaktive Server bezahlen müssen.

Höhere Entwicklungsgeschwindigkeit

Entwickler können Code schreiben und ihn schnell bereitstellen, ohne Zeit für die Serververwaltung oder die Einrichtung der Infrastruktur aufwenden zu müssen.

Konzentrieren Sie sich auf den Anwendungscode, nicht auf die Infrastrukturverwaltung.

Teams können ihre Energie darauf verwenden, Mehrwert für Kunden zu schaffen, anstatt Server zu patchen oder Betriebssysteme zu verwalten.

Hohe Verfügbarkeit und Ausfallsicherheit

FaaS-Plattformen führen Ihren Code in der Regel in mehreren Zonen aus. Wenn also ein Bereich ausfällt, funktioniert Ihre Anwendung weiterhin.

Häufiges Problem für Entwickler: „Kaltstart“

Eines der häufigsten Probleme, mit denen Entwickler bei FaaS konfrontiert sind, ist der „Kaltstart“. Wenn Ihre Funktion eine Weile nicht ausgeführt wurde, fährt der Cloud-Anbieter die Umgebung herunter, um Ressourcen zu sparen. Wenn das nächste Mal ein Ereignis diese Funktion auslöst, kommt es zu einer kurzen Verzögerung, während das System die Umgebung einrichtet und Ihren Code lädt. Diese Verzögerung, die als Kaltstart bezeichnet wird, kann Ihre Anwendung verlangsamen.

Kaltstarts reduzieren

Wenn Ihre Anwendung sofortige Antworten erfordert, können Sie mit diesen Schritten die Latenz minimieren.

  1. Codegröße reduzieren: Überprüfen Sie Ihren Code und entfernen Sie alle großen Bibliotheken oder Abhängigkeiten, die nicht unbedingt erforderlich sind. Je kleiner die Funktion, desto schneller lädt sie.
  2. Lazy Loading verwenden: Strukturieren Sie Ihren Code so, dass umfangreiche Variablen oder Verbindungen nur dann geladen werden, wenn sie tatsächlich in der Funktionslogik benötigt werden, und nicht sofort beim Start der Funktion.
  3. Mindestanzahl von Instanzen konfigurieren: Bei den meisten großen Cloud-Anbietern können Sie eine Mindestanzahl von Instanzen festlegen. So ist immer mindestens eine Instanz Ihrer Funktion einsatzbereit, sodass keine Startverzögerung auftritt.
  4. Schnellere Laufzeitumgebung auswählen: Einige Programmierspracheninterpreter wie solche für Go oder Python starten in der Regel schneller als andere, zum Beispiel Interpreter für Java. Wenn Geschwindigkeit entscheidend ist, sollten Sie latenzempfindliche Funktionen in einer performanteren Sprache schreiben.

Meistern Sie Ihre geschäftlichen Herausforderungen mit Google Cloud

Neukunden erhalten ein Guthaben im Wert von 300 $ für Google Cloud.

FaaS und Cloud Run Functions

Function as a Service beschreibt ein Cloud-Computing-Modell und Cloud Run Functions ist das Google Cloud-Produkt, das dieses Konzept umsetzt. Sie dient als skalierbare „Pay as you go“-FaaS-Lösung, mit der Sie Code ohne Serververwaltung ausführen können.

Wenn Sie Cloud Run Functions auswählen, entscheiden Sie sich für einen serverlosen Ansatz, bei dem Google Cloud die zugrunde liegende Infrastruktur verwaltet. Sie stellen den Code bereit und die Plattform verwaltet die Ausführungsumgebung, Betriebssystemupdates und Funktionen zur automatischen Skalierung. Dank dieser Integration können Sie Funktionen mit einem einzigen Zweck bereitstellen, die auf Ereignisse wie HTTP-Anfragen oder Datenänderungen reagieren, ohne eine virtuelle Maschine bereitzustellen.

Dieser Dienst kombiniert die einfache Bereitstellung von Funktionen mit der Leistungsfähigkeit der Cloud Run-Technologie. Entwickler können ereignisgesteuerte Anwendungen in Sprachen wie Python, Node.js, Go, Java, .NET oder Ruby erstellen. Da Cloud Functions auf der robusten Infrastruktur von Google ausgeführt wird, können Ihre Funktionen automatisch von 0 auf Tausende von Instanzen skaliert werden, um die Nachfrage zu decken.

Zusätzliche Ressourcen

Weitere Informationen zu Function as a Service und serverlosem Computing finden Sie in diesen Ressourcen.

  • Google Skills: Serverlose Anwendungen in Cloud Run entwickeln: Ein Lernpfad, der Sie durch das Erstellen und Bereitstellen von Anwendungen führt, ohne dass Sie die Infrastruktur verwalten müssen.
  • Dokumentation zu Cloud Run Functions: Die offizielle technische Dokumentation für den Einstieg, die Bereitstellung und die Verwaltung Ihrer Funktionen in Google Cloud.
  • Serverless Expeditions: Eine Videoserie von Google Cloud, in der serverlose Konzepte, Anwendungsfälle und Demos vorgestellt werden.
  • Eventarc: Ein vollständig verwalteter Dienst, mit dem Sie Ereignisse aus Google Cloud-Quellen einfach an Ihre Funktionen weiterleiten können.

Gleich loslegen

Profitieren Sie von einem Guthaben über 300 $, um Google Cloud und mehr als 20 „Immer kostenlos“ Produkte kennenzulernen.

Google Cloud