OpenFaaS: Funktionen in Containern skalierbar ausführen

OpenFaaS steckt einzelne Funktionen in Docker-Container und exponiert sie über ein Gateway. So lassen sich Functions as a Service bequem bereitstellen.

Artikel verschenken
In Pocket speichern vorlesen Druckansicht
OpenFaaS: Funktionen in Containern skalierbar ausführen

(Bild: stock.xchng)

Lesezeit: 13 Min.
Von
  • Dr. Christian Baun
  • Henry-Norbert Cocos
Inhaltsverzeichnis

Mit Functions as a Service (FaaS) hat sich in den letzten Jahren eine neue Kategorie von Diensten etabliert. Auch unter dem Schlagwort "Serverless Computing" propagiert, führt Faas einzelne Funktionen in der Infrastruktur eines Dienstanbieters aus. Als Voraussetzung benötigt OpenFaaS lediglich Docker und Docker Swarm als Orchestrierer. Alternativ kann Kubernetes verwendet werden. OpenFaaS bietet Templates für verschiedene Sprachen. Nach Anlegen der Funktion erstellt es daraus einen Docker-Container mit den nötigen Schnittstellen. Neben zahlreichen öffentlichen Angeboten existieren einige leistungsfähige freie Softwarepakete zum Bau einer privaten FaaS-Infrastruktur.

Im Umfeld rund um Serverless Computing bildet FaaS eine zentrale Komponente. Serverless-Applikationen verwenden stark abstrahierte Dienste und kombinieren diese zu komplexen Anwendungen. Beispielsweise könnte ein Aufruf einer URL anstoßen, dass eine Datei mit einem digitalen Wasserzeichen versehen und anschließend einem Nutzer zum Download angeboten wird. Das Einbinden des Wasserzeichens könnte eine Python-Funktion "as a Service" übernehmen. Komplexere Szenarien können auch KI-Dienste beinhalten. Im Fall einer privaten Cloud ändert sich hinsichtlich der Administration nichts: Dienstanbieter und -konsument gehören zur gleichen Organisationseinheit.

FaaS ist eine Unterkategorie der Plattformdienste (PaaS). Diese ermöglichen es ihren Kunden, eigene Webanwendungen in der Infrastruktur des Anbieters zu betreiben. Konkret handelt es sich bei einer PaaS um eine skalierbare Laufzeitumgebung, die den Webanwendungen der Kunden Infrastrukturdienste wie Speicher und Kommunikationsschnittstellen über APIs zur Verfügung stellt. Auf welche Sprachen die Nutzer für ihre Applikationen zurückgreifen können, hängt von der verwendeten Plattform ab – sei es ein öffentliches Angebot wie Googles AppEngine, Microsofts Azure Platform, AWS Elastic Beanstalk oder eine freie Lösung wie AppScale.