Publiziert am 24. Juni 2021 von unter:

Serverless: Wann es sich wirklich lohnt.

Was ist eine serverlose Cloud Architektur und was bedeutet Serverless für Ihr Softwareprojekt? Wann es sich lohnt, auf diese Form der Cloud zu setzen.

Titelbild: Urbazon auf iStock

Die eigene Infrastruktur in die Cloud auszulagern, spart Ihnen viel Arbeit und Kosten. Ob Infrastructure as a Service (IaaS) oder Platform as a Serverice (PaaS): Gegenüber dem Betrieb auf eigenen, physischen Servern überzeugt die Cloud auch durch ihre genaue Skalierbarkeit. Je nach Bedarf können Sie Serverkapazitäten bequem dazubuchen und wieder abbestellen. So müssen Sie keine ungenutzten Reserven bezahlen. Als PaaS Lösung können Sie zudem die Cloud-eigenen Services nutzen und damit den Entwicklungsaufwand verringern. Soweit so gut. Doch mit dem Bau der Cloud-Architektur allein ist es noch nicht getan. Auch PaaS Lösungen bedürfen häufig noch ausgiebiger Pflege der Architektur. Das Betriebssystem muss auf dem neusten Stand gehalten werden. Zudem müssen Sie den hohen Ansprüchen an die Sicherheitsrichtlinien Ihrer Anwendung gerecht werden. Allein die Verwaltung Ihrer Cloud Architektur gleicht einem Vollzeit Job und lenkt Ihre Entwickler vom eigentlichen Tun ab.

Wie Serverless die Entwicklung Ihrer Anwendung vereinfacht

Die wohl abstrakteste Form von Platform as a Service finden Sie in der serverlosen Cloud Architektur. Serverless wird auch Function as a Service (FaaS) genannt, da es den Arbeitsaufwand für die Entwickler rein auf den Code reduziert. Lassen Sie sich von diesem Begriff nicht täuschen: Auch die serverlose Cloud benötigt Server, um zu funktionieren. Allerdings kümmert sich der Cloud Anbieter neben der Infrastruktur nun auch um den Betrieb und die Verwaltung der Architektur, sowie die fortlaufende Skalierung der Serverkapazitäten. Das kann hilfreich sein, wenn Ihre Anwendung mit stark wachsenden Nutzerzahlen oder plötzlichen Lastspitzen umgehen muss.

Serverless sorgt dafür, dass die Anwendung jederzeit einwandfrei läuft, obwohl Sie selbst die Server nicht mehr verwalten. Ihre Entwickler schreiben einen vergleichsweise kurzen Code, legen fest, wie stark Ihre Anwendung performen soll und automatisieren, in welchem Fall welche Aufgaben ausgeführt werden. Die Cloud reguliert Ihre Serverkapazitäten dann von selbst, bucht bei Bedarf neue Ressourcen hinzu und bestellt diese ab, wenn Lastspitzen vorüber sind. Abgerechnet wird nicht mehr nach gebuchten, sondern nach verbrauchten Kapazitäten. Ihre Entwickler können sich so vollkommen auf die eigentliche Entwicklung konzentrieren.

Sie sagen der Cloud also lediglich, was sie tun soll. Auf welche Weise die Cloud die Funktionen ausführt, ist für Sie nicht mehr relevant.


Der Unterschied von Serverless zu Kubernetes

Doch wie grenzt sich Serverless von Kubernetes ab? Machen die nicht eigentlich dasselbe? In beiden Fällen wird den Entwicklern bereits viel Arbeit abgenommen. Kubernetes automatisiert Einrichtung, Betrieb und Skalierung von containerisierten Anwendungen, übernimmt somit die Verwaltung Ihrer Server.

Ein Kubernetes Cluster muss allerdings zunächst aufgebaut werden. Dieser Vorgang ist sehr zeitintensiv und bringt sowohl Aufwands- als auch monatliche Kosten mit sich. Für die Einrichtung eines Clusters können Sie mit mindestens einer Woche rechnen. Dafür läuft dieser danach ununterbrochen, was bei einer hohen Nutzerfrequenz praktisch ist. Der Cluster kann außerdem für weitere Anwendungen und auch On-Premise, also losgelöst von der Cloud verwendet werden. Wenn Sie mit Kubernetes arbeiten, heißt das also, dass sie immer noch selbst für die Architektur unterhalb des Codes verantwortlich sind, auch wenn Kubernetes Ihnen schon vieles abnimmt.

