Was ist FaaS (Function as a Service)?

FaaS (Function as a Service) ist aktuell noch einer der etwas unbekannteren Cloud-Dienste, zumindest wenn man Google Glauben schenken mag. Neben Funcion as a Service gibt es im Cloud Computing noch einige andere Dienste wie z.B. PaaS, SaaS etc. – die Unterschiede dabei sind fein und für Laien auf den ersten Blick nicht sofort nachvollziehbar. Deshalb sehen wir uns hier näher an, was genau Function as a Service ausmacht und wie es sich von den restlichen Diensten unterscheidet.

Function as a Service (FaaS) – kurz erklärt

Function as a Service (FaaS) ist ein Angebot aus dem sogenannten serverlosen Cloud Computing. Hier werden dem Anwender vom Provider einzelne Funktionen bereitgestellt, die genauestens abgerechnet werden. Dem Anwender wird dabei die genaue Infrastruktur des Anbieters verborgen – schließlich sind nur die Funktionen gebucht.

Diese gebuchten Funktionen wiederum melden Ergebnisse an den Anwender zurück und so können diese Daten wiederum zur Entwicklung, zum Betrieb oder zum Managen von Applikationen genutzt werden.

Function as a Service - Definition

Definition: Was versteht man unter FaaS?

Function as a Service ist auch als Serverless Computing bekannt und bietet eine weiter Option zur Bereitstellung von Anwendungen in einer Cloud. Das Computing-Modell FaaS ist dabei ereignisgesteuert und wird in sogenannten Stateless-Containern ausgeführt. Seine Funktionen verwalten mit Hilfe von Services sowohl den Status als auch die serverseitige Logik.

Entwickler können mit FaaS diese Anwendungspakete als Funktionen sowohl entwickeln als auch ausführen und verwalten, ganz ohne dafür eine eigene Infrastruktur bereitzustellen oder zu unterhalten. Funktion wird hier als Softwarekomponente verstanden, mittels der eine geschäftliche Logik ausgeführt wird. Eine Anwendung kann z.B. aus mehreren Funktionen bestehen.

Serverless Computing kann mittels FaaS implementiert werden. Entwickler schreiben dabei eine Geschäftslogik, die in Containern ausgeführt und vollständig auf einer Plattform verwaltet wird.

Applikationen können im FaaS-Modell mit einer Serverless-Architektur erstellt werden. Entwickler suchen hier jedoch aufgrund der stetig steigenden Popularität des Serverless-Modells immer häufiger nach alternativen Lösungen zur Erstellung von Stateless-Containern oder Serverless Microservices.

Wie funktioniert Function as a Service?

Im Gegensatz zu PaaS (Platform as a Service) erfordert Faas keine Serverprozesse, die permanent im Hintergrund ausgeführt werden müssen. Dennoch steht Function as a Service jederzeit zur Verfügung, da es im Normalfall nach Nutzung bzw. über ein ereignisgesteuertes Ausführungsmodell berechnet wird. PaaS-Lösungen entwickeln jedoch die Bereitstellung von Serverless-Funktionen fortlaufend weiter, sodass die Grenzen zwischen FaaS und Paas immer weiter verwischt werden.

Function as a Service-Dienste funktionieren nach dem Prinzip Request/Response. Das heißt, eine Funktion wird durch durch eine Aktion (Tricker, Event oder Request) aufgerufen. Dann liefert sie – nach Ausführung – das Ergebnis und wird wieder dann wieder beendet. Dabei existiert kein laufender Prozess, die Funktion ist sozusagen zustandslos. Es fällt in den Aufgabenbereich der Applikation, Daten und anfallende Zustände abzuspeichern.

Eine Applikation, die Function as a Service nutzt, kann theoretisch ohne eine Zeile Code erstellt werden. Es wird lediglich eine Benutzeroberfläche benötigt, falls vom FaaS-Anbieter keine zur Verfügung gestellt wird. Anwendungen können so komplett Serverless gebaut werden.

