Anmelden / Registrieren Konto

Cloudnative Anwendungen

Serverless Computing – Vorteile und Funktionsweise

Der Begriff „Serverless“ bezieht sich auf ein Cloud Computing-Modell, bei dem Anwendungsentwickler für ihre App weder Server provisionieren noch eine Skalierung durchführen müssen. Stattdessen werden diese routinemäßigen Aufgaben vom Cloud-Anbieter abstrahiert, wodurch der fertige Code viel schneller produktiv wird als bei traditionellen Modellen.

Dank dieses Konzepts können Entwickler den Fokus auf ihren Code richten und die Infrastruktur größtenteils ignorieren. Eben „Serverless“, denn die Serverspezifikationen beeinflussen die Entwicklung nicht im Geringsten. Natürlich sind die Server noch physisch vorhanden, nur werden sie jetzt eben vom Cloud-Anbieter verwaltet.

Genauer gesagt, führt ein Cloud-Anbieter wie Amazon oder Google physische Server aus und weist deren Ressourcen dem Nutzer (wie Ihnen) zu, der den Code direkt in die Produktivumgebung verschieben kann. Das hört sich vielleicht genau wie ein Public Cloud IaaS-Angebot an, ein wichtiger Unterschied jedoch ist, dass der Anbieter bei der serverlosen Variante nur die Computing-Ressourcen in Rechnung stellt, die Sie zur Ausführung Ihres Codes benötigen.

Wie funktioniert das Serverless Computing?

Bei einem herkömmlichen IaaS-Modell kaufen die Nutzer Kapazitätseinheiten ein, das heißt, Sie zahlen für „Always-on“-Serverkomponenten, um Ihre Anwendungen auszuführen. Beim serverlosen Modell ist das nicht der Fall. Wenn z. B. ein Event die Ausführung eines Anwendungscodes auslöst, weist der Cloud-Anbieter hierfür dynamisch Ressourcen zu. Der Nutzer zahlt nur, solange der Code ausgeführt wird. Neben den offensichtlichen Kosten- und Effizienzvorteilen befreit das serverlose Modell den Entwickler von den Routineaufgaben der Anwendungsskalierung und Serverprovisionierung.

Es gibt zwei primäre Varianten des Serverless Computing. Die erste nutzt BaaS (Backend-as-a-Service). Hier besteht Ihre App aus zahlreichen Drittanbieter-Services und -Anwendungen. Die zweite Variante verwendet FaaS (Function-as-a-Service). Hier schreiben die Entwickler immer noch eine benutzerdefinierte, serverseitige Logik, diese aber wird in Containern ausgeführt, die komplett von einem Cloud-Anbieter gemanagt werden. Interessant ist auch, dass Sie mit diesen Methoden eine vollständig serverlose Anwendung entwickeln oder eine Anwendung aus teils serverlosen, teils traditionellen Microservice-Komponenten zusammenstellen können.

BaaS (Backend-as-a-Service)

Backend-as-a-Service (BaaS), zuweilen auch MBaaS (Mobile Backend-as-a-Service) genannt, ist eine Methode des Serverless Computing, die größtenteils auf Drittanbieteranwendungen und -Services aufbaut. So könnte ein Cloud-Anbieter z. B. Authentifizierungs-Services, zusätzliche Verschlüsselung, per Cloud zugängliche Datenbanken sowie wiedergabetreue Nutzungsdaten bereitstellen. Der Zugriff auf diese Backend-Services erfolgt typischerweise über den Aufruf einer vom Cloud-Anbieter eingerichteten API (Application Programming Interface). Dies ermöglicht eine einfachere Integration in Ihre Systeme, als wenn Sie diese Features inhouse entwickeln müssten.

FaaS (Function-as-a-Service)

FaaS (Function-as-a-Service) bietet mehr Kontrolle als BaaS, da die serverseitige Logik auch weiterhin von Entwicklern geschrieben wird. Sobald sie allerdings programmiert ist, wird sie in Containern bereitgestellt, die vom Cloud-Anbieter gemanagt werden – was auch der Hauptvorteil des serverlosen Konzepts ist. Diese Container sind im Besonderen:

  • Zustandslos und ermöglichen eine einfachere Datenintegration
  • Flüchtig und können für kurze Zeit ausgeführt werden
  • Event-orientiert und können bei Bedarf automatisch ausgeführt werden
  • Komplett gemanagt von einem Cloud-Anbieter, damit Sie nur für das zahlen, was Sie brauchen, und nicht für „Always-on“-Anwendungen und -Server

Was sind die Vor- und Nachteile des serverlosen Modells?

Zunächst einmal lassen sich damit die Entwicklerproduktivität steigern und die Betriebskosten senken. Da die Entwickler nun keine Zeit mehr für Routineaufgaben wie die Provisionierung und Verwaltung von Servern aufwenden müssen, können sie sich vermehrt auf ihre Anwendungen konzentrieren. Dieser Vorteil wird noch wertvoller, wenn ganze Anwendungskomponenten von einer Drittpartei über BaaS integriert und nicht inhouse geschrieben werden müssen. Das serverlose Modell spart Betriebskosten, weil Sie bei der Nutzung cloudbasierter Computing-Zeit einem „Pay as you go“-Modell folgen und nicht Ihre eigenen Server rund um die Uhr ausführen und verwalten müssen.

Diese Tatsache und die Übertragung der Kontrolle über die serverseitige Logik können allerdings auch Nachteile haben. Zum einen gehen Sie mit Ihrem IT Stack eine Anbieterbindung ein. Cloud-Anbieter haben möglicherweise strikte Beschränkungen in Bezug auf Interaktionen mit ihren Komponenten, was wiederum die Flexibilität und Definition Ihrer eigenen Systeme beeinflussen kann. Ein Anbieterwechsel bringt dazu womöglich Kosten für ein Upgrade Ihrer Systeme mit sich, das aus Gründen der Konformität mit den neuen Händlerspezifikationen notwendig wird.

Die Kubernetes-Basis für Serverless Computing

Cloud Computing

Eine Container- und Kubernetes-Plattform für eine schnellere Entwicklung cloudnativer Anwendungen.

Cloud Computing

Eine Auswahl an Anwendungs-Runtimes und -Frameworks, die für die Entwicklung cloudnativer Anwendungen bestens geeignet sind.

Das serverlose Modell hat noch viel mehr zu bieten