Function as a Service (FaaS)
Im Bereich des Cloud Computings haben sich in den vergangenen Jahren eine Reihe von IT-Lösungen entwickelt, die Nutzern vor allem durch die ortsunabhängige Verfügbarkeit und die flexible Nutzung bei der Anwendung Vorteile bieten. Der wohl bekannteste Bereich, Software as a Service oder kurz SaaS, umfasst alle Arten von Software, die über eine Internetverbindung genutzt werden können, ohne eine lokale Version besitzen zu müssen.
Function as a Service bzw. FaaS beschreibt Anwendungspakete, die von Entwicklern entwickelt, verwaltet und ausgeführt werden. Gleichzeitig wird für deren Management keine eigene Infrastruktur benötigt. Diese wird vom Anbieter des Service bereitgestellt. Die Entwicklung der Funktionen findet isoliert in sogenannten Containern statt. Datenverarbeitung oder mobile Apps sind gängige Beispiele für Funktionen, die bei FaaS eine Anwendung finden. Wir erklären in diesem Artikel welche Bereiche Function as a Service abdeckt, wie Entwickler den Service nutzen können und zeigen die Vorteile und Nachteile der Cloud-Computing-Lösung.
- Inklusive Wildcard-SSL-Zertifikat
- Inklusive Domain Lock
- Inklusive 2 GB E-Mail-Postfach
Was ist FaaS?
Bei Function as a Service handelt es sich um einen Cloud Computing Service, mit dem Applikationen entwickelt und in Betrieb genommen werden können. Das Besondere: der Server, auf dem die Applikation läuft, sowie die Infrastruktur des Service liegen beim Anbieter, sodass alle damit verbundenen Dinge wie Wartungen oder regelmäßige Updates für die Entwickler entfallen. Diese können sich so ganz auf die Programmierung von Code in Form der benötigten Anwendungspakete fokussieren. Dabei bezeichnet der Begriff „Funktion“ eine Softwarekomponente, die oft nur über Sekunden ausgeführt wird. Anwendungen bestehen aus einer Funktion oder einer Vielzahl von Funktionen. Mit FaaS ist es auch möglich, Microservice-Komponenten zusammenzustellen, die aus einer Vielzahl an Funktionen bestehen.
Auch wenn viele der FaaS-Lösungen cloudbasiert abgerufen werden können, sind einige der FaaS-Architekturen auch lokal im Einsatz und werden in eigens geschaffenen Datenzentren installiert und gehostet. Die Nutzung der FaaS-Lösung stellt der Anbieter auf Basis der benötigten Rechenleistung und des genutzten Datenspeichers in Rechnung.
Wie funktioniert Function as a Service?
Durch Function as a Service erhalten Entwickler eine Methode zur Implementierung von Serverless Computing. Dazu wird eine Geschäftslogik innerhalb eines sogenannten Containers geschrieben, die Verwaltung erfolgt komplett über eine eigens dafür bereitgestellte Plattform. Eine solche Plattform wird üblicherweise in der Cloud genutzt, allerdings wird das Modell auch bereits mit lokalen und Hybrid-Bereitstellungen eingesetzt.
Die Besonderheit: FaaS folgt einer reaktiv ablaufenden Systematik, die durch Events gesteuert wird. Die Events werden durch bestimmte Anlässe ausgelöst, beispielsweise dem Klick auf einen Button, wodurch ein Abruf der dafür festgelegten Funktion erfolgt. Sobald der Abruf erfolgt ist, wartet der Service solange, bis ein erneuter Anlass generiert wird. Als Grundlage für die Funktionsweise von FaaS dient dabei, dass die Reaktion auf den Anlass direkt gestartet und ausgeführt wird. Der Upload einer Image-Datei kann so beispielsweise eine Reaktion auslösen, die dazu führt, dass die Datei automatisch in ein bestimmtes Format konvertiert wird.
Zum Abruf der Ausführungen der Function-as-a-Service-Logik steht normalerweise jederzeit eine Infrastruktur zur Verfügung, ohne dass dazu im Hintergrund dauerhaft ausgeführte Serverprozesse erforderlich sind. Dies wirkt sich wiederum positiv auf die Skalierungsmöglichkeiten aus: Der Cloud-Anbieter stellt die Verfügbarkeit der definierten Funktionen sicher und sorgt für die sekundengenaue Ressourcenzuweisung. Die Folge: Wenn wenige Anfragen eintreffen, wird die Anwendung herunterskaliert. Bei FaaS werden immer die tatsächlich aufgewendeten Ressourcen berechnet – Standby-Zeiten fallen somit nicht an.
In der Praxis eignen sich zwei Anwendungsarten besonders gut für eine FaaS-Umsetzung: Selten ausgeführte Workloads und hochvolumige Transaktionen profitieren von der Wirkungsweise besonders.
Was ist der Unterschied zwischen FaaS und Saas?
Der grundlegende Unterschied zwischen FaaS und SaaS liegt im Umfang der Anwendungen der beiden Cloud Services. Während sich FaaS im Mikrokosmos der Anwendungslandschaft bewegt und auf einfache Funktionen beschränkt, erhalten Nutzer mit Software as a Service umfangreiche Anwendungen an die Hand.
Die Gemeinsamkeit liegt bei beiden Service-Arten darin, dass kein dezidierter Server bereitgestellt werden muss, um die Services zu nutzen. Damit fällt der gesamte Verwaltungs- und Wartungsaufwand weg, sodass die dadurch freiwerdenden Ressourcen für andere Projekte und Entwicklungen genutzt werden können.
Zu den SaaS-Lösungen zählen beispielsweise Google Drive oder Slack, die von einer Vielzahl von Unternehmen für die tagtäglichen Tasks genutzt werden. SaaS ist dabei oft vom Funktionsumfang klar definiert, sodass Entwickler auf zusätzliche Funktionen keinen Einfluss nehmen können. Im Gegensatz dazu definieren Entwickler bei FaaS die gewünschten Funktionen individuell nach den bestehenden Anforderungen.
Welche Vor- und Nachteile hat Function as a Service?
Vorteile von Faas
- Schnellere Entwicklung: Entwickler benötigen keine Zeit für die Konfiguration und Verwaltung von Servern. Alle verfügbaren Kapazitäten können somit verwendet werden, Anwendungslogiken zu schreiben und so schneller Anwendungen zu entwickeln.
- Automatische Skalierbarkeit: FaaS-Lösungen sind durch ihre Natur skalierbar. Damit sind Vorabüberlegungen über Auslastungen in Form von abgerufenen Datenmengen oder Nutzungsmengen unnötig. Die benötigte Skalierung erfolgt automatisch durch den Anbieter und wird sekundengenau abgerechnet.
- Effiziente Kostenstrukturen: Bei Function as a Service wird nur das berechnet, was auch von Nutzern abgerufen wird. Kosten für eventuell vorgehaltene Ressourcen entstehen somit keine.
- Minimaler Verwaltungsaufwand: Sowohl das Hosting eines Servers als auch das Management und die Wartung der Server-Infrastruktur liegen bei FaaS nicht in den Händen der Entwickler.
- Freiheit in der Programmierung: FaaS-Lösungen sind meist in allen gängigen Programmiersprachen möglich, sodass keine zusätzlichen Programmierkenntnisse für die Implementierung notwendig sind.
Nachteile von Faas
- Eingeschränkte Gestaltungsmöglichkeiten: Da die Infrastruktur und deren Verwaltung beim Anbieter liegt, müssen Entwickler mit den vorgegebenen Systemen arbeiten. Für alle, die selbst die Server-Infrastruktur bestimmen, aber Ressourcen für die Wartung einsparen möchten, lohnt ein Blick auf Backend as a Service (BaaS).
- Erhöhte Komplexität beim Testing: FaaS-Code in eine lokale Testumgebung zu überführen, ist je nach Anbieter kein einfaches Unterfangen. Eine Anwendung zu testen, erfordert dadurch teils vermehrten Einsatz von Ressourcen.