Die Besonderheiten der serverlosen Architektur
17. März 2023Viele verstehen die serverlose Architektur nicht so ganz, schließlich ist sie nicht wirklich serverlos. Letztlich können Anwendungen nur funktionieren, wenn sie irgendwo auf einem Server ausgeführt werden. Einfach ausgedrückt bedeutet serverlose Architektur, dass ein Cloud-Anbieter – wie Google, Amazon Web Services, (AWS) oder Microsoft Azure – die Back-End-Infrastruktur einer Anwendung bereitstellt.
Ein Teil ihrer Popularität ist auf Dienste wie Kubernetes zurückzuführen, die bei vielen Unternehmen plötzlich das Interesse geweckt haben, für das Hosten ihrer Anwendungen bei anderen Diensten zu bezahlen. Doch trotz der großen Vorteile der serverlosen Architektur gibt es noch einige zentrale Herausforderungen.
Zeitgewinn bei gleichzeitiger Kostenreduzierung
Der wichtigste Vorteil der Implementierung einer serverlosen Architektur ist die Entlastung der ohnehin schon überlasteten Entwickler von zeitraubender betrieblicher Wartung und die Einsparung von massiven Betriebskosten für Unternehmen. Wenn Entwickler die Back-End-Infrastruktur, auf der Anwendungen laufen, nicht selbst besitzen, müssen sie sich deutlich weniger um Wartung, Provisionierung und Skalierung kümmern. Die automatische Skalierung und Fehlersuche, die von Cloud-Anbietern über die serverlose Architektur angeboten wird, ist daher zu einem der attraktivsten Argumente für die Einführung einer dezentralen Back-End-Infrastruktur geworden.
Da die Last der Back-End-Wartung geteilt wird, können Entwickler kritischeren Projekten den Vorrang geben. So ist beispielsweise die Kapazitätsplanung für Entwickler kein Thema mehr, da sie bereits für sie erledigt wird. Gleichzeitig automatisiert der Cloud-Dienstanbieter die serverlose Architektur, sodass Skalierungen oder Reduzierungen ohne Anweisung der Entwickler erfolgen.
Die serverlose Architektur führt außerdem dazu, dass sich die Verantwortung und Rechenschaftspflicht in die richtige Richtung verschiebt. Wenn im Back-End etwas schief geht, liegt die Verantwortung für die Problemlösung beim Anbieter, nicht beim Entwickler. Wenn es also einen Absturz gibt, liegt es nicht mehr an den Entwicklern, ihre Zeit und Ressourcen auf die Behebung des Problems zu verwenden.
Und schließlich kann die serverlose Architektur eine äußerst kosteneffiziente Option sein, je nach Größe eines Unternehmens und seinen individuellen Anforderungen. Den Entwicklern Zeit zu sparen bedeutet auch Kostenersparnis und reduziert die Betriebskosten. Ein weiterer Vorteil, den viele nicht bedenken: Mit einer ausgelagerten Back-End-Infrastruktur kann man den Begriff „Serverexperte“ von der langen Liste der Anforderungen streichen, wenn man Mitarbeiter einstellt. Wenn also ein Unternehmen von hohen Betriebskosten belastet ist, könnte die serverlose Architektur eine gute Option sein.
Zu berücksichtigende potenzielle Herausforderungen
Auch wenn die Vorteile unbestreitbar sind, ist die serverlose Architektur, wie viele andere Technologien auch, komplex, und ihr dezentraler Charakter kann einige Probleme mit sich bringen. Da die IT-Teams die Back-End-Infrastruktur nicht selbst besitzen und überblicken, wird es fast unmöglich, die hinter den Kulissen laufenden Anwendungen zu überwachen. Die begrenzte Sichtbarkeit kann manchmal zu einem gefährlichen Ratespiel führen, bei dem Entwickler gezwungen sind, Spekulationen über die Leistung einer Anwendung anzustellen. Wenn es darum geht, Leistungsprobleme anzugehen oder Leistungsanalysen zu verfolgen, führt das schnell zu einem unguten Dominoeffekt.
Die größte Sorge ist die Sicherheit. Die größere Angriffsfläche serverloser Architekturen im Vergleich zu internen Umgebungen kann ein höheres Sicherheitsrisiko darstellen. Hier kommt es letztendlich ganz darauf an, wie gut der Cloud-Dienstanbieter Risiken managt. Deshalb ist es wichtig, dass man sich bei einem Wechsel in die Cloud immer gut informiert, um sicherzustellen, dass alles sicher ist. Wie ein altes Sprichwort besagt, ist man nur so stark wie sein schwächstes Glied.
Und schließlich ist die serverlose Architektur keine sofortige Universallösung für Back-End-Probleme, und einige Anwendungen wurden einfach nicht für sie entwickelt. Zum Beispiel basiert die Preisgestaltung von Providern oft auf den Ressourcen, die eine Anwendung nutzt. Anwendungen, die enorme Rechenressourcen verschlingen, führen zu einem drastischen Anstieg der Kosten für ein Unternehmen, sodass ein internes Hosting wahrscheinlich lohnenswerter ist.
Wann man eine serverlose Architektur ausprobieren sollte
Einer der Hauptanwendungsfälle für serverlose Architekturen sind Anwendungen, die Code und auf Auslösern basierende Aufgaben ausführen. Sie werden oft als „Set-it-and-forget-it“-Anwendungen bezeichnet. Hier bleibt die Anwendung in der Infrastruktur passiv und wartet auf ein auslösendes Ereignis. Serverlose Architekturen sind für diese Anwendungstypen nützlich, da die Anwendung die Ressourcennutzung nach Bedarf für das ausgelöste Ereignis erhöht und so die Kosten niedrig hält.
Darüber hinaus eignet sich die serverlose Architektur aufgrund ihrer Fähigkeit, Code in Echtzeit zu aktualisieren, hervorragend für CI/CD-Projekte (Continuous Integration/Continuous Delivery). Da Entwickler den Code in der Produktion ständig aktualisieren können, ohne sich um die Aktualisierung des Servers kümmern zu müssen, verkürzt die serverlose Architektur die Zeit bis zur Bereitstellung.
Wenn die betriebliche Wartung eine große Belastung für ein Unternehmen darstellt, könnte die serverlose Architektur eine zeitsparende und kosteneffektive Lösung sein. Dies ist jedoch kein Grund, die Flinte ins Korn zu werfen. Es ist wichtig, dass man sich immer noch Gedanken über den Cloud-Anbieter macht, und sicherstellt, dass die Sicherheit gewährleistet ist. Auch sollte man darüber nachdenken, was die eigenen Anwendungen benötigen, bevor man den Wechsel vollzieht, damit die Vorteile maximiert und die Hürden minimiert werden.
Sascha Giese, Head Geek, Solarwinds