Serverloses Computing ist ein Cloud-Computing-Ausführungsmodell, bei dem Maschinenressourcen nach Bedarf 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.
Serverloses Computing macht Server nicht überflüssig. Stattdessen wird die Anwendungsentwicklung durch die Abstraktion von Routineaufgaben der Infrastruktur optimiert. Das bedeutet, dass Sie die zugrunde liegenden Maschinen, auf denen Ihre Anwendungen ausgeführt werden, nicht sehen, konfigurieren, verwalten oder skalieren müssen. Sie zahlen also für den Dienst des Servers, nicht für den Server selbst.
Aus der Sicht der Entwicklungsteams gibt es keine Server – sie schreiben den Code, stellen ihn in der Produktionsumgebung bereit und der Cloud-Anbieter kümmert sich um 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 Betriebsaufwand, 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 ganze Arbeit im Hintergrund, um sicherzustellen, dass Sie die Ressourcen haben, um Ihren Code auszuführen und 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 Moment mal: Bieten nicht auch andere Arten von Cloud-Computing 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) ebenfalls On-Demand-Zugriff auf Rechenressourcen bieten.
Die Ihnen zugewiesene Cloud-Infrastruktur bleibt jedoch aktiv, auch wenn Sie sie nicht nutzen. Außerdem sind Sie dafür verantwortlich, die Serverkapazität zu skalieren oder Ihre Anwendungen so zu konfigurieren, dass sie je nach Nutzerbedarf hoch- oder herunterskaliert werden.
Serverlose Architekturen sind dagegen ereignisgesteuert. Bei diesem Modell stellt der Anbieter nur dann Ressourcen bereit, wenn ein Ereignis die Ausführung Ihres Codes auslöst. Die Ressourcen werden sofort und automatisch an die Anfragen angepasst.
Wichtige Definitionen:
Serverlos
PaaS
Container
VMs
Beim serverlosen Cloud-Computing gibt es im Allgemeinen zwei Arten von Diensten: FaaS (Function as a Service) und Backend as a Service (BaaS).
In der Entwicklung wird der Begriff „serverlos“ in der Regel für FaaS-Angebote verwendet. FaaS ist jedoch technisch gesehen eine Untergruppe der serverlosen Technologie. Serverloses Computing umfasst alle Arten von Diensten, bei denen Serververwaltung, Konfiguration, Skalierung und Abrechnung für den Endnutzer abstrahiert werden. Dazu gehören Datenbanken, Speicher, Ereignis-Streaming, Messaging und API-Gateways.
Zu den häufigsten und neuen Beispielen für serverloses Computing gehören:
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
Serverloses Computing kann DevOps-Teams die Definition der Infrastruktur für Integration, Tests, Bereitstellung und Deployment erleichtern. So können sie sich auf das Schreiben und Bereitstellen von Code direkt in der Produktion konzentrieren.
Beliebige Sprache verwenden
Serverlose Umgebungen unterstützen jede Sprache und jedes Framework. Teams können also in der Sprache oder mit dem Framework arbeiten, mit dem sie am besten vertraut sind – Go, Python, Java, Node.js, .NET und viele mehr.
Einer der größten Nachteile von serverlosem Computing ist, dass es sich noch um eine relativ neue Technologie handelt. Daher ist es noch nicht für alle potenziellen Anwendungsfälle geeignet.
Es ist auch klar, dass einige der aktuellen Schwächen im Laufe der Zeit behoben werden, da sich das serverlose Computing weiterentwickelt. 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.