Im Bereich des Cloud Com­pu­tings haben sich in den ver­gan­ge­nen Jahren eine Reihe von IT-Lösungen ent­wi­ckelt, die Nutzern vor allem durch die orts­un­ab­hän­gi­ge Ver­füg­bar­keit und die flexible Nutzung bei der Anwendung Vorteile bieten. Der wohl be­kann­tes­te Bereich, Software as a Service oder kurz SaaS, umfasst alle Arten von Software, die über eine In­ter­net­ver­bin­dung genutzt werden können, ohne eine lokale Version besitzen zu müssen.

Function as a Service bzw. FaaS be­schreibt An­wen­dungs­pa­ke­te, die von Ent­wick­lern ent­wi­ckelt, verwaltet und aus­ge­führt werden. Gleich­zei­tig wird für deren Ma­nage­ment keine eigene In­fra­struk­tur benötigt. Diese wird vom Anbieter des Service be­reit­ge­stellt. Die Ent­wick­lung der Funk­tio­nen findet isoliert in so­ge­nann­ten Con­tai­nern statt. Da­ten­ver­ar­bei­tung oder mobile Apps sind gängige Beispiele für Funk­tio­nen, die bei FaaS eine Anwendung finden. Wir erklären in diesem Artikel welche Bereiche Function as a Service abdeckt, wie Ent­wick­ler den Service nutzen können und zeigen die Vorteile und Nachteile der Cloud-Computing-Lösung.

KI-Assistent kostenlos – Ihr smarter All­tags­hel­fer
  • DSGVO-konform & sicher gehostet in Deutsch­land
  • Pro­duk­ti­vi­tät steigern – weniger Aufwand, mehr Output
  • Direkt im Browser starten – ohne In­stal­la­ti­on

Was ist FaaS?

Bei Function as a Service handelt es sich um einen Cloud Computing Service, mit dem Ap­pli­ka­tio­nen ent­wi­ckelt und in Betrieb genommen werden können. Das Besondere: der Server, auf dem die Ap­pli­ka­ti­on läuft, sowie die In­fra­struk­tur des Service liegen beim Anbieter, sodass alle damit ver­bun­de­nen Dinge wie Wartungen oder re­gel­mä­ßi­ge Updates für die Ent­wick­ler entfallen. Diese können sich so ganz auf die Pro­gram­mie­rung von Code in Form der be­nö­tig­ten An­wen­dungs­pa­ke­te fo­kus­sie­ren. Dabei be­zeich­net der Begriff „Funktion“ eine Soft­ware­kom­po­nen­te, die oft nur über Sekunden aus­ge­führt wird. An­wen­dun­gen bestehen aus einer Funktion oder einer Vielzahl von Funk­tio­nen. Mit FaaS ist es auch möglich, Mi­cro­ser­vice-Kom­po­nen­ten zu­sam­men­zu­stel­len, die aus einer Vielzahl an Funk­tio­nen bestehen.

Auch wenn viele der FaaS-Lösungen cloud­ba­siert abgerufen werden können, sind einige der FaaS-Ar­chi­tek­tu­ren auch lokal im Einsatz und werden in eigens ge­schaf­fe­nen Da­ten­zen­tren in­stal­liert und gehostet. Die Nutzung der FaaS-Lösung stellt der Anbieter auf Basis der be­nö­tig­ten Re­chen­leis­tung und des genutzten Da­ten­spei­chers in Rechnung.

Wie funk­tio­niert Function as a Service?

Durch Function as a Service erhalten Ent­wick­ler eine Methode zur Im­ple­men­tie­rung von Ser­ver­less Computing. Dazu wird eine Ge­schäfts­lo­gik innerhalb eines so­ge­nann­ten Con­tai­ners ge­schrie­ben, die Ver­wal­tung erfolgt komplett über eine eigens dafür be­reit­ge­stell­te Plattform. Eine solche Plattform wird üb­li­cher­wei­se in der Cloud genutzt, al­ler­dings wird das Modell auch bereits mit lokalen und Hybrid-Be­reit­stel­lun­gen ein­ge­setzt.

Die Be­son­der­heit: FaaS folgt einer reaktiv ab­lau­fen­den Sys­te­ma­tik, die durch Events gesteuert wird. Die Events werden durch bestimmte Anlässe ausgelöst, bei­spiels­wei­se dem Klick auf einen Button, wodurch ein Abruf der dafür fest­ge­leg­ten Funktion erfolgt. Sobald der Abruf erfolgt ist, wartet der Service solange, bis ein erneuter Anlass generiert wird. Als Grundlage für die Funk­ti­ons­wei­se von FaaS dient dabei, dass die Reaktion auf den Anlass direkt gestartet und aus­ge­führt wird. Der Upload einer Image-Datei kann so bei­spiels­wei­se eine Reaktion auslösen, die dazu führt, dass die Datei au­to­ma­tisch in ein be­stimm­tes Format kon­ver­tiert wird.

Zum Abruf der Aus­füh­run­gen der Function-as-a-Service-Logik steht nor­ma­ler­wei­se jederzeit eine In­fra­struk­tur zur Verfügung, ohne dass dazu im Hin­ter­grund dauerhaft aus­ge­führ­te Ser­ver­pro­zes­se er­for­der­lich sind. Dies wirkt sich wiederum positiv auf die Ska­lie­rungs­mög­lich­kei­ten aus: Der Cloud-Anbieter stellt die Ver­füg­bar­keit der de­fi­nier­ten Funk­tio­nen sicher und sorgt für die se­kun­den­ge­naue Res­sour­cen­zu­wei­sung. Die Folge: Wenn wenige Anfragen ein­tref­fen, wird die Anwendung her­un­ter­ska­liert. Bei FaaS werden immer die tat­säch­lich auf­ge­wen­de­ten Res­sour­cen berechnet – Standby-Zeiten fallen somit nicht an.

In der Praxis eignen sich zwei An­wen­dungs­ar­ten besonders gut für eine FaaS-Umsetzung: Selten aus­ge­führ­te Workloads und hoch­vo­lu­mi­ge Trans­ak­tio­nen pro­fi­tie­ren von der Wir­kungs­wei­se besonders.

Was ist der Un­ter­schied zwischen FaaS und Saas?

Der grund­le­gen­de Un­ter­schied zwischen FaaS und SaaS liegt im Umfang der An­wen­dun­gen der beiden Cloud Services. Während sich FaaS im Mi­kro­kos­mos der An­wen­dungs­land­schaft bewegt und auf einfache Funk­tio­nen be­schränkt, erhalten Nutzer mit Software as a Service um­fang­rei­che An­wen­dun­gen an die Hand.

Die Ge­mein­sam­keit liegt bei beiden Service-Arten darin, dass kein de­zi­dier­ter Server be­reit­ge­stellt werden muss, um die Services zu nutzen. Damit fällt der gesamte Ver­wal­tungs- und War­tungs­auf­wand weg, sodass die dadurch frei­wer­den­den Res­sour­cen für andere Projekte und Ent­wick­lun­gen genutzt werden können.

Zu den SaaS-Lösungen zählen bei­spiels­wei­se Google Drive oder Slack, die von einer Vielzahl von Un­ter­neh­men für die tag­täg­li­chen Tasks genutzt werden. SaaS ist dabei oft vom Funk­ti­ons­um­fang klar definiert, sodass Ent­wick­ler auf zu­sätz­li­che Funk­tio­nen keinen Einfluss nehmen können. Im Gegensatz dazu de­fi­nie­ren Ent­wick­ler bei FaaS die ge­wünsch­ten Funk­tio­nen in­di­vi­du­ell nach den be­stehen­den An­for­de­run­gen.

Welche Vor- und Nachteile hat Function as a Service?

Vorteile von Faas

  • Schnel­le­re Ent­wick­lung: Ent­wick­ler benötigen keine Zeit für die Kon­fi­gu­ra­ti­on und Ver­wal­tung von Servern. Alle ver­füg­ba­ren Ka­pa­zi­tä­ten können somit verwendet werden, An­wen­dungs­lo­gi­ken zu schreiben und so schneller An­wen­dun­gen zu ent­wi­ckeln.
  • Au­to­ma­ti­sche Ska­lier­bar­keit: FaaS-Lösungen sind durch ihre Natur ska­lier­bar. Damit sind Vor­ab­über­le­gun­gen über Aus­las­tun­gen in Form von ab­ge­ru­fe­nen Da­ten­men­gen oder Nut­zungs­men­gen unnötig. Die benötigte Ska­lie­rung erfolgt au­to­ma­tisch durch den Anbieter und wird se­kun­den­ge­nau ab­ge­rech­net.
  • Ef­fi­zi­en­te Kos­ten­struk­tu­ren: Bei Function as a Service wird nur das berechnet, was auch von Nutzern abgerufen wird. Kosten für eventuell vor­ge­hal­te­ne Res­sour­cen entstehen somit keine.
  • Minimaler Ver­wal­tungs­auf­wand: Sowohl das Hosting eines Servers als auch das Ma­nage­ment und die Wartung der Server-In­fra­struk­tur liegen bei FaaS nicht in den Händen der Ent­wick­ler.
  • Freiheit in der Pro­gram­mie­rung: FaaS-Lösungen sind meist in allen gängigen Pro­gram­mier­spra­chen möglich, sodass keine zu­sätz­li­chen Pro­gram­mier­kennt­nis­se für die Im­ple­men­tie­rung notwendig sind.

Nachteile von Faas

  • Ein­ge­schränk­te Ge­stal­tungs­mög­lich­kei­ten: Da die In­fra­struk­tur und deren Ver­wal­tung beim Anbieter liegt, müssen Ent­wick­ler mit den vor­ge­ge­be­nen Systemen arbeiten. Für alle, die selbst die Server-In­fra­struk­tur bestimmen, aber Res­sour­cen für die Wartung einsparen möchten, lohnt ein Blick auf Backend as a Service (BaaS).
  • Erhöhte Kom­ple­xi­tät beim Testing: FaaS-Code in eine lokale Test­um­ge­bung zu über­füh­ren, ist je nach Anbieter kein einfaches Un­ter­fan­gen. Eine Anwendung zu testen, erfordert dadurch teils ver­mehr­ten Einsatz von Res­sour­cen.
Zum Hauptmenü