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.
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.
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
Der FaaS-Workflow kann einfach und effizient sein. Sie basiert oft auf einem ereignisgesteuerten Modell, bei dem Aktionen Ihren Code auslösen.
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 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.
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.
Wenn Ihre Anwendung sofortige Antworten erfordert, können Sie mit diesen Schritten die Latenz minimieren.
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.
Weitere Informationen zu Function as a Service und serverlosem Computing finden Sie in diesen Ressourcen.
Profitieren Sie von einem Guthaben über 300 $, um Google Cloud und mehr als 20 „Immer kostenlos“ Produkte kennenzulernen.