Serverloses Computing ist ein Cloud-Computing-Ausführungsmodell, bei dem Maschinenressourcen nach Nutzung zugewiesen werden. Bei einem serverlosen Modell können Entwickler Anwendungen erstellen und ausführen, ohne Server verwalten zu müssen, und bezahlen nur für die exakte Menge an verwendeten Ressourcen. Stattdessen ist der Cloud-Dienstanbieter für die Bereitstellung, Verwaltung und Skalierung der Cloud-Infrastruktur verantwortlich, auf der der Anwendungscode ausgeführt wird.
Auch wenn der Name irreführend sein kann, bedeutet serverlos nicht „keine Server“. Stattdessen abstrahieren serverlose Anwendungen die routinemäßige Infrastrukturarbeit, die mit der Anwendungsentwicklung verbunden ist. Sie haben keinen Einblick in die Maschinen, auf denen Ihre Anwendungen ausgeführt werden. Sie können sie auch nicht konfigurieren und verwalten oder skalieren. Mit anderen Worten: Sie zahlen für den Dienst eines Servers, nicht für den Server selbst.
Aus der Entwicklungsperspektive ist es, als gäbe es überhaupt keine Server: Die Entwickler schreiben den Code und stellen ihn für die Produktion bereit. Der Cloud-Anbieter übernimmt den Rest.
Beim Erstellen von Anwendungen müssen Entwickler in der Regel eine Reihe anderer Serververwaltungsaufgaben ausführen, die sie ausführen müssen, um ihren Code bereitzustellen, z. B. Ressourcen für Verarbeitung und Speicherung definieren, Patching, Load-Balancing und mehr. All diese zusätzlichen Elemente führen zu längeren Bereitstellungszeiten und zusätzlichem operativen Aufwand, was letztendlich die Entwicklungsteams verlangsamt.
Beim serverlosen Computing wird versucht, Entwicklern ein unsichtbares „serverloses“ Erlebnis zu bieten, sodass sie sich keine Gedanken über Server oder alles machen müssen, was eine Anwendung möglicherweise für die Ausführung braucht. Stattdessen erledigt der Dienstanbieter die gesamte Arbeit im Hintergrund, um sicherzustellen, dass Sie über die Ressourcen verfügen, um Ihren Code auszuführen und die Anforderungen zu erfüllen, ohne dass Ihnen ungenutzte Kapazitäten in Rechnung gestellt werden.
Ein serverloser Ansatz ist wie das Wasser in Ihrem Haushalt. Sie könnten Ihren eigenen Brunnen graben, die Wasserqualität testen und alle externen Rohrleitungen installieren und warten, die für den Einbau im Haus erforderlich sind. Sie können auch eine Verbindung mit der Hauptwasserversorgung Ihrer Stadt herstellen. Sie drehen einfach den Wasserhahn und bekommen genau dann so viel Wasser, wie Sie möchten, und die Stadt sendet Ihnen eine monatliche Rechnung über die exakte Wassermenge.
Auf ähnliche Weise richten Cloud-Anbieter die Infrastrukturressourcen und Laufzeitumgebungen hoch, die für die Ausführung Ihrer serverlosen Anwendungen erforderlich sind. Nach Abschluss der Ausführung werden sie automatisch wieder auf null herunterskaliert. In der Regel werden Ihnen die Kosten basierend auf den Ressourcen während der Ausführungszeit in Rechnung gestellt. Dies kann jedoch je nach Dienst und Anbieter variieren.
Aber bieten andere Cloud-Computing-Lösungen keine On-Demand-Ressourcen auf „Pay as you go“-Basis? Es stimmt, dass Cloud-Dienstmodelle wie Infrastructure as a Service (IaaS) und Platform as a Service (PaaS) auch On-Demand-Zugriff auf Rechenressourcen bieten.
Die Ihnen zugewiesene Cloud-Infrastruktur bleibt jedoch auch dann aktiv, wenn Sie sie nicht nutzen. Es liegt auch in Ihrer Verantwortung, die Serverkapazität zu skalieren oder Ihre Anwendungen so zu konfigurieren, dass sie je nach Nutzernachfrage hoch- oder herunterskaliert werden.
Serverlose Architekturen sind dagegen ereignisgesteuert. Bei diesem Modell stellt der Anbieter Ihnen Ressourcen nur dann zur Verfügung, wenn ein Ereignis die Ausführung Ihres Codes auslöst, und skaliert sofort und automatisch auf Anfragen.
Beim serverlosen Cloud-Computing gibt es im Allgemeinen zwei Arten von Diensten: FaaS (Function as a Service) und Backend as a Service (BaaS).
FaaS stellt die Rechenressourcen bereit, die für die Ausführung der Anwendungslogik als Reaktion auf Anfragen erforderlich sind. Diese Logik (oder Funktionen) werden in Containern ausgeführt, die vollständig vom Cloud-Dienstanbieter verwaltet werden. Serverlose Anwendungen werden in der Regel in einzelne Funktionen unterteilt, die als Reaktion auf ein Ereignis eine Aktion ausführen.
BaaS bietet die gesamte Back-End-Funktionalität von Webanwendungen oder mobilen Apps als Dienst, z. B. Authentifizierungsdienste, Datenbankverwaltung, Cloud-Speicher, Push-Benachrichtigungen und Hosting. Mit BaaS entfällt auch die Notwendigkeit, Server, Container oder virtuelle Maschinen zu verwalten.
In der Entwicklung wird der Begriff „serverlos“ in der Regel für FaaS-Angebote verwendet. Es ist jedoch wichtig zu beachten, dass FaaS technisch gesehen eine Teilmenge der serverlosen Technologie ist. Serverloses Computing umfasst alle Arten von Diensten, bei denen die Serververwaltung, -konfiguration, -skalierung und -abrechnung vom Endnutzer abstrahiert sind. Dies kann Datenbanken, Speicher, Ereignisstreaming, Messaging und API-Gateways umfassen.
Im Allgemeinen wird serverloses Computing weiterhin hauptsächlich für einfache, kurzlebige Aufgaben verwendet. Hier einige der häufigsten Beispiele für serverloses Computing:
Höhere Produktivität der Entwickler
Entwickler mit serverloser Lösung konzentrieren sich auf das Schreiben von Code und die Optimierung der Geschäftslogik, anstatt sich um das Bereitstellen, Verwalten oder Skalieren der Infrastruktur kümmern zu müssen.
Sofort einsatzbereite Skalierbarkeit
Serverlose Architekturen werden automatisch herauf- oder herunterskaliert. Im Gegensatz zum Autoscaling bei anderen Arten von Cloud-Computing, für das Feinabstimmungsregeln erforderlich sind, erfolgt das serverlose Autoscaling sofort und kann auf null herunterskaliert werden.
Flexible Preisgestaltung
Serverlose Preismodelle werden häufig auf Grundlage der tatsächlichen Nutzung und der Zeit für die Ausführung einer Funktion abgerechnet. Außerdem zahlen Sie nicht für inaktive Kapazitäten. Dadurch lassen sich die Betriebskosten für den Betrieb und die Verwaltung Ihrer eigenen Server senken.
Schnellere Bereitstellung
Bei serverlosem Computing müssen DevOps-Teams keine Infrastruktur definieren, die für das Einbinden, Testen, Bereitstellen oder Bereitstellen von Code erforderlich ist. Sie schreiben einfach und stellen es in der Produktion bereit.
Beliebige Sprache verwenden
Serverlose Umgebungen unterstützen alle Sprachen und Frameworks, sodass Teams in der Sprache oder mit dem Framework – Go, Python, Java, Node.js, .NET usw. – entwickeln können.
Einer der größten Nachteile von serverlosem Computing besteht darin, dass es sich noch um eine relativ neue Technologie handelt. Daher ist es noch nicht für alle potenziellen Anwendungsfälle geeignet.
Darüber hinaus ist serverloses Computing aufgrund der bewusst sitzungsspezifischen Natur der Serverlosigkeit und der Möglichkeit, auf null herunterzuskalieren, für bestimmte Arten von Anwendungen ungeeignet. Es ist nicht darauf ausgelegt, Code für längere Zeiträume auszuführen und kann nicht immer Anwendungen mit strengen Anforderungen bezüglich niedriger Latenz bereitstellen, z. B. für Finanzdienstleistungsanwendungen.
Nicht zuletzt können die Vorteile der Übergabe der Verwaltung aller Rechenressourcen an einen Drittanbieter auch mehrere Nachteile mit sich bringen. So gewinnen Sie zwar Zeit, um sich auf das Programmieren zu konzentrieren. Die Migration zu einem neuen Cloud-Anbieter kann jedoch auch schwierig sein. Sie haben auch keinen Einblick, wo oder wie Ihr Dienst ausgeführt wird, und haben nur begrenzte Kontrolle darüber, wie Sie skalieren, auf welcher Art von Hardware Code ausgeführt wird und wie Sie nach einer Notfallwiederherstellung vorgehen.
Dennoch gibt es beim serverlosen Computing einiges zu schätzen, insbesondere für Unternehmen, die Entwickler dabei unterstützen möchten, schneller zu arbeiten, und nach einer einfacheren, kostengünstigeren Methode zum Erstellen cloudbasierter Anwendungen suchen.
Es ist auch klar, dass einige der aktuellen Schwachstellen im Laufe der Zeit durch die kontinuierliche Weiterentwicklung von serverlosem Computing beseitigt werden. Insbesondere wird bereits viel an Open-Source-Implementierungen von serverlosem Computing und an Möglichkeiten gearbeitet, Cloud-Dienste offener zu gestalten, um Lösungen auf verschiedene Plattformen und Umgebungen übertragbar zu machen.
Profitieren Sie von einem Guthaben über 300 $, um Google Cloud und mehr als 20 „Immer kostenlos“-Produkte kennenzulernen.