Was ist Serverless Computing?

Art, Anwendungen zu betreiben, bei der die Bereitstellung von Servern, die Verwaltung ihrer Anzahl und die Aktualisierung des Betriebssystems dem Cloud-Anbieter überlassen werden, sodass sich die Nutzer nicht darum kümmern müssen. Die typische Form ist FaaS (Function as a Service): Eine Funktion läuft nur, wenn eine Anfrage oder ein Ereignis eintrifft, und die Kosten richten sich nach der Zahl der Ausführungen, ihrer Dauer und dem genutzten Arbeitsspeicher. Die Skalierung mit der Last erfolgt automatisch, und bei Nichtnutzung fallen kaum Kosten an. Andererseits gibt es Einschränkungen wie Kaltstarts, bei denen der erste Aufruf nach einer Ruhepause langsam ist, und Obergrenzen für die Ausführungszeit.

Japanische Bezeichnung: サーバーレス

„Serverless Computing“ kommt in 1 Übungsfragen aus 1 Themen vor, z. B. Grundlagen von Cloud und Containern.

Fachgebiet: Grundlagen von Cloud und Containern

Es gibt doch Server

„Serverless“ heißt nicht, dass es keine Server gibt, sondern dass die Nutzer sie nicht verwalten müssen. Der Anbieter stellt nach Bedarf Ausführungsumgebungen wie Container oder leichtgewichtige virtuelle Maschinen bereit und führt die Funktionen darin aus. Ganze Anwendungen werden oft aus Funktionen zusammen mit verwalteten Datenbanken, Speicherdiensten, einer Warteschlange für Nachrichten usw. aufgebaut.

Kaltstarts

Wird eine Funktion eine Weile nicht aufgerufen, wird ihre Ausführungsumgebung abgeräumt, und der nächste Aufruf erfordert die Bereitstellung einer Umgebung, den Start der Laufzeitumgebung der Sprache und die Initialisierung der Funktion. Diese Verzögerung ist ein Kaltstart; je nach Sprache und Umfang der Bibliotheken kann sie einige hundert Millisekunden bis einige Sekunden betragen. Man verringert sie, indem man die Initialisierung schlank hält oder Einstellungen nutzt, die eine Anzahl von Umgebungen vorab bereithalten.

Geeignete Aufgaben

Geeignet ist es für ereignisgesteuerte Verarbeitung, die schnell endet, etwa das Umwandeln hochgeladener Bilder, periodische Auswertungen und den Empfang von Webhooks, sowie für Aufgaben mit starken Lastschwankungen und langen Ruhezeiten. Bei Aufgaben unter ständig hoher Last können dauerhaft laufende Server oder Container günstiger sein. Zustand wird nicht in Funktionen gehalten, sondern in Datenbanken o. Ä.

Jetzt üben: Fragen zu Serverless Computing

Bei serverlosen Funktionen (FaaS) antwortet manchmal nur der erste Aufruf einer Funktion, die eine Weile nicht aufgerufen wurde, um einige hundert Millisekunden bis einige Sekunden langsamer. Welche Erklärung dieses Phänomens ist richtig?

  1. ADas Ergebnis des ersten Aufrufs wird zwischengespeichert, und ab dem zweiten Aufruf wird der Code der Funktion nicht ausgeführt, sondern nur das gespeicherte Ergebnis zurückgegeben
  2. BEs kostet Zeit, eine neue Umgebung zur Ausführung der Funktion bereitzustellen, die Laufzeitumgebung der Sprache zu starten und die Initialisierung durchzuführen (Kaltstart)
  3. CBeim ersten Aufruf wird der Code der Funktion an das Gerät des Nutzers geschickt, dort kompiliert und dann ausgeführt
Antwort und Erläuterung anzeigen

Antwort: B. Es kostet Zeit, eine neue Umgebung zur Ausführung der Funktion bereitzustellen, die Laufzeitumgebung der Sprache zu starten und die Initialisierung durchzuführen (Kaltstart)

Bei serverlosen Funktionen stellt der Anbieter Ausführungsumgebungen (etwa Container oder leichtgewichtige virtuelle Maschinen) nach Bedarf bereit und räumt sie wieder ab, wenn sie eine Weile nicht genutzt werden. Der erste Aufruf nach dem Abräumen erfordert die Bereitstellung der Umgebung, den Start der Laufzeitumgebung der Sprache und die Initialisierung der Funktion, und die Antwort verzögert sich entsprechend. Folgeaufrufe verwenden die bereitgestellte Umgebung wieder und sind schneller (Warmstart). Gegenmaßnahmen sind etwa, die Initialisierung und die geladenen Bibliotheken schlank zu halten oder Einstellungen zu nutzen, die vorab eine bestimmte Zahl von Umgebungen bereithalten.

Häufige Fragen

Sind Serverless und Container Gegensätze?

Nein. Viele Serverless-Plattformen nutzen intern Container oder leichtgewichtige virtuelle Maschinen, und manche Dienste können ein Container-Image direkt als Funktion ausführen. Der Unterschied liegt darin, wer die Zahl der Instanzen und die Ausführungsumgebung verwaltet.

Senkt Serverless immer die Kosten?

Nicht unbedingt. Da man für die Nutzung bezahlt, ist es bei geringer, stoßweiser Last günstiger, bei einer ständigen Last oberhalb eines gewissen Niveaus können dauerhaft laufende Server aber günstiger sein. In den Vergleich gehören auch Kosten wie die für die Datenübertragung.

„Serverless Computing“ in den Erläuterungen

Fragen mit „Serverless Computing“ (1)

  1. Bei serverlosen Funktionen (FaaS) antwortet manchmal nur der erste Aufruf einer Funktion, die eine Weile nicht aufgerufen wurde, um einige hundert Millisekunden bis einige Sekunden langsamer. Welche Erklärung dieses Phänomens ist richtig?

Verwandte Begriffe

Container Autoscaling Blue-Green-Deployment Canary-Release Container-Image Docker IaC (Infrastructure as Code) Immutable Infrastructure (unveränderliche Infrastruktur) Kubernetes Modell der geteilten Verantwortung (Shared Responsibility Model)

Zur Glossarübersicht