Vor- und Nachteile des Serverless Computings

Simi Okt 16, 2018
Vor- und Nachteile des Serverless Computings

Stellen Sie sich vor, Sie können als Backend-Entwickler Ihre Anwendungen programmieren, ohne sich über Server sorgen zu müssen. Serverless Computing macht dies möglich.

Bei Serverless Computing beziehungsweise Serverless Architecture oder Serverless Infrastructure verzichtet man auf den Einsatz von Servern. Dadurch können Entwickler Cloud-Anwendungen und -Services erstellen und ausführen, ohne sich um Server und deren Verwaltung zu kümmern.


Was versteht man unter Serverless Computing?

Serverlos bedeutet nicht vollständig serverlos. Bei Serverless Computing wird die Server-Schicht vollkommen abstrahiert, auch wenn natürlich dennoch irgendwo physisch ein Server vorhanden ist. Der Entwickler kommt jedoch nie damit in Berührung; die eingesetzte Technologie oder oder Betriebssystem des Servers kann ihm egal sein.

Eine Besonderheit bei serverlosen Infrastrukturen: Der Entwickler lädt Funktionen hoch, die auf Events basieren. Die Funktionen werden dann ausgeführt, wenn vordefinierte Ereignisse eintreten. Es ist die Rede von “Event-driven Computing”.

Je nach eingesetzter Serverless-Plattform kann der Entwickler den Code in verschiedenen Programmiersprachen schreiben, wie zum Beispiel:

  • Go
  • Java
  • JavaScript
  • Python

Dabei bestimmt der Entwickler, wie auf bestimmte Ereignisse reagiert werden soll. Tritt das vordefinierte Ereignis ein, wird die Funktion als zustandslose Transaktion durchgeführt.

Die Serverless-Plattform stellt die Ressourcen bereit, die für die Verarbeitung der Daten erforderlich sind, und skaliert automatisch anhand der Triggers. Der Kunde muss sich nicht um die Ressourcen oder deren Provisionierung kümmern. Kunden zahlen nur für die Ressourcen, die verbraucht werden, um die Funktionen auszuführen. Wird nichts getriggert, so bezahlt der Kunde nichts. Werden 1 Million Triggers erzeugt, funktioniert das System dennoch einwandfrei.

Anwendungsbeispiele für Serverless Computing

Die Anwendungsmöglichkeiten für serverlose Architektur ist gigantisch, hier nur einige Beispiele:

  • Automatische Bildbearbeitung: Beim Hochladen einer Bilddatei werden automatisch verschiedene Bildformate/-grössen erstellt.
  • Automatische Videobearbeitung: Beim Hochladen einer Videodatei wird diese automatisch in unterschiedliche Formate konvertiert.
  • Monitoring und Debugging: Benachrichtigung oder Funktionen als Reaktion auf bestimmte Trigger, beispielsweise wenn ein Benutzer eine Aktion ausführt oder wenn sich etwas an Daten oder dem Systemstatus ändert.

Vorteile des Serverless Computings

  • Skalierung
  • Transparente Kosten: Kunde bezahlt nur für Ressourcen, die tatsächlich verbraucht werden.
  • Quasi unbegrenzte Ressourcen wie Rechenleistung und Arbeitsspeicher, die dann bereitgestellt werden, wenn sie benötigt werden.
  • Vereinfachter Betrieb, so dass sich Entwickler auf ihre Kernkompetenzen konzentrieren können.

Nachteile des Serverless Computings

  • Möglicher Kontrollverlust und Plattform-Abhängigkeit.

  • Damit verbunden auch komplizierte Prozesse bei einem allfälligen Anbieterwechsel.

  • Performance kann schwächer sein, da die Ressourcen erst auf Abruf bereitgestellt werden, was zu verzögerten Reaktionen führen kann.

Anbieter von Serverless-Computing-Lösungen

AWS Lambda von Amazon

Amazon brachte mit AWS Lambda die erste Lösung für Serverless-Computing auf den Markt. AWS Lambda führt Code automatisch aus auf einer hochverfügbaren Datenverarbeitungs-Infrastruktur. Dabei erledigt das System die gesamte Administration, inklusive Wartung des Servers und Betriebssystems und Bereitstellung von Kapazitäten und automatische Skalierung. Abgerechnet wird nach Anzahl der ausgeführten Requests und der Zeit, während der Code ausgeführt wird.

Google Cloud Functions

Die Serverless-Computing-Lösung von Google ist seit 2016 auf dem Markt. Das Angebot richtet sich vor allem an Entwickler, die APIs und Microservices aus einfachen, lose gekoppelten Funktionen erstellen möchten. Dieses Modell fördert die Agilität von Software-Teams, da diese kleine, unabhängige Funktionseinheiten bereitstellen können, die speziell einer bestimmten Aufgabe dienen.

Microsoft Azure Functions

Auch Microsoft hat im Jahr 2016 sein Serverless-Computing-Produkt in sein Portfolio aufgenommen. Hinsichtlich Funktionen unterscheidet sich die Lösung von Microsoft kaum von Google oder Amazon, jedoch bietet Microsoft Azure Functions eine grössere Auswahl an Programmiersprachen an und richtet sich damit an ein breiteres Publikum.

Managed AWS bei nine

So einfach die Entwicklung von Applikationen und Funktionen dank serverloser Infrastruktur auch klingen mag, so gibt es doch einige Stolpersteine:

  • Migration: Für einen Umzug in die Cloud stellen die Anbieter keine persönliche Unterstützung zur Verfügung. Kunden müssen selber ausprobieren, ob ihre gewünschten Funktionen mit der Cloud kompatibel sind und wie sie die Daten migrieren können.
  • Know-How: Es gibt eine enorme Auswahl an unterschiedlichen Funktionen und Services, ohne dass Cloud-Anbieter individuelle Empfehlungen abgeben. Dies führt zu zeit- und kostenintensiven Recherchen auf Kundenseite.
  • Management: Bei Serverless Computing wird oft nur ein Teil serverless ausgeführt. Andere Teile werden auf virtuellen Instanzen ausgeführt, welche nach wie vor gewartet werden müssen.
  • Sicherheit und Risiken: Bei Problemen oder Fehlern werden diese nicht automatisch gemeldet oder behoben. Dies führt dazu, dass Kundensysteme nicht einwandfrei funktionieren oder nicht verfügbar sind.

 Als erfahrener Anbieter von Cloud- und Hosting-Lösungen unterstützen wir Kunden dabei, die Infrastruktur in die AWS-Cloud von Amazon zu migrieren. Erfahren Sie mehr über unsere Managed AWS-Cloud-Lösung und kontaktieren Sie uns für eine persönliche Beratung.




Erhalten Sie in unserem Whitepaper«Unternehmen in der Cloud» weitere
Informationen zum Thema Cloud und was dies für Unternehmen bedeutet.

 

Simi

Product Marketing Manager at nine internet solutions