Berkeley zu Serverless Computing, Teil 1: Die Grenzen

Serverless hinkt bei Datenbanken

| Autor / Redakteur: Ariane Rüdiger / Ulrike Ostler

Serverless bedeutet nicht "keine Hardware", doch bringt der Ansatz einen neuen Freiheitsgrad, der die Programmlogik noch stärker als bisher möglich von IT-Infrastruktur-Ressourcen löst.
Serverless bedeutet nicht "keine Hardware", doch bringt der Ansatz einen neuen Freiheitsgrad, der die Programmlogik noch stärker als bisher möglich von IT-Infrastruktur-Ressourcen löst. (Bild: gemeinfrei: geralt/ Pixabay)

Serverless könnte einer der wichtigsten Trends im Rechenzentrum werden. Denn die Technologie befreit Anwender von noch mehr lästigen Management-Aufgaben. Doch, so in diesem Teil 1 eines Serverless-Zweiteilers, das Modell funktioniert nicht für jeden Algorithmus gleich gut.

Serverless könnte sich zum „Next big thing“ im Rechenzentrum entwickeln. Die entsprechenden Dienste der Hyperscaler sind sehr erfolgreich, und es wäre nicht verwunderlich, wenn Server-loses Rechnen schon bald auch den Weg in private Datacenter fände. Das Gleiche passierte schließlich auch mit objektorientiertem Speicher und dem RESTful-API.

Was sind die wichtigsten Vorteile Server-loser Rechendienste? Vor allem müssen sich Anwender noch weniger um das Management der Infrastruktur kümmern als bisher. Sie können ganz einfach Funktionen in so genannten Hochsprachen wie etwa Python schreiben und diese auf die vom Provider bereitgestellte Infrastruktur einschließlich Backend-Funktionen wie Provisioning laden.

Dabei sollten die Funktionen beliebig skalieren, es sollten also beliebig viele Funktionen genau so oft ausgeführt werden, wie dies ad hoc erforderlich ist. Dazu gehört auch ein neues Ressourcen-orientiertes Abrechnungsmodell.

Serverless und andere Cloud-Services: Drei wesentliche Unterschiede

Damit ergeben sich drei wesentliche Unterschiede zwischen Serverless und anderen Formen der Cloud-Delivery:

  • Storage und Rechenressourcen skalieren voneinander unabhängig, Storage wird separat im Umfang des Gebrauchs abgerechnet.
  • Die Funktionen arbeiten stateless, es lassen sich ihnen also über den Ablauf hinaus keine Daten fest zuordnen.
  • Die Ausführung erfolgt, ohne dass der Auftraggeber sich um die Ressourcenprovisionierung kümmern muss.
  • Die Bezahlung erfolgt für genutzte, nicht für provisionierte Ressourcen.
Ergänzendes zum Thema
 
Inhalt Teil 1 des Serverless-Zweiteilers

Für Anwender gibt es es einen zusätzlichen Reiz beim Serverless Computing: Sie sind nicht auf die im Rechenzentrum vorhandenen Libraries angewiesen, sondern können eigene mitbringen. Das verbreitert das Applikationsspektrum und erhöht die Programmierproduktivität.

Das alles macht allerdings nur dann Freude, wenn die zugrundeliegende Hardware ausreichend leistungsstark ist und zudem die einzelnen Funktionen gut voneinander isoliert werden können. Denn eine entsprechende Infrastruktur wird in der Regel von mehreren internen oder externen Kunden genutzt.

Begrenzende Faktoren für Serverless Computing

Allerdings gibt es durchaus Grenzen, die das Serverless Computing zumindest heute durch seine Eigenschaften hat. Damit befasste sich jüngst das Forschungspapier einer 14köpfigen Wissenschaftlergruppe der Abteilungen für Elektroingenieurwissenschaften und Computer Science an der Universität Berkeley in dem Papier „Cloud Programming Simplified: A Berkeley View on Serverless Computing“.

