Starten Sie ihr Softwareprojekt mit Smartsquare
linkedin github
We're hiring!

Smart erklärt: Serverless

17. Januar 2023 | 17:56 Uhr Von: Alexander Niemann

Bild zum Artikel

Smart erklärt: Serverless

Serverless Computing: Magie, Marketing oder nützliche Technologie?

„Serverless“, das klingt zunächst nach „keine Server“. Aber zentral bereitgestellte, nicht-triviale Software ohne Server, wie soll das gehen? 🤔 Die Wahrheit ist natürlich, dass auch weiterhin Hardware gebraucht wird. „Serverless“ bietet uns einen neuen Weg, diese Infrastruktur für die Entwicklung von Software zu nutzen.

Serverless ist Cloud auf den nöchsten Level gebracht

Üblicherweise installieren und betreiben wir die Komponenten von Softwaresystemen bisher auf eigener Hardware, gemieteten Infrastrukturen oder Plattformen in der Cloud (IaaS, Infrastructure-as-a-Service und PaaS, Platform-as-a-Service). Wobei die Cloudansätze natürlich ein großer Schritt gewesen sind, um flexibler, schneller, zielgerichteter und in vielen Belangen sicherer zu werden.

Mit Serverless treiben wir es nun noch eine Stufe weiter und machen uns vollständig von Ressourcenerwägungen unabhängig. Anwendungslogik wird in sauber voneinander getrennte Services aufgeteilt, die in Laufzeitumgebungen in der Cloud ausgeführt werden. Dafür wird auch der Begriff Function-as-a-Service (FaaS) genutzt. Der Clou dabei 💡: Erst wenn ein Service aufgerufen wird, wird der Ressourcenbedarf ermittelt und bereitgestellt. Von 0 bis praktisch unendlich ist alles möglich. Wird der Service gerade nicht genutzt, werden keine Ressourcen blockiert. Wird er intensiv benötigt, vielfach parallel aufgerufen oder braucht einfach nur mal kurz ordentlich Prozessorleistung, skaliert der FaaS-Anbieter automatisch hoch. Die Abrechnung von diesem Service orientiert sich dann üblicherweise an der tatsächlichen Ressourcennutzung.

Die größten Anbieter von Serverless-Umgebungen sind die üblichen Verdächtigen in der Cloud-Welt 🕵️‍♂️. Bei Microsoft heißt das Produkt Azure Functions, bei AWS Lambda und bei Google nennen sie es Cloud Functions.

Vor- und Nachteile

Die wesentlichen Vorteile haben wir bereits anklingen lassen: Unabhängigkeit von der Hardware, keine Aufwände mit Provisionierung, Miete und Betrieb von Infrastruktur, sorgenfreie Skalierbarkeit und nutzenabhängige Abrechnung. 👍

Dem gegenüber gibt es allerdings auch Nachteile bzw. zumindest bedenkenswerte Aspekte:

  • Bei der Bereitstellung einer FaaS muss mit einer gewissen Anlaufverzögerung gerechnet werden, die ein Performance-Problem sein kann
  • Es müssen separat ausführbare, zustandlose Funktionen vorhanden sein, was nicht immer der Fall und nicht immer der sinnvollste Ansatz ist
  • Einschränkungen bei der lokalen Testbarkeit und beim Debugging während der Entwicklung
  • Das Monitoring von Gesamtsystemen, die teilweise oder ganz Serverless aufgesetzt sind, ist schwierig
  • Der spätere Wechsel des FaaS-Anbieters ist mit erheblichem Aufwand verbunden

Serverless ist daher sicher nicht für jeden Anwendungsfall geeignet, sondern sollte nach sorgfältiger Abwägung durch Softwareexperten gezielt eingesetzt werden, um die Vorzüge zu nutzen. 😉

Zurück zur Übersicht