Der Cloud-Markt wächst stetig und bietet Kunden eine breite Palette an verschiedenen Dienstleistungen und Möglichkeiten. Neben anderen Cloud-Computing-Modellen, wie Platform-as-a-Service (PaaS), Infrastructure-as-a-Service (IaaS) und Software-as-a-Service (SaaS), ist das Konzept Function-as-a-Service (FaaS) wohl das bekannteste. FaaS wird auch als Serverless-Computing bezeichnet. In unserem Blogartikel „Ein Blick hinter die Kulissen – Cloud-Dienste“ werden diese Begriffe kurz erklärt.
Doch was verbirgt sich hinter dem Begriff Serverless-Computing und welche Verwendungszwecke gibt es? Unser Blogbeitrag beantwortet Ihnen nicht nur Antworten auf diese Fragen, sondern beleuchtet auch einen konkreten Anwendungsfall von Serverless-Computing am Beispiel von AWS Lambda. Diese Plattform bietet die Möglichkeit, Code ohne eine Infrastruktur in Form eines Servers oder Clusters auszuführen.
Serverless-Computing beschreibt die Praxis, Backend-Services auf einer Per-Use-Basis anzubieten. Dies bedeutet, dass Anwendungen nur dann gestartet werden, wenn sie benötigt werden. Der Hauptvorteil dieses Modells besteht darin, dass sich die Entwickler nicht um die zugrundeliegende Infrastruktur kümmern müssen. Stattdessen können sie sich auf die Definition der Logik, das Schreiben des Codes und dessen Bereitstellung konzentrieren, während der Serverless-Anbieter den Rest erledigt. (Quelle)
Der Cloud-Anbieter ist für die Verwaltung der Cloud-Infrastruktur sowie für die Skalierung der Anwendung zuständig. Dies beinhaltet auch die Verwaltung des Betriebssystems und des Dateisystems. Zu den Aufgaben des Anbieters gehören zudem Sicherheitspatches, Lastausgleich, Kapazitätsmanagement, Skalierung, Protokollierung und Monitoring.
Serverless-Computing hat grundsätzlich verschiedene Vorteile. Zum einen ist es oft äußerst kosteneffizient, da die Verbraucher nicht für ungenutzte Ressourcen wie Speicherplatz oder ungenutzte CPU-Zeit bezahlen müssen. Darüber hinaus ist die Skalierung von Anwendungen trivial, wenn man Backend-Code und Funktionen schreibt, die jeweils einen bestimmten Zweck erfüllen. Dadurch ist es beispielsweise möglich, eine App schneller auf den Markt zu bringen und Codeänderungen vorzunehmen. Und das ohne, dass es zu Problemen kommt oder viel Zeit in Anspruch nimmt. (Quelle)
Die Hauptvorteile sind somit: Kosteneffizienz, eine hohe Skalierbarkeit, die Agilität und die damit verbundenen Zeitersparnis.
Obwohl die Begriffe Serverless und Function-as-a-Service (FaaS) oft als Synonyme betrachtet werden, ist FaaS in Wirklichkeit eine Untermenge von Serverless, da es sich hauptsächlich auf das ereignisgesteuerte Computing-Paradigma konzentriert. (Quelle)
AWS bietet eine FaaS-Lösung namens AWS Lambda, mit der Benutzer Code ausführen können, ohne Server einrichten oder verwalten zu müssen. Es handelt sich um eine serverlose und ereignisgesteuerte Plattform. Bei welcher nur für das bezahlt wird, was genutzt wird. Oder anders ausgedrückt, für die verbrauchte Rechenzeit.
Ein Lambda ist im Allgemeinen ein kurzer, unkomplizierter Codeblock oder eine Funktion, die ein Ergebnis zurückgeben und jede Art von Rechenaufgabe ausführen kann. AWS Lambda unterstützt verschiedene Programmiersprachen, darunter Java, Go, Python, Node.js, PowerShell und andere, und ermöglicht Ihnen die Entwicklung und Veröffentlichung von Code als Container-Image oder .zip-Datei. (Quelle)
Schritt 1: Hochladen des Codes zu AWS Lambda
Schritt 2: Verwendung einiger AWS-Services zur Erstellung von Lambda-Triggern
Schritt 3: Ausführen des Codes, wenn er ausgelöst wird
Das Einfügen, Aktualisieren oder Löschen von Daten in Dynamo DB-Tabellen, die Suche nach dem Protokollverlauf in CloudTrail, das Hinzufügen von Einträgen, Ändern von S3-Objekten, der Empfang von Amazon SNS-Benachrichtigungen und eine Vielzahl anderer Ereignisse können AWS Lambda-Funktionen auslösen. (Quelle)
Zusammenfassend lässt sich sagen, dass AWS Lambda-Funktionen es Entwicklern ermöglichen, sich auf das Kernprodukt und die Geschäftslogik zu konzentrieren. Um Aufgaben wie die Verwaltung der Betriebssystem-Zugriffskontrolle, Betriebssystem-Patching, Größenanpassung, Bereitstellung, Skalierung und andere Verwaltungsherausforderungen muss sich nicht mehr gekümmert werden. (Quelle)
Dies ist ein genereller Vorteil von Cloud-Services und -Lösungen. Libelle-Software ermöglicht Ihnen, einen der größten Vorteile der Cloud zu nutzen: Höchste Flexibilität für Sie und Ihre eingesetzten Ressourcen auf einer globalen Ebene. So stehen Ihnen unsere Software-Lösungen wie Libelle DataMasking (AWS/Microsoft Azure), Libelle SystemCopy (AWS/Microsoft Azure) und Libelle CloudShadow (IBM Cloud) in den verschiedenen Cloud-Marketplaces zu Verfügung.