Der Serverless-Trend erfreut sich seit einigen Jahren wachsender Beliebtheit. Eine kürzlich durchgeführte IBM-Umfrage geht davon aus, dass die Akzeptanz von Serverless Computing zunimmt: 68 % der Nichtnutzer geben an, dass sie in den nächsten zwei Jahren wahrscheinlich auf einen Serverless-Ansatz umsteigen werden.
Für Entwickler ist Serverless Computing ein Segen. Sie können Code schreiben und bereitstellen, ohne sich um die zugrunde liegende Infrastruktur kümmern zu müssen. Da die Abrechnung außerdem auf der Ausführung basiert, müssen Unternehmen keine Rechenkapazität und keinen Speicher im Voraus kaufen. So können sie Code zu einem Bruchteil der Kosten schreiben.
Wie funktioniert Serverless Computing?
Die Verwaltung eines Servers ist ein komplexer Prozess und oft mit viel Arbeit verbunden. Das Einrichten eines Servers und die Bereitstellung von Servern für Ihre Anwendung sind nur der erste Schritt. Sie müssen ihn außerdem überwachen, regelmäßig warten und konfigurieren, Server und Anwendungen auf dem neuesten Stand halten, sie je nach Bedarf skalieren und vieles mehr.
Serverless entbindet Sie dagegen von all diesen Aufgaben. Alles wird abstrahiert, sodass sich Entwickler auf die geschäftlichen Anforderungen konzentrieren können, ohne sich um die Verwaltung der zugrunde liegenden Infrastruktur kümmern zu müssen.
Entwickler verwenden eine Programmiersprache ihrer Wahl, meist Python oder Node.js, und nutzen Ressourcen von Drittanbietern, um Anwendungen zu hosten. Dadurch wird das Hosting von Anwendungen schnell und effizient.
Aus Sicht der Entwickler ist es jedoch beinahe so, als wären die Server nicht vorhanden. Daher stammt der Begriff „serverless“ – serverlos. Tatsächlich stellen die Server weiterhin Backend-Dienste bereit, laufen aber im Hintergrund, während der Anbieter alles verwaltet.
Außerdem lesen: Was Sie über Cloud-Automatisierung wissen müssen: Tools, Vorteile und Anwendungsfälle
Welche Merkmale hat Serverless Computing?
Zu den wichtigsten Merkmalen von Serverless Computing gehören:
- Abstrahiert die Server und die Komplexität ihrer Wartung.
- Bietet ein Pay-as-you-go-Kostenmodell, bei dem nur die tatsächlich genutzten Ressourcen abgerechnet werden. Dadurch entfallen Kosten für ungenutzte Ressourcen oder ungenutzten Speicherplatz.
- Skaliert bei wechselndem Bedarf schnell und automatisch nach oben oder unten.
- Serverless ist ereignisgesteuert, sodass es nur ausgeführt wird, wenn ein bestimmtes Ereignis es auslöst. Sobald ein Ereignis ausgelöst wurde, führt es die Aufgabe aus und wird nach einigen Minuten beendet.
- Ermöglicht es Entwicklern, sich auf das Schreiben von Code zu konzentrieren, anstatt Zeit mit der Wartung der Infrastruktur zu verlieren.
Vorteile von Serverless Computing
Serverless Computing bietet mehrere Vorteile:
- Schnellere Markteinführung: Bei Serverless müssen Sie sich nicht um den Aufbau der Backend-Infrastruktur kümmern. Alles ist bereits Bestandteil eines Pakets. Ihre Entwicklungsumgebungen lassen sich dadurch einfach einrichten, sodass Sie Ihre Lösung schnell auf den Markt bringen können.
- Keine Serververwaltung: Serverless Computing läuft auf Servern, die jedoch von Cloud-Service-Providern (CSPs) verwaltet werden. Entwickler müssen sich daher nicht um die Serververwaltung kümmern; sie müssen lediglich Code ausführen.
- Geringere Kosten: Bei herkömmlichen Systemen kaufen Sie meist Server mit überschüssiger Kapazität, um Ausfallzeiten zu vermeiden. Bei Serverless zahlen Sie jedoch nur für die Ressourcen, die Sie nutzen, und für die Zeit, in der sie laufen. Da außerdem die Ausführung abgerechnet wird, zahlen Sie nur für den Zeitraum, in dem der Code ausgeführt wird. Daher ist Serverless Computing günstiger als andere Dienste, bei denen Anwendungen auch dann abgerechnet werden, wenn sie nicht genutzt werden.
- Hohe Skalierbarkeit: Einer der größten Vorteile von Serverless ist die Möglichkeit, die Kapazität automatisch und unkompliziert an den Bedarf anzupassen – ohne Ihr Zutun.
Nachteile von Serverless Computing
Obwohl Serverless Computing für bestimmte Anwendungsfälle ideal ist, hat es auch einige Nachteile.
- Abhängigkeit vom Anbieter: Serverless-Plattformen werden meist von Cloud-Anbietern bereitgestellt, sodass Unternehmen zwangsläufig an einen der großen CSPs gebunden werden. Wenn Sie anbieterunabhängig bleiben möchten, ist Serverless wahrscheinlich nicht die richtige Option für Sie.
- Nur für begrenzte Zeit ausführbar: Ein Nachteil von Serverless besteht darin, dass Funktionen nur für eine begrenzte Zeit ausgeführt werden. Daher eignen sich lang laufende Workloads nicht ideal für die Bereitstellung mit Serverless. AWS-Lambda-Funktionen laufen beispielsweise pro Ausführung maximal 15 Minuten, danach wird die Funktion beendet. Wenn Sie jedoch lang laufende Funktionen haben, sind andere Bereitstellungsmethoden möglicherweise besser geeignet.
- Schwieriges Debugging: Das Debugging von Anwendungen ist bei Serverless eine Herausforderung, da es über ein verteiltes Netzwerk erfolgt. Außerdem sind Server von vorübergehender Natur, sodass nur sehr wenig Zeit bleibt, die Ursache des Problems zu ermitteln. Protokollierung hilft zwar, für ein präzises Debugging benötigen Sie jedoch fortschrittliche Tools.
- Höhere Latenz: Wenn eine Serverless-Funktion längere Zeit nicht genutzt wird, fährt der Anbieter sie in der Regel herunter. Beim nächsten Aufruf einer Funktion kommt es dann zu einer höheren Latenz – einem sogenannten Kaltstart. Kaltstarts können insbesondere bei zeitkritischen Anwendungen zu einem großen Problem werden.
Außerdem lesen: Eine Strategie zur Modernisierung der Cloud entwickeln: Interview mit Moti Rafalin von vFunction
Serverless-Plattformen
Zu den beliebten Serverless-Plattformen gehören AWS Lambda, Azure Functions, Google Cloud Functions und IBM OpenWhisk. Im Folgenden werfen wir einen genaueren Blick auf sie.
AWS Lambda
AWS Lambda ist einer der bekanntesten Namen im Bereich Serverless Computing. Der Dienst wurde 2014 eingeführt und gilt als Wegbereiter dafür, dass sich das Konzept von Serverless Computing im Mainstream etablieren konnte. AWS Lambda lässt sich nahtlos in andere AWS-Dienste integrieren und ist daher die erste Wahl für alle, die bereits andere AWS-Produkte nutzen.
Funktionen:
- Der Dienst unterstützt nativ Sprachen wie Node.js, Python, Ruby, Java, Go, .NET Core, PowerShell und C#. Außerdem können Nutzer eigene Sprachlaufzeiten implementieren.
- Die kostenlose Stufe umfasst 1 Million Ausführungen pro Monat.
- Die maximale Ausführungszeit beträgt 15 Minuten.
- Sie können Funktionen synchron oder asynchron aufrufen oder ein auf Abfragen basierendes Aufrufmodell verwenden.
- Wird unter anderem von Netflix, Asana, ZALORA, Nordstrom und Coca-Cola genutzt.
Azure Functions
Azure Functions ist ein bedarfsgesteuerter Serverless-Computing-Dienst für Microsoft Azure, mit dem Entwickler ereignisgesteuerten Code ausführen können.
Funktionen:
- Azure Functions bietet drei Hostingpläne, die auf Ihre Anforderungen zugeschnitten sind. Die kostenlose Stufe umfasst 1 Million Ausführungen pro Monat. Darüber hinaus gibt es abgestufte Preise für unterschiedliche Anforderungen.
- Der Dienst unterstützt JavaScript, C#, PowerShell, F#, Java, Python und TypeScript.
- Die maximale Ausführungszeit beträgt 10 Minuten.
Google Cloud Functions
Google Cloud Functions wurde 2016 als Teil der Google Cloud Platform veröffentlicht. GCF lässt sich gut in andere Angebote von Google integrieren und ist daher eine gute Wahl für Nutzer, die bereits Google-Produkte verwenden.
Funktionen:
- Die ersten 2 Millionen Anfragen werden kostenlos verarbeitet.
- Der Dienst ist günstiger als Azure Functions und Lambda.
- GCF unterstützt verschiedene ereignisbasierte Auslöser wie Cloud-Pub/Sub-Trigger, HTTP, Cloud Firestore, Firebase Realtime Database, Firebase Authentication und weitere.
IBM Cloud Functions
IBM Cloud Functions basiert auf Apache OpenWhisk und ist eine Open-Source-Serverless-Plattform, mit der Sie Code bei Bedarf ausführen können.
Funktionen:
- Der Dienst unterstützt PHP, Swift, die Node.js-Laufzeitumgebung, Java und Python. Andere Programmiersprachen lassen sich jedoch über Docker-Container integrieren.
- Die Ausführungszeit ist auf 10 Minuten begrenzt.
- Der Dienst bietet ein regionales SLA (Service-Level-Agreement) von 99,95 %.
- IBM Cloud Functions ist in den IBM Monitoring Service integriert und liefert dadurch bessere Einblicke.
- Wird von The Weather Channel, ESPN Fantasy Football und The Masters genutzt.
Die Zukunft von Serverless
Da für den globalen Serverless-Markt erwartet wird, mit einer durchschnittlichen jährlichen Wachstumsrate von 30 % zu wachsen und bis 2026 16 Milliarden US-Dollar zu erreichen, wird Serverless Computing eine nachhaltige und praktikable Computing-Option bleiben. Serverless Computing ist eine kostengünstige Option für Kunden, die Code ausführen möchten, ohne zusätzlich durch die Planung von Kapazitäten und die Bereitstellung von Ressourcen belastet zu werden.
Darüber hinaus verspricht der ereignisgesteuerte Ansatz ein entscheidender Faktor für Unternehmen zu werden, die niedrige Betriebskosten mit einer schnelleren Markteinführung verbinden möchten. Da er jedoch nicht für alle Szenarien ideal ist, sollten sich Unternehmen der möglichen Fallstricke bewusst sein, bevor sie auf den Serverless-Zug aufspringen.
Lesen Sie als Nächstes: Die besten Cloud-Networking-Dienste und -Lösungen