Danach basiert ein Teil dieser Schwierigkeiten darauf, dass Serverless Computing bislang heute in der Regel stateless arbeitet, was für Anwendungen, die Stati oder Daten feingranular gemeinsam nutzen müssen, problematisch ist. Viel hängt hier von den Eigenschaften der Storage-Services ab, die die zu den Funktionen gehörigen Daten speichern.

Außerdem ist es schwierig, mehrere Aufgaben auf einer Stateless-Plattform miteinander zu koordinieren, beispielsweise wenn eine Funktion B mit den Ausgaben einer Funktion A arbeitet. Hier muss B wissen, wann A den Input bereitstellt. Auch Datenkonsistenz erfordert entsprechende Koordinationsprozesse.

Benachrichtigungssysteme zwischen Cloud-Services gibt es kaum. Gegebenenfalls müssen sie also innerhalb der Funktionen implementiert werden. Das ist eine Aufgabe, die die Programmierung von Funktionen komplizierter macht.

Serverless benötigt viele Messages zwischen Funktionen

Der Broadcast, die Aggregation und die Verteilung von Daten gehören in verteilten Systemen zu den Standardaufgaben. Regelmäßig fallen sie auch beim Maschinellen Lernen oder der Big-Data-Verarbeitung an. Der Pferdefuß liegt hier in der gemeinsamen Datennutzung.

Denn Daten können auf Serverless-Plattformen nicht wie in VM-basierten Infrastrukturen von allen Aufgaben auf derselben Instanz gemeinsam verwendet werden. Deshalb fällt erheblich mehr Kommunikationsaufwand an. Zwischen den Funktionen müssen ständig Messages hin und her wandern.

Serverless-Leistung ist unvorhersehbar

Je nach Applikation kann es sein, dass Serverless-Funktionen sehr viel langsamer starten als gemeinhin angenommen. Denn es muss nicht nur die Cloud-Funktion anlaufen. Es fallen noch zwei weitere Aufgaben an: die Initialisierung der Software-Umgebung für die Funktion – beispielsweise das Laden der Python-Bibliotheken, und applikationsspezifische Initialisierungsvorgänge, die im Code der von Anwendern in die Cloud geladenen Funktion stecken.

Zudem kann es sein, dass dieselbe Funktion mal auf dieser, mal auf jener Hardware in der Cloud läuft. Serverless bedeutet ja gerade, dass man sich als Anwender nicht um die Prozessorressource kümmert. Doch das bedeutet auch, dass sich die Leistung der Serverless-Umgebung nicht genau vorhersehen lässt.

Nicht jeder Algorithmus ist für Serverless geeignet

Die Wissenschaftler in Berkeley führten auch Untersuchungen an fünf spezifischen Applikationen aus, die prototypisch für ähnliche Algorithmen stehen. Relativ gut funktionieren auf Serverless-Plattformen danach die Videokodierung in Echtzeit, das Anlernen von ML-Algorithmen und große algebraische Berechnungen, wie sie normalerweise auf Supercomputern ablaufen.

MapReduce und ähnliche Algorithmen haben auf Serverless Probleme mit der Datenverteilung. Am schlechtesten arbeitet Serverless, wie zu erwarten, bei transaktionsorienten, schreibintensiven Datenbankanwendungen.

Was meinen Sie zu diesem Thema?

Schreiben Sie uns hier Ihre Meinung ...
(nicht registrierter User)

Zur Wahrung unserer Interessen speichern wir zusätzlich zu den o.g. Informationen die IP-Adresse. Dies dient ausschließlich dem Zweck, dass Sie als Urheber des Kommentars identifiziert werden können. Rechtliche Grundlage ist die Wahrung berechtigter Interessen gem. Art 6 Abs 1 lit. f) DSGVO.
Kommentar abschicken
copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Kontaktieren Sie uns über: support.vogel.de/ (ID: 45779178 / Virtualisierung)