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.
Stellen Sie sich Serverless wie die Wasserversorgung vor. Sie könnten Ihren eigenen Brunnen graben, die Wasserqualität testen und alle externen Leitungen installieren und warten, die für die Wasserversorgung Ihres Hauses erforderlich sind. Oder Sie schließen sich an die zentrale Wasserversorgung Ihrer Stadt an. Sie drehen einfach den Wasserhahn auf und erhalten so viel Wasser, wie Sie gerade benötigen. Die Stadt schickt Ihnen dann eine monatliche Rechnung über die genaue Menge des verbrauchten Wassers.
Ebenso stellen Cloud-Anbieter automatisch die Infrastrukturressourcen und Laufzeitumgebungen bereit, die zum Ausführen Ihrer serverlosen Anwendungen erforderlich sind, und skalieren sie automatisch wieder auf null herunter, wenn die Ausführung abgeschlossen ist. In der Regel werden Ihnen die 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 Entwicklungsproduktivität
Entwickler, die serverlose Lösungen nutzen, können sich auf das Schreiben von Code und das Optimieren der Geschäftslogik konzentrieren, anstatt sich um die Bereitstellung, Verwaltung oder Skalierung der Infrastruktur zu kümmern.
Sofort einsatzbereite Skalierbarkeit
Serverlose Architekturen skalieren eigenständig hoch oder herunter. Im Gegensatz zum Autoscaling bei anderen Arten von Cloud-Computing, das die Feinabstimmung von Regeln erfordert, ist das serverlose Autoscaling sofort einsatzbereit und kann auf null heruntergefahren werden.
Flexible Preisgestaltung
Serverlose Preismodelle werden oft auf der Grundlage der tatsächlichen Nutzung und der Zeit, die für die Ausführung einer Funktion benötigt wird, berechnet. Außerdem zahlen Sie nicht für ungenutzte Kapazitäten, was die Betriebskosten im Vergleich zu Betrieb und Verwaltung eigener Server senkt.
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 in Höhe von 300 $ und mehr als 20 immer kostenlose Produkten, um Google Cloud kennenzulernen.