Serverloses Computing bietet eine Alternative zu herkömmlichen Rechenmethoden und Infrastrukturen und verschafft IT-Mitarbeitern dadurch mehr Zeit für wichtigere Aufgaben. Daher wird serverloses Computing in der Branche und in Markttrends immer beliebter.
Eine Umfrage von O’Reilly ergab, dass 40 % der Befragten bei einem Unternehmen arbeiteten, das eine serverlose Architektur eingeführt hatte. Und eine Umfrage von Datadog ergab, dass 50 % der AWS-Nutzer die serverlose Funktion verwendeten.
Von 1,9 Milliarden US-Dollar im Jahr 2016 ist der serverlose Markt zunehmend beliebter geworden und wird voraussichtlich Ende 2021 einen Wert von 7,7 Milliarden US-Dollar haben.
Was ist serverloses Computing?
Serverloses Computing bezeichnet laut Naina Singh, Principal Product Manager bei Red Hat, eine Methode zum Erstellen und Ausführen von Anwendungen und Diensten, ohne die zugrunde liegende Serverinfrastruktur verwalten zu müssen. Zwar sind Server beteiligt, doch um diese kümmert sich ein Cloud-Anbieter. Eine serverlose Architektur umfasst daher die Zuweisung von Rechenressourcen entsprechend den Anforderungen der Nutzer.
Dadurch wird die IT für andere Aufgaben entlastet, und Entwickler können programmieren, ohne sich um zeitaufwendige Tätigkeiten wie die Wartung von Geräten, Konfiguration, Kapazitätsplanung, Fehlertoleranz oder die Verwaltung und Skalierung von Containern, physischen Servern und virtuellen Maschinen kümmern zu müssen.
„Die Bezeichnung serverlos leitet sich daraus ab, dass Aufgaben im Zusammenhang mit Servern – etwa die Bereitstellung, Skalierung und Verwaltung der zum Ausführen der Anwendung erforderlichen Infrastruktur – von den Endnutzern entkoppelt werden und die Server dadurch unsichtbar sind“, sagte Singh.
Vorteile des serverlosen Computings
Zu den Vorteilen einer serverlosen Architektur gehören:
- Einfache Bereitstellung: Statt Wochen für die Auswahl, Beschaffung und Bereitstellung physischer Server aufzuwenden, kann serverloses Computing innerhalb weniger Stunden einsatzbereit sein. Das steigert die Produktivität, da die Zeit hauptsächlich für Programmierung, Entwicklung und andere Aufgaben statt für die interne Infrastruktur aufgewendet wird.
- Kosten: Da es sich um ein nutzungsabhängiges Modell handelt, ist das Mieten serverloser Ressourcen oft günstiger als die Wartung einer festen Anzahl von Servern.
- Skalierbarkeit: Cloud-Anbieter ermöglichen es, Speicher, Rechenleistung und andere physische Ressourcen bei wachsendem Unternehmen nach Bedarf hinzuzufügen oder zu entfernen.
- Prozessunabhängigkeit: Serverlose Umgebungen eignen sich aufgrund ihres ereignisbasierten Systems gut dazu, Teile einer Anwendung zu isolieren. Probleme bleiben dadurch auf einen begrenzten Bereich beschränkt.
Die besten Anbieter für serverloses Computing
Red Hat
Red Hat bietet serverlose Funktionen über Red Hat OpenShift Serverless an, das Teil eines OpenShift-Abonnements ist. Es ermöglicht die Installation mit einem Klick auf OpenShift über einen Operator.
Neben der Nutzung der Befehlszeilenschnittstelle (CLI) ermöglicht die DevConsole von OpenShift auch die serverlose Entwicklung und Bereitstellung.
Wichtige Alleinstellungsmerkmale
- Container lassen sich dank einer vereinfachten Entwicklererfahrung leicht nutzen: Anwendungen und Code werden auf serverlosen Containern bereitgestellt, wobei die Infrastruktur abstrahiert wird und der Fokus auf dem Wesentlichen liegt.
- Unveränderliche Revisionen: Neue Funktionen bereitstellen und Canary-, A/B- oder Blue-Green-Tests mit schrittweiser Traffic-Umleitung einfach und nach bewährten Methoden durchführen.
- Die Anzahl der Replikate oder das Inaktivsetzen muss nicht konfiguriert werden. Dank integrierter Zuverlässigkeit und Fehlertoleranz können Nutzer bei Nichtgebrauch automatisch auf null skalieren oder während Spitzenzeiten auf Tausende skalieren.
- OpenShift Serverless kann lokal sowie in öffentlichen oder hybriden Cloud-Umgebungen bereitgestellt werden, sodass Nutzer bei Bedarf Datenlokalität und SaaS nutzen können.
- Verwenden Sie eine beliebige Programmiersprache oder Laufzeitumgebung, etwa Java, Python, Go, JavaScript, Quarkus, SpringBoot oder Node.js.
- Erstellen Sie lose gekoppelte und verteilte Apps, die über Operatoren mit einer Vielzahl integrierter oder Drittanbieter-Ereignisquellen bzw. Konnektoren verbunden werden.
- OpenShift Serverless wird für lokale Installationen der OpenShift-Kubernetes-Plattform oder in einem hybriden Kontext in Kombination mit gehosteten OpenShift-Installationen angeboten.
- Als Knative-Distribution bietet es Vorteile wie ein containerbasiertes Paketformat, Skalierung auf null, einen ausgefeilten Mechanismus zur automatischen Skalierung auf Grundlage des HTTP-Verbrauchs, produktionsreifen Support für ereignisgesteuerte serverlose Anwendungen mit Apache Kafka sowie Unterstützung für ein funktionales Programmiermodell.
Cloudflare Workers
Cloudflare Workers ist eine Plattform zur sofortigen Bereitstellung von Code für Edge- und Performance-Computing. Sie ermöglicht es der IT, weltweit serverlosen Code mit hoher Performance, Zuverlässigkeit und Skalierbarkeit bereitzustellen.
Wichtige Alleinstellungsmerkmale
- Cloudflare verspricht, dass von der Registrierung bis zur weltweiten Bereitstellung weniger als fünf Minuten vergehen.
- Der Code wird innerhalb von Millisekunden ausgeführt.
- Die Konfiguration automatischer Skalierung und von Load-Balancern entfällt, und ungenutzte Kapazität muss nicht bezahlt werden.
- Der Traffic wird automatisch über Tausende von Servern verteilt und per Load-Balancing verarbeitet.
- Der Code wird über das Netzwerk von Cloudflare ausgeführt.
- Als Programmiersprachen stehen JavaScript, Rust, C und C++ zur Verfügung.
AWS Lambda
AWS Lambda ist ein serverloser, ereignisgesteuerter Rechendienst, mit dem Code für praktisch jede Art von Anwendung oder Backend-Dienst ausgeführt werden kann, ohne Server bereitzustellen oder zu verwalten. Lambda kann aus mehr als 200 AWS-Diensten und SaaS-Anwendungen ausgelöst werden, wobei nur die tatsächliche Nutzung bezahlt wird.
Wichtige Alleinstellungsmerkmale
- Verwenden Sie den Amazon Simple Storage Service (Amazon S3), um nach einem Upload die Datenverarbeitung durch AWS Lambda in Echtzeit auszulösen, oder verbinden Sie ein vorhandenes Amazon-EFS-Dateisystem, um massiv parallelen gemeinsamen Zugriff für die Verarbeitung großer Dateimengen zu ermöglichen.
- AWS Lambda verarbeitet Daten in großem Maßstab.
- Code wird mit der vom Nutzer benötigten Kapazität ausgeführt.
- AWS Lambda passt seine Skalierung automatisch an die Datenmengen an.
- Ereignisauslöser können an die Präferenzen der Nutzer angepasst werden.
- Nutzer können interaktive Web- und Mobile-Backends ausführen.
Oracle Cloud Functions
Oracle Cloud Functions ist eine serverlose Plattform, mit der Entwickler Anwendungen erstellen, ausführen und skalieren können, ohne Infrastruktur zu verwalten. Darüber hinaus lässt sich Oracle Cloud Functions in Oracle Cloud Infrastructure, Plattformdienste und SaaS-Anwendungen integrieren.
Da Oracle Cloud Functions auf dem Open-Source-Projekt Fn basiert, können Entwickler Anwendungen erstellen, die auf andere Cloud- und lokale Umgebungen portiert werden können.
Wichtige Alleinstellungsmerkmale
- Auf Oracle Cloud Functions basierender Code läuft in der Regel nur kurze Zeit, und Nutzer zahlen ausschließlich für die von ihnen verwendeten Ressourcen.
- Nutzer können eigenen Code schreiben und bereitstellen.
- Oracle stellt Ressourcen automatisch bereit und skaliert sie.
- Oracle Cloud Functions verpackt Code automatisch als Docker-Images.
- Fortgeschrittene Entwickler können Dockerfiles verwenden, native Bibliotheken installieren und die Laufzeitumgebung der Funktion anpassen.
- Dank der Unterstützung für Python, Go, Java, Node und weitere Sprachen können Entwickler für jede Aufgabe die geeignetste Sprache wählen und ihre serverlosen Anwendungen problemlos integrieren.
- Nutzer können den verwalteten Dienst oder selbst verwaltete, Open-Source-basierte Fn-Cluster verwenden, die lokal oder in einer beliebigen Cloud bereitgestellt werden.
Back4App
Back4App, das auf der Open-Source-Plattform Parse basiert, bietet ein Low-Code-Backend zum Erstellen von Anwendungen. Es kann verwendet werden, um relationale Daten in der Cloud zu speichern und abzufragen und sie über GraphQL und REST zugänglich zu machen.
Wichtige Alleinstellungsmerkmale
- Back4App lässt sich problemlos in mobile und Web-Apps integrieren.
- Nutzer können relationale Daten über GraphQL, REST oder Parse-SDKs speichern und abfragen.
- Geschäftslogik kann mithilfe von Cloud-Funktionen hinzugefügt werden.
- Apps können schneller gemacht werden, ohne die Infrastruktur zu verwalten.
- Nutzer können in wenigen Minuten relationale Datenmodelle erstellen.
- Nutzer können komplexe relationale Abfragen auf einer wirklich serverlosen Plattform ausführen.
Kinvey
Progress Kinvey ist eine serverlose Plattform für die Anwendungsentwicklung, die Entwicklern Werkzeuge zum Erstellen von Multichannel-Anwendungen mit einem Cloud-Backend und Frontend-SDKs bietet. Sie stellt Lösungen für Entwicklungsanforderungen wie Datenspeicher, Datenintegration, Single-Sign-on-Integration und Dateispeicherung bereit.
Wichtige Alleinstellungsmerkmale
- Entwickler können sich auf das konzentrieren, was einen Mehrwert für ihre App bietet – die Benutzererfahrung (UX) und die Geschäftslogik der Anwendung.
- In Kinvey erstellte Apps bestehen aus mehreren entkoppelten Teilen, die zusammenarbeiten.
- Die Clientanwendung ist der Frontend-Teil einer Kinvey-App, mit dem die Nutzer interagieren.
- Das Client-SDK ist die Schnittstelle zwischen dem Client und dem Backend des Kinvey-Dienstes.
- Die Backend-App enthält alle APIs und Dienste – Daten, Authentifizierung, serverseitige Logik usw. –, die für eine Frontend-Client-App verfügbar sind.
- Jede Backend-App kann eine oder mehrere Umgebungen zur Unterstützung des Entwicklungslebenszyklus haben.
Microsoft Azure Functions
Microsoft Azure Functions bietet eine vollständige Erfahrung für die serverlose Anwendungsentwicklung. Vom lokalen Erstellen und Debuggen bis zur Bereitstellung und Überwachung in der Cloud können Microsoft-Azure-Functions-Erweiterungen für Visual Studio und Visual Studio Code genutzt werden, um die Entwicklung auf einem lokalen Rechner schneller und effizienter zu gestalten.
Wichtige Alleinstellungsmerkmale
- Microsoft Azure Functions lässt sich vollständig in die gesamte Azure-Plattform integrieren.
- Nutzer können mit Azure Pipelines Continuous Integration und Continuous Delivery (CI/CD) einrichten.
- Mit Azure Monitor erhalten Nutzer intelligente und proaktive Einblicke in die Performance serverloser Anwendungen im Produktivbetrieb.
- Nutzer können mit integrierten Werkzeugen und integrierten DevOps-Funktionen erstellen, debuggen, bereitstellen und überwachen.
Google Cloud Functions
Google Cloud Functions ermöglicht es Nutzern, Code in der Cloud auszuführen, ohne Server oder Container verwalten zu müssen. Google Cloud Functions ist ein skalierbares, nutzungsabhängiges Functions-as-a-Service-(FaaS)-Produkt zum Erstellen und Verbinden ereignisgesteuerter Dienste mit auf einzelne Aufgaben spezialisierten Codeabschnitten.
Wichtige Alleinstellungsmerkmale
- Erstellen und stellen Sie eine Google Cloud Function mithilfe einer Kurzanleitung und ausschließlich mit einem Webbrowser bereit.
- Versorgen Sie Nutzer von null bis hin zu großem Maßstab.
- Google Cloud Function bietet eine vereinfachte Entwicklererfahrung und steigert die Entwicklungsgeschwindigkeit.
- Schreiben Sie Code, und überlassen Sie Google Cloud Function die operative Infrastruktur.
- Schreiben und führen Sie kleine Codeabschnitte aus, die auf Ereignisse reagieren.
- Vereinfachen Sie anspruchsvolle Orchestrierungsprobleme, indem Sie Google-Cloud-Produkte über Ereignisse miteinander oder mit Drittanbieterdiensten verbinden.
IBM Cloud Functions
IBM Cloud Functions ist eine auf Apache OpenWhisk basierende FaaS-Plattform. Sie ermöglicht es Entwicklern, Anwendungscode ohne Server auszuführen, automatisch zu skalieren und bei Nichtnutzung nichts zu bezahlen.
Wichtige Alleinstellungsmerkmale
- Namespaces können explizit verwaltet werden und werden im Dashboard angezeigt.
- Bezahlen Sie nur für die Nutzungszeit – bis auf ein Zehntel einer Sekunde genau.
- Führen Sie Aktionen tausende Male in einem Bruchteil einer Sekunde oder einmal pro Woche aus. Aktionsinstanzen werden exakt entsprechend der Nachfrage skaliert und anschließend entfernt.
- Ermöglichen Sie mobilen Entwicklern den Zugriff auf serverseitige Logik und das Auslagern rechenintensiver Aufgaben an eine skalierbare Cloud-Plattform.
- Implementieren Sie Funktionen in Sprachen wie Swift und nutzen Sie serverseitige Funktionen über das iOS-SDK.
Knative
Das Knative-Open-Source-Framework wird von vielen anderen serverlosen Umgebungen verwendet. So basiert beispielsweise Red Hat OpenShift Serverless auf Knative und läuft auf Red Hat OpenShift, der Enterprise-Distribution von Kubernetes von Red Hat.
Knative ist somit ein Open-Source-Projekt der CNCF in der Inkubationsphase, das eine containerbasierte serverlose Lösung auf Kubernetes bietet.
Wichtige Alleinstellungsmerkmale
- Knative bietet als Open-Source-Plattform eine kostenlose Nutzung.
- Es gibt keinen Vendor Lock-in.
- Es handelt sich um eine plattformunabhängige Lösung für die Ausführung serverloser Bereitstellungen.
- Nutzer können auf null und von null aus skalieren.
- Wählen Sie je nach Bedarf Ihre Rollout-Strategie.
- Verarbeiten Sie Ereignisse aus vielen Quellen.
- Führen Sie serverlose Container problemlos in Kubernetes aus. Knative kümmert sich um die Details von Netzwerk, Autoskalierung (auch auf null) und Versionsverwaltung.
Die Plattform
Parse ist eine Open-Source-Plattform, die häufig als Grundlage für andere serverlose Angebote verwendet wird. Mit Objekt- und Dateispeicher, Benutzerauthentifizierung, Push-Benachrichtigungen und Dashboards lassen sich damit schneller Anwendungen erstellen. Darüber hinaus ist Parse Server ein Open-Source-Backend, das auf jeder Infrastruktur bereitgestellt werden kann, auf der Node.js ausgeführt werden kann.
Wichtige Alleinstellungsmerkmale
- Parse Server verwendet MongoDB oder PostgreSQL als Datenbank.
- Stellen Sie Parse Server auf Ihrer eigenen Infrastruktur bereit und führen Sie es dort aus.
- Entwickeln und testen Sie Ihre App lokal mit Node.
- Die Plattform lässt sich mithilfe von MongoDB und Parse Server problemlos lokal ausführen.