FaaS - Function as a Service

Function as a Service (FaaS) ist ein Serverless-Computing-Konzept eines Cloud-Anbieters. Der Anbieter stellt einzelne Funktionen zur Verfügung, die von Anwendern bedarfsweise genutzt werden. In der Serverless-Umgebung kümmert sich der Anbieter um den Betrieb aller notwendigen Betriebsmittel zur Bereitstellung und sicherstellen der Verfügbarkeit der Dienste und Funktionen.
Die in Anspruch genommenen Funktionen werden sekundengenau nach Nutzung (Use), nach benötigter Rechenleistung oder Speicherbedarf abgerechnet. Für den Anwender entstehen Kosten nur bei realen Operationen, in denen tatsächlich Code verarbeitet wird. Die zugrundeliegenden Server verarbeiten in Abhängigkeit ihrer Auslastung auch noch andere Aufträge.

FaaS-Dienste funktionieren nach einem Request-Response-Prinzip. Eine Funktion wird durch ein Event, Trigger oder Request ausgelöst bzw. aufgerufen. Die Funktion wird ausgeführt, liefert das Ergebnis zurück und wird beendet. Ein laufender Prozess existiert dabei nicht. Die Funktion ist zustandslos. Anfallende Zustände und Daten müssen durch die aufrufende Applikation gespeichert werden.

Theoretisch lässt sich eine Applikation, die einen FaaS-Dienst nutzt, ohne eine Zeile Code erstellen. Man braucht nur eine Benutzeroberfläche, sofern der FaaS-Dienstanbieter keine zur Verfügung stellt. So lassen sich komplett „serverless“ betriebene Anwendungen bauen.

Es ist wichtig zu verstehen, dass Function as a Service keine Daten zum Abruf bereitstellt, sondern die Daten vom Anwender der Funktion übergeben und dann verarbeitet werden. Natürlich wäre es denkbar, dass die Funktion eingehende Anwender-Daten mit eigenen Daten anreichert. Aber das entspricht nicht dem klassischen FaaS-Szenario. Ein FaaS-Dienst ist funktional mehr als nur eine Datenbank-Abfrage.

Anwendungen für Function as a Service

  • Web-Requests
  • manuelle und automatisierte Jobs und Tasks
  • Queue-Messages
  • Sprach-Assistent

Beispiele für FaaS-Dienste und -Anbieter

  • Microsoft Azure Functions
  • Amazon AWS Lambda
  • Google Cloud Functions
  • IBM Cloud Functions
  • Oracle Cloud Fn

Vorteile von Function as a Service

Aus Nutzer-Sicht: FaaS-Dienste eignen sich sehr gut, um Applikationen zu entwickeln, zu betreiben oder zu managen, für die man keine eigene Infrastruktur betreiben möchte oder kann. Beispielsweise, weil man nicht das Know-how besitzt, weil es zu teuer ist oder nicht genug Man-power vorhanden ist.

  • potenzielle Kostenreduzierung
  • nutzungsabhängige Abrechnung
  • auf Kernkompetenzen konzentrieren

Aus Anbieter-Sicht: Die zustandslosen Funktionen sind sehr gut skalierbar. Sich verändernde Lasten lassen sich vergleichsweise einfach auf mehrere Systeme verteilen.

  • Services sind sehr gut skalierbar

Nachteile von Function as a Service

Aus Nutzer-Sicht: Bei der Entscheidung zur Nutzung einer Serverless-Umgebung muss eine Kosten-Nutzen-Abschätzung zwingend mit einfließen. Eventuell schließt sich der Einsatz aus Sicherheits- und Datenschutzgründen oder wegen zu starker Abhängigkeiten im Geschäftsmodell aus.

  • hohe Umsetzungsgeschwindigkeit möglich
  • nicht für alle Anwendungsfälle geeignet (Performance, Verfügbarkeit)
  • Einschränkungen beim Monitoring und Debugging
  • Vendor-Lockin wegen herstellerspezifischer Schnittstellen
  • begrenzte Migrationsfähigkeit in die Cloud
  • begrenzte Interoperabilität

Aus Anbieter-Sicht:

  • systembedingte starke Kundenbindung
  • Last nur bedingt voraussagbar

Weitere verwandte Themen:

Teilen

Produktempfehlungen

Alles was Sie über Netzwerke wissen müssen.

Netzwerktechnik-Fibel

Die Netzwerktechnik-Fibel ist ein Buch über die Grundlagen der Netzwerktechnik, Übertragungstechnik, TCP/IP, Dienste, Anwendungen und Netzwerk-Sicherheit.

Das will ich haben!

Alles was Sie über Netzwerke wissen müssen.

Netzwerktechnik-Fibel

Die Netzwerktechnik-Fibel ist ein Buch über die Grundlagen der Netzwerktechnik, Übertragungstechnik, TCP/IP, Dienste, Anwendungen und Netzwerk-Sicherheit.

Das will ich haben!