Serverless: Wann es sich wirklich lohnt.

Die wohl abstrakteste Form von Platform as a Service finden Sie in der serverlosen Cloud Architektur. Doch was bedeutet Serverless für Ihr Softwareprojekt? Wann es sich lohnt, auf diese Form der Cloud zu setzen.

Cloud Plattform

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 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.

Cloud

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.

Kubernetes verwaltet Container


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 bis zu 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.

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.

Dienste 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.

Erzählen Sie uns, wobei wir helfen können:

Wir freuen uns darauf, Sie kennen zu lernen - einfach Kontaktdaten ausfüllen und wir vereinbaren ein unverbindliches Erstgespräch zum kennenlernen:

Alternativ können Sie uns eine klassische E-Mail schreiben oder uns auch direkt anrufen.

Unser kleines Geschenk:
Incloud Ping

Update gefällig?

Mit dem Incloud Ping erhalten Sie jeden Monat kleine Aha-Momente rund um die relevantesten digitalen Themen.

Ihre Zeit ist wertvoll, wir nutzen sie produktiv. Versprochen.

Jetzt abonnieren! Spannend, gratis & jederzeit abmeldbar. Was gibt es da schon zu verlieren?