Smart erklärt: Serverless
17. Januar 2023 | 17:56 Uhr Von: Alexander Niemann
17. Januar 2023 | 17:56 Uhr Von: Alexander Niemann
„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.
Ü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.
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:
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. 😉