Mehr zu Kubernetes erfahren

Fahrplan

Cloud Fahrplan

Von Budget bis Hyperscaler: In nur 24 Schritten planen Sie Ihr Cloud-Projekt!

Jetzt kostenlos downloaden

Serverless: Vor- und Nachteile

Serverless besticht durch das bisher flexibelste Abrechnungsmodell Pay-Per-Use. Das bedeutet, Sie zahlen nur dann, wenn ihr Code ausgeführt wird. Klickt ein Nutzer beispielsweise drei mal einen Button, zahlen Sie drei Mal für das Ausführen des Codes. Eine eigene Skalierung ist hier nicht mehr nötig. Wir raten Ihnen, mit einem Experten Ihren persönlichen Anwendungsfall zuvor genau durchzurechnen. Je nach Nutzeraufkommen kann das Serverless Modell sonst mit erhöhten Kosten einhergehen.

Ein weiterer Vorteil von Serverless ist die einfache und native Kommunikation mit anderen Diensten innerhalb der Cloud.

Dadurch, dass Sie der Cloud das Handling überlassen, müssen sich die Dienste untereinander automatisch kennen und erkennen. Eine manuelle Verwaltung würde beispielsweise Authentifizierungsprozesse zwischen den verschiedenen Diensten mit sich bringen. Diese Arbeit erspart Ihnen Serverless. Allerdings sind Sie somit auch stark an einen bestimmten Cloud Anbieter gebunden.

Längere Antwortzeiten und keine Echtzeit-Unterstützung

Zwar zahlen Sie bei Serverless nur dann, wenn Ihre Cloud aktiv arbeitet, ein Nutzer also mit der Anwendung interagiert, allerdings bedeutet das auch, dass Funktionen nach längerer Inaktivität beendet und vom Server entfernt werden. Die Funktionen sind dann „kalt“. Werden sie nun erneut aufgerufen, muss die Cloud sie zunächst wieder starten. Das führt zu verlängerten Reaktionszeiten der Anwendung. Entsprechend leiden die Performance und das Nutzererlebnis Ihrer Anwendung. Im Gegensatz dazu läuft ein Container in Kubernetes immerzu, sobald er einmal eingerichtet wurde.

Schwierig wird es bei Serverless außerdem, wenn Sie eine Real-Time Applikation entwickeln. Zum Beispiel ein Tool, mit dem mehrere Personen gleichzeitig arbeiten und die Aktivitäten der anderen in Echtzeit verfolgen können.

Ermöglich wird die Echtzeit-Datenübertragung durch das sogenannte WebSocket-Protokoll. Dieses ermöglicht die beidseitige Kommunikation zwischen der Anwendung und einem Server, der WebSockets unterstützt. In Serverless lässt sich eine solche Verbindung nicht abbilden.

Entwickeln Sie also eine Echtzeit Anwendung, sind Sie mit einer traditionellen Cloud Architektur samt Kubernetes besser beraten.



Wann ist Serverless sinnvoll für Ihr IT-Projekt?

Unter folgenden Bedingungen können Sie von einer serverlosen Cloud-Architektur profitieren:

  • Wenn sehr viel Logik Client-seitig passiert.
  • Wenn Ihre Anwendung nicht abhängig von schnellen Antwortzeiten ist.
  • Wenn die Serverlast Ihrer Applikationen nicht vorhersehbar ist.
  • Wenn die Server-Kosten linear mit der Kundenanzahl skalieren können.

Kurz gesagt: Je simpler und repetetiver Ihre Anwendung ist, umso mehr macht Serverless für Ihr IT-Projekt Sinn.

Fahrplan

Cloud Fahrplan

Von Budget bis Hyperscaler: In nur 24 Schritten planen Sie Ihr Cloud-Projekt!

Jetzt kostenlos downloaden
Drucken

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

*

Um die Diskussionsqualität zu wahren, veröffentlichen wir nur noch Kommentare mit nachvollziehbarem Vor- und Nachnamen sowie authentischer E-Mail-Adresse.