Function as a Service stellt keine Daten zum Abruf bereit, das ist wichtig zu verstehen. Die Daten werdem vom Anwender der Funktion übergeben und dann erst verarbeitet. Selbstverständlich wäre es möglich, eingehende Anwenderdaten mit eigenen Daten anzureichern, das entspricht dann jedoch keinem klassischen FaaS-Szenario. Funktional betrachtet ist Function as a Service mehr als nur eine simple Datenbank-Abfrage.

Vorteile von FaaS?

Neben der effizienten und kostengünstigen Migration in die Cloud bietet Function as a Service noch einige weitere Vorteile:

Vereinfachung der Logistik für Entwickler

Erhebliche Vereinfachung der Bereitstellung von Anwendungsupdates und auch von neuem Code für sämtliche Nutzer.

Durch die vollständtige Optimierung und Auslagerung des Managements der Serverinfrastruktur, kann ein Softwareentwickler seine Seit in das investieren, was er am besten kann. So wird mehr Agilität gewährleistet und auch schneller Updates und eine höherer Reaktionsfähigkeit bei Wünschen durch Kunden ist gegeben.

Hochgradige Skalierbarkeit

Sämtliche Cloud Services sind hoch skalierbar – immerhin zählt das zu den schlagkräftigsten Argumenten des Cloud Computings. Der größte Unterschied bei FaaS ist der, dass die unabhängige und automatische Saklierung von einzelnen Funktionen auf Basis der jeweiligen Nutzung ermöglicht wird.

So wird eine hoch effiziente Nutzung von Rechenressourcen erreicht, da im Vergleich zur Skalierung von einzelnen Microservices (oder auch von gesamten Anwendungen) sehr wenig verschwendet wird.

Niedrigere Kosten im Voraus

Softwareentwicklungsteams müssen beim FaaS-Servicemodell weniger Geld im Vorfeld investieren, da eine einfache Auslagerung von Hardware, Betriebssystemen oder anderer IT-Infrastruktur möglich ist.

Die Anscahffung eines dedizierten Servers ist teuer und oft ist dieser dann nicht ausgelastet. Pay-as-you-go-Modelle wie FaaS hingegen stellen sicher, dass letztendlich nur für tatsächlich genutzte Rechenressourcen aufgekommen werden muss.

Hoher Qualitätsstandard

Durch das Management der Infrastruktur bringt FaaS große Vorteile bezogen auf Verfügbarkeit, Sicherheit, Toleranz oder andere Wartungsaufgaben mit, die früher vom Softwareentwickler selbst erledigt werden mussten. Ein gewisser Standard ist also stets von Anfang an gegeben.

Elastische Ausführung

FaaS ermöglicht eine elastische Ausführung von Funktionen, sodass sie nur bei Bedarf aktiviert werden. Dadurch können Sie effizient mit variabler Workload umgehen und Ressourcen sparen, wenn Funktionen nicht benötigt werden.

Einfache Integration

FaaS bietet Integrationen mit anderen Diensten und Tools, sodass man problemlos Funktionen mit verschiedenen Technologien kombinieren kann. Dies ermöglicht eine nahtlose Integration in die bestehende Architektur und erleichtert die Entwicklung von End-to-End-Lösungen.


Das könnte Sie ebenfalls interessieren:


Nachteile von FaaS

Laufzeitbeschränkungen

FaaS-Plattformen können bestimmte Laufzeitbeschränkungen für Funktionen haben, was bedeutet, dass Funktionen nach einer festgelegten Zeit automatisch beendet werden, was die Ausführung von langwierigen oder rechenintensiven Aufgaben einschränken kann.

Komplexität bei großen Anwendungen

FaaS ist möglicherweise nicht die beste Wahl für umfangreiche Anwendungen mit vielen Funktionen, da die Verwaltung und Koordination von verschiedenen Funktionen komplex sein kann und möglicherweise eine zusätzliche Überwachung und Orchestrierung erfordert.

Vendor-Lock-in

Beim Einsatz einer spezifischen FaaS-Plattform besteht das Risiko eines Vendor-Lock-ins, da die Anwendung eng mit den Diensten und APIs des Anbieters verbunden ist und ein Wechsel zu einer anderen Plattform zusätzlichen Aufwand erfordern kann.

