Serverless Computing klingt in der Theorie perfekt für die Arbeit von Programmierer:innen, doch in der Praxis müssen sie einige Herausforderungen bewältigen.
Der Service setzt funktionale Einheiten für Anwendungen voraus, deren Laufzeit möglichst kurz ausfallen sollte. Nur so ist eine schnelle Kommunikation zwischen Client (Nutzer:innen der Anwendung) und Server gewährleistet. Der Provider führt automatisch für jede Anfrage eine neue Instanz der funktionalen Einheit aus, angepasst an die aktuelle Auslastung.
Bei zustandslosen (stateless) Anwendungen erfolgt dies problemlos. Viele Webanwendungen sind jedoch zustandsorientiert (stateful) aufgebaut und müssen zum Beispiel auf Datenbanken zugreifen oder Daten darin speichern. Die Logik der Workflows verschiebt sich dabei hin zum Client – erst recht bei der Nutzung von Single Page Applications (SPA). Diese Einzelseiten-Webanwendungen laden Inhalte dynamisch nach und verstärken die Last noch.
Ein Beispiel dafür ist der Warenkorb in einem Online-Shop: Die Anwendung merkt sich den Inhalt des Warenkorbs und auch nach einem erneuten Laden der Seite bleiben dessen Einträge erhalten. Soll dies im Rahmen des Serverless Computings erfolgen, müssen die Anwendungen entsprechend angepasst werden. Wie bei anderen Cloud-Services, bei denen die Anwender:innen viele Aufgaben an den Service-Provider übertragen (wie zum Beispiel bei PaaS), ergeben sich auch beim Serverless Computing mögliche Nachteile aus diesem Prinzip:
erschwertes Debugging: Die Wartung und Fehlerbehebung innerhalb der angebotenen Module ist von Seiten der Anwender:innen schwierig bis unmöglich. Tiefere Einblicke in die Backend-Prozesse (etwa mittels Debugger) bleiben meist verwehrt.
aufwendiges Logging: Die ganzheitliche Protokollierung der Softwareprozesse wird durch die Modularisierung der einzelnen Funktionen erheblich komplexer.
umständliches Monitoring: Auch die Nachvollziehbarkeit und Auswertung der Logdaten gestaltet sich aufwendiger.
Kontrollverlust: Während Anwender:innen große Kontrolle und Möglichkeiten zur Individualisierung einzelner FaaS-Komponenten innerhalb ihres Backends besitzen, geben sie die Kontrolle über alle vom Anbieter betriebenen Komponenten komplett ab. Ähnlich wie bei PaaS kann sich dieser Vorteil schnell in einen Nachteil verwandeln, wenn die Infrastruktur, auf denen Serverless Computing betrieben wird, nicht ordnungsgemäß arbeitet.
Abhängigkeit vom Provider: Durch die Abgabe der Kontrolle über die Infrastruktur sind Anwender:innen nahezu vollständig vom Support der Anbieter von Serverless Computing abhängig.
Generell gilt: Serverless Computing ist eine leistungsstarke Alternative für Ihre Webanwendungen, wenn Sie Zeit und Kosten sparen wollen. Seine Stärken spielt diese Art von Cloud-Service vor allem bei schwankender Nachfrage von Nutzer:innen und ungleichmäßigen Workload aus. Sind die Webanwendungen Ihres Unternehmens hingegen eher gleichbleibend und auf einem hohen Niveau ausgelastet, empfiehlt sich eher ein anderer Cloud-Service auf PaaS-Basis ohne FaaS-Module.