26. November 2021

Was ist Serverless-Computing am Beispiel von AWS Lambda?

AuthorAna Novokmet
Kategorien

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.

Was ist Serverless-Computing und warum wird es verwendet?

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.

Welche Vorteile bietet Serverless-Computing im Allgemeinen?

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.  

Was ist AWS Lambda?

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)

Bei der Entwicklung und Ausführung von Lambda-Code sind einige typische Schritte zu beachten:

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)

Welche Vorteile bietet AWS Lambda?

  • Pay per use
    (nur Rechenfunktionen und Netzwerkverkehr werden berechnet)
  • Vollständig verwaltete Infrastruktur
    (keine Sorgen um die Server; der Fokus liegt auf der Code-Logik)
  • Automatische Skalierung
    (Instanzen werden bei Anforderung erstellt)
  • Andere AWS-Produkte sind eng integriert
    (es ist möglich, funktional vollständige Anwendungen zu erstellen)

Welche Beschränkungen hat AWS Lambda?

  • Mögliche Latenzzeit zwischen dem Ereignis und dem Beginn der Funktionsausführung
    (es gibt Methoden, um dies zu umgehen)
  • Eine laufende Lambda-Funktion läuft nach 15 Minuten ab
    (Lambda sollte in diesen Situationen generell nicht verwendet werden)
  • Speicherbeschränkungen – RAM und Codepaketgrößen sind begrenzt
  • Nicht immer kosteneffizient
    (wenn die Last der Anwendung zunimmt, steigen die Kosten proportional an) (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.


Empfohlenener Artikel
30. November 2022 Die 12-Faktor-App Teil 3: (Einweggebrauch, Dev-Prod-Vergleichbarkeit, Logs, Admin-Prozesse)

Alle Blogartikel