BLOG

Bei Serverless geht es nicht um Server, sondern um Apps

Lori MacVittie Miniaturbild
Lori MacVittie
Veröffentlicht am 12. Juni 2017

Das Konzept des „Serverless Computing“ sorgt für große Verwirrung. Das könnte daran liegen, dass der Name völlig falsch ist. Es geht weder um Server noch um Computer. Zumindest nicht im traditionellen Sinne des Wortes, in dem die meisten IT-Experten es verwenden.

Serverlos lässt sich viel besser als Functions as a Service (FaaS) bezeichnen, denn genau das bietet es. Im gleichen Sinne wie FaaS serverlos ist, gilt dies auch für SaaS und, wie man korrekterweise schließen könnte, für PaaS. Das liegt daran, dass der Server – die Rechenleistung – aus der Perspektive des Verbrauchers, in der Regel ein Entwickler, aus der Gleichung herausgenommen wird. Rechenressourcen (Server, Netzwerk) bleiben im Hintergrund verborgen und werden über ein Netz aus Automatisierung und Orchestrierung, das letztlich vom Dienstanbieter gesteuert wird, automatisch bereitgestellt, verwaltet und skaliert. Sie zahlen dafür, müssen es aber nie sehen.

Serverloses FaaS ist kein Ersatz für SaaS, PaaS oder die Cloud im Allgemeinen. Es handelt sich um eine weitere Option auf der Basis vorhandener Modelle, die Entwicklern die spannende Möglichkeit bietet, Funktionen bei Bedarf aufzurufen. Es ist ereignisgesteuert, das heißt, die Funktion wird durch ein Ereignis ausgelöst. Bei diesem Ereignis handelt es sich häufig um die Ausführung eines API-Aufrufs, der die Form einer HTTP-Anforderung mit einer ganz bestimmten URI hat. Ja, ein API-Aufruf.

Der am häufigsten genannte Anwendungsfall für FaaS ist die Bild- oder Videoverarbeitung. Dies liegt daran, dass der Ressourcenbedarf zwar oft unvorhersehbar ist, jedoch in Häufigkeit und Kapazität. FaaS bietet eine kostengünstige und effiziente Möglichkeit, diese Medien auf Anrufbasis zu verarbeiten. Ein weiteres Beispiel könnte mit dem IoT-Bereich zusammenhängen, wo Aktionen durch Ereignisse ausgelöst werden, die entweder über eine Controller-App oder vom Ding selbst auftreten. Und es gibt immer den API-Backend-Anwendungsfall , der für die meisten Leute oft sinnvoller ist als jeder andere Anwendungsfall, da APIs oft als URIs beschrieben werden, die Funktionen aufrufen.  Unabhängig davon, was die Funktion tut, wird sie nur ausgeführt, wenn sie durch ein bestimmtes Ereignis ausgelöst wird, und es handelt sich voraussichtlich um eine einzelne, isolierte Funktion.

App-Zerlegung

Dies ist nicht die Cloud, wie wir sie normalerweise sehen oder diskutieren. Das liegt daran, dass es bei der Cloud (IaaS) um Infrastruktur und Betrieb geht, während es bei FaaS (und PaaS und SaaS) um Applications geht. Sie sind als Entwicklungsumgebung gedacht, in der Entwickler Code implementieren können, um einige Aufgaben als Teil einer größeren Application auszuführen. Können Sie eine App aus mehreren FaaS-Implementierungen erstellen? Absolut. In dieser Hinsicht verhält sich FaaS zu SaaS tatsächlich wie Microservices zu Monolithen.

Aber genau das ist der Punkt. Bei FaaS geht es um Applications, nicht um Server. Mit FaaS können Sie keine Cloud implementieren, aber Sie können eine Application entwickeln. Sie können eine App nicht einfach in eine „serverlose“ Umgebung verschieben. Es muss dekonstruiert und dann neu aufgebaut bzw. als eine Sammlung von FaaS neu konzipiert werden.

Die Kombinationen (oder sind es Permutationen?) sind umfangreich. Man könnte FaaS zusammen mit PaaS aus einer in IaaS bereitgestellten App integrieren. IaaS und PaaS könnten vor Ort sein, während FaaS öffentlich ist.

Das Problem bei SaaS, PaaS und FaaS ist, dass Sie die „Server“ nie sehen. Dies gilt nicht für IaaS, wo wir Server „Instanzen“ nennen und diese verwalten und warten müssen. Denn bei IaaS – ob vor Ort oder öffentlich – geht es um die Bereitstellung von Infrastruktur und Betrieb, nicht um Applications. Das war schon immer so, aber wir konnten es im letzten Jahrzehnt ignorieren, weil „Server == Application“ so lange die Norm war.

Doch mit dem Aufkommen von Microservices und APIs und nun auch FaaS können wir nicht länger im Modus „Server == Application“ arbeiten, weil das einfach nicht mehr zutrifft.

Letzten Endes geht es bei FaaS nicht um Server oder wirklich um die Cloud (in dem Sinne, wie wir sie verstehen). Es handelt sich jedoch um einen erheblichen Wandel in der Art und Weise, wie wir Applications konzipieren und entwickeln.