Begrenzte Kontrolle über die Infrastruktur

Da FaaS die Infrastruktur abstrahiert, haben Entwickler weniger Kontrolle über die zugrunde liegende Hardware und Netzwerkkonfiguration, was in einigen Fällen Einschränkungen für spezielle Anforderungen bedeuten kann.

Potenzielle Kostenauswirkungen bei hohem Durchsatz

Bei Anwendungen mit hohem Durchsatz kann die Nutzung von FaaS-Plattformen zu höheren Kosten führen, da die Abrechnung pro Funktion erfolgt und bei ständiger hoher Auslastung möglicherweise teurer ist als der Betrieb von eigenen Serverinstanzen.

Vor- und Nachteile von FaaS im Schnellüberblick:

VorteileNachteile
Vereinfachung der Logistik für EntwicklerLaufzeitbeschränkungen
Hochgradige SkalierbarkeitKomplexität bei großen Anwendungen
Niedrigere Kosten im VorausVendor-Lock-in
Hoher QualitätsstandardBegrenzte Kontrolle über die Infrastruktur
Elastische AusführungPotenzielle Kostenauswirkungen bei hohem Durchsatz
Einfache Integration

Anbieter für FaaS

Zu den aktuell beliebtesten FaaS-Angeboten bzw. Anbietern zählen:

AnbieterBeschreibungMerkmale & FunktionenVorteileNachteile
AWS LambdaAWS Lambda ist einer der führenden FaaS-Anbieter und bietet eine umfassende Palette von Funktionen, Integrationen und Skalierungsmöglichkeiten.– AWS Lambda verbindet sich mit anderen AWS-Tools
– Mit Amazon CloudWatch lässt sich die Leistung des Programms überwachen
– Es sind über 200 Integrationen mit SaaS-Tools möglich
– Die Bereitstellung von Docker-Containern ist möglich (AWS hat diese Funktion im Dezember 2020 eingeführt)
– Mithilfe der Lambda API oder des Amazon API-Gateways kann ein eigenes Backend erstellt werden
– Funktionen können als Container-Images bereitgestellt werden
– Man kann sich mit relationalen Datenbanken über Amazon RDS Proxy verbinden
– Es kann gewählt werden, wie viel Speicherplatz jeder Funktion zugewiesen werden soll
– Wenn AWS noch nicht in Nutzung ist, wird die Einrichtung viel Mühe und Zeit kosten
Microsoft Azure FunctionsAzure Functions von Microsoft Azure ermöglicht die serverlose Entwicklung von Funktionen und bietet eine nahtlose Integration mit anderen Azure-Diensten.– Die Verbindung deiner Funktionen ist mit über 250 Konnektoren in Azure Logic Apps möglich
– Unterstützt werden JavaScript, C#, F#, Powershell, PHP, Python und Java
– Für neue Benutzer sind viele Tutorials vorhanden
– Mit Azure Application Insights kannst Du dein Programm analysieren
– Azure Functions verwendet ein integriertes Programmiermodell
– Gut geeignet für Teams, die DevOps einsetzen
– Es sind mehrere Pläne verfügbar
– Weder Node.js noch Ruby werden von Azure Functions unterstützt
Google Cloud FunctionsGoogle Cloud Functions ermöglicht das Ausführen von Code in einer serverlosen Umgebung und bietet eine einfache Integration mit anderen Google Cloud-Services.– Über CloudTrace und CloudDebugger sind Debugging und Logging in Google Cloud Functions integriert
– Es werden Trigger von Google Assistant, Google Cloud, Firebase oder jeder Anwendung verwendet, die HTTP nutzt
– Google Cloud Functions kann mit vielen Google-Partnern integriert werden
– Auf Wunsch ist die Nutzung von Multi-Cloud- oder Hybrid-Fähigkeiten möglich
– Google Cloud Functions sind quelloffen, sodass problemlos zu einer anderen FaaS-Plattform gewechselt werden kann, wenn man das möchte
– Die Nutzung ist sehr einfach
– Neuen Nutzern werden durch Google viele kostenlose Ressourcen zur Verfügung gestellt
Die Container-basierten Dienste von Google Cloud Function sind weniger fortschrittlich als andere FaaS-Anbieter

Diese Anbieter bieten umfassende Funktionen, gute Dokumentation und Support für Kunden im deutschsprachigen Raum. Es ist wichtig zu beachten, dass die Wahl des Anbieters auch von den spezifischen Anforderungen, dem Budget und den Vorlieben des Unternehmens oder Entwicklers abhängt.

Außerdem möchten wir an dieser Stelle noch OpenFaas (Open Source) nennen. Der Hauptunterschied zwischen OpenFaaS und den oben genannten Anbietern wie AWS Lambda, Microsoft Azure Functions und Google Cloud Functions besteht darin, dass OpenFaaS eine selbstgehostete Open-Source-Plattform ist, während die anderen Anbieter Cloud-basierte FaaS-Dienste bereitstellen.

Bereitgestellte Funktionen bzw. Anwendungen mittels FaaS

Function as a Service ermöglicht die Bereitstellung verschiedener Funktionen. In folgende Typen können die Einsatzszenarien der Funktionen unterteilt werden:

  • Web-Requests
  • geplante Jobs und Tasks
  • Queue-Messages
  • manuelle gestartete Tasks
  • Sprachassistenz

Function as a Service am Beispiel des Sprachassistenten Alexa

Ein Anwendungsbeispiel für Function as a Service ist die Abfrage einer vollständigen Anfrage an einen intelligenten Sprachassistenten wie Alexa, beispielsweise “Wie wird das Wetter in Frankfurt übermorgen sein?”. Das Ergebnis wird von der Anfragenden Anwendung weiterverarbeitet. Die Funktion bleibt nach der Bereitstellung des Ergebnisses direkt wieder anwendbar und befindet sich immer im gleichen Zustand.

Wie unterscheiden sich das FaaS- und das Serverless-Modell?

FaaS und Serverless waren zu Beginn als Begrifflichkeit mehr oder weniger gleichgestellt, Serverless hat sich jedoch zwischenzeitlich stark erweitert (mehr Architekturmuster und auch -praktiken). So ist bei Serverless neben der kodierten Geschäftslogik auch die vermehrte Nutzung von allgemeinen Services möglich.

Sowohl Microservices als auch traditionelle Apps können Serverless nutzen, wenn sowohl die Anforderungen für dynamisches Skalieren und Statusmanagement eingehalten werden, als auch die nötige Containerisierung.

Serverless steht außerdem auch für verwaltete Services, mit deren Systemausführung weder Entwickler noch Administratoren etwas zu tun haben (z.B. Messaging-Systeme und Datenbanken). Deren Handhabung erfolgt über einen Cloud-Anbieter selbst oder auch einen Drittanbieter.

SQFY Signature Hintergrund
Cloud Legacy Podcast

Kennen Sie bereits unseren Podcast Cloud Legacy?

Im wöchentlichen Podcast direkt aus der Cloud dreht sich alles um Cloud Projekte, Digitalisierung, Best Practices, neue Entwicklungen und einen Blick hinter die Kulissen von Cloud Infrastruktur und IT Security. Als langjähriger IT-Experte mit über 22 Jahren Erfahrung teilt Markus Prahl sein Expertenwissen und spricht über abgeschlossene oder laufende IT Projekten – immer wieder auch mit spannenden Gästen. Wenn Sie mehr über die Cloud erfahren möchten, ist Cloud Legacy die richtige Anlaufstelle – viel Spaß!

Wie wird Function as a Service abgerechnet?

FaaS wird in der Regel auf der Grundlage des tatsächlichen Verbrauchs abgerechnet. Es gibt verschiedene Abrechnungsmodelle, die von den Anbietern angeboten werden, aber im Allgemeinen gibt es zwei Hauptfaktoren, die die Kosten beeinflussen:

  1. Ausführungszeit: Die Zeit, die Ihre Funktionen ausgeführt werden, wird gemessen und in Rechnung gestellt. Die Abrechnung erfolgt normalerweise in Millisekunden oder Sekunden und basiert auf der Dauer der Ausführung Ihrer Funktionen.
  2. Ressourcenverbrauch: Die Menge an Rechenleistung, Speicher und anderen Ressourcen, die Ihre Funktionen während der Ausführung verbrauchen, beeinflusst ebenfalls die Kosten. Die genauen Preise können je nach Anbieter und deren spezifischen Abrechnungsmodellen variieren.

Es ist wichtig zu beachten, dass viele Anbieter auch eine kostenlose Kontingentstufe oder Freikontingente für FaaS-Dienste anbieten, um den Einstieg zu erleichtern und Entwicklern die Möglichkeit zu geben, FaaS auszuprobieren, bevor sie für den tatsächlichen Verbrauch bezahlen.

Wir empfehlen, die genauen Preise und Abrechnungsmodelle der jeweiligen FaaS-Anbieter zu prüfen, da diese variieren können und zusätzliche Kosten für andere verwandte Dienste wie Speicher oder Netzwerkverkehr entstehen können.

Function as a Service - so funktioniert es

FAQ – Häufige Fragen zu Function as a Service

Was ist Function as a Service (FaaS)?

Function as a Service (FaaS) ist ein Cloud-Computing-Modell, bei dem Entwickler einzelne Funktionen erstellen und ausführen können, ohne sich um die zugrunde liegende Infrastruktur kümmern zu müssen. FaaS ermöglicht eine granulare Abrechnung und Skalierbarkeit, da Funktionen nur bei Bedarf ausgeführt werden.

Was versteht man unter FaaS?

FaaS = Function as a Service: Hierbei handelt es sich um einen Cloud Computing Dienst, der im Rahmen von “Serverless Computing” zwischen BaaS und SaaS einzuordnen ist.

Wie funktioniert Function as a Service (FaaS)?

Bei FaaS laden Entwickler ihre Funktionen auf eine FaaS-Plattform hoch, die den Code bereitstellt und die Ausführung verwaltet. Die Funktionen werden automatisch skaliert und bei Bedarf ausgeführt. Die Entwickler zahlen nur für die tatsächlich genutzte Rechenleistung, ohne sich um die Bereitstellung oder Verwaltung von Infrastruktur kümmern zu müssen.

Was ist FaaS Software?

Software as a Service ist keine Software per se, sondern vielmehr ein Lizenz- und Vertriebsmodell, mittels dem Software-Anwendungen über das Internet angeboten werden. Die Nutzung dieses Services erfolgt im Normalfall auf Basis eines Abonnements.

Welche Vorteile bietet Function as a Service (FaaS)?

FaaS bietet Vorteile wie eine verbesserte Skalierbarkeit, eine granulare Abrechnung, eine schnellere Entwicklung, da sich Entwickler auf die Funktionen konzentrieren können, und eine reduzierte Betriebskomplexität, da die zugrunde liegende Infrastruktur von den Anbietern verwaltet wird.

Gibt es auch Nachteile von FaaS?
  • Kaltstartprobleme: Bei selten genutzten Funktionen kann es zu Latenzproblemen kommen, da eine “kalte” Funktion bei der Ausführung eine gewisse Initialisierungszeit benötigt.
  • Einschränkungen der Ausführungszeit: FaaS-Plattformen haben oft maximale Ausführungszeitlimits für Funktionen, die je nach Anbieter variieren können.
  • Komplexität des Debugging: Das Debuggen von Funktionen kann herausfordernder sein als bei traditionellen Anwendungen, insbesondere in komplexen Umgebungen.
Für welche Anwendungsfälle eignet sich Function as a Service (FaaS)?

FaaS eignet sich gut für Anwendungsfälle wie serverlose Backend-Verarbeitung, Echtzeitdatenverarbeitung, Webhooks, Microservices und IoT-Datenverarbeitung. Es ist besonders nützlich für Anwendungen, die eine schnelle Skalierbarkeit und eine granulare Abrechnung erfordern.

Welche Anbieter gibt es für FaaS?

Zu den beliebtesten FaaS-Angeboten bzw. Anbietern zählen:

  • AWS Lambda
  • Google Cloud Functions
  • Microsoft Azure Functions (Open Source)
  • OpenFaas (Open Source)

Welche Sprachen und Plattformen unterstützen FaaS?

Die unterstützten Sprachen und Plattformen variieren je nach Anbieter. Typischerweise unterstützen FaaS-Dienste jedoch beliebte Programmiersprachen wie JavaScript, Python, Ruby, Java und C#. Gängige Cloud-Provider, die FaaS-Dienste anbieten, sind Amazon Web Services (AWS) mit Lambda, Microsoft Azure mit Azure Functions und Google Cloud Platform mit Cloud Functions.

Wofür wird FaaS verwendet?

FaaS findet Anwendung in verschiedenen Szenarien, darunter:

  • Serverlose Webanwendungen: Für bestimmte Funktionen oder APIs kann FaaS eine kostengünstige und effiziente Lösung bieten.
  • Datenverarbeitung und -analyse: FaaS kann für die Verarbeitung von Daten in Echtzeit oder für die Ausführung von Analysen verwendet werden.
  • Automatisierung: Das Auslösen von Funktionen durch Ereignisse ermöglicht die Automatisierung von Prozessen.
Ist FaaS dasselbe wie serverlose Architektur?

FaaS ist ein wichtiger Bestandteil der serverlosen Architektur, aber nicht dasselbe. Serverlose Architektur bedeutet, dass Entwickler nicht mehr selbstständig physische Server verwalten müssen. FaaS ist nur ein Teil dieses Konzepts und konzentriert sich auf die Ausführung von Funktionen in einer serverlosen Umgebung.

Welche Sicherheitsaspekte sind bei FaaS zu berücksichtigen?

Bei der Verwendung von FaaS ist es wichtig, die Zugriffskontrolle, die Abgrenzung von Funktionen und die sichere Handhabung von Benutzerdaten zu berücksichtigen. Unzureichende Sicherheitsmaßnahmen können potenzielle Angriffsvektoren bieten.

Kann ich bestehende Anwendungen auf FaaS migrieren?

Ja, es ist möglich, bestehende Anwendungen schrittweise auf FaaS umzustellen, indem Sie Funktionen auslagern und serverlose Dienste nutzen. Allerdings erfordert dies häufig eine Überarbeitung des Codes, um den serverlosen Charakter zu berücksichtigen.

Bietet FaaS auch Möglichkeiten zur Integration mit anderen Diensten?

Ja, FaaS-Dienste lassen sich normalerweise gut in andere Cloud-Services integrieren. Sie können Funktionen beispielsweise mit Datenbanken, Speicherdiensten, Benachrichtigungen oder anderen Cloud-Ressourcen verbinden, um umfassende Anwendungen zu entwickeln.

SQFY Signature Hintergrund

Steigern Sie die Agilität und Effizienz Ihrer Cloud-Entwicklung mit Function as a Service (FaaS). Befreien Sie sich von der Infrastrukturverwaltung und konzentrieren Sie sich auf die Entwicklung von Funktionen.

Mit FaaS skalieren Sie automatisch und zahlen nur für die tatsächlich genutzte Rechenleistung.

Unser erfahrenes Team von Cloud-Experten arbeitet mit führenden FaaS-Anbietern zusammen, um maßgeschneiderte Lösungen für Ihre Anforderungen zu bieten. Lassen Sie uns gemeinsam Ihre Cloud-Strategie optimieren und das volle Potenzial von Function as a Service ausschöpfen.

Markus Prahl - IT Security Spezialist - Gründer und Geschäftsführer von Sequafy

Markus Prahl | Gründer & Geschäftsführer

m.prahl@sequafy.com
+49 (89) 2170446 0

Klicken Sie auf den unteren Button, um den Inhalt von Meetergo zu laden.

Inhalt laden