Zuerst war es der physische Server, der sofort einsatzbereit war. Anschließend übernahm die virtuelle Maschine mit besseren Funktionalitäten. Nun schreitet die Einführung von Serverless Computing im Entwickler-Ökosystem in erstaunlichem Tempo voran. Das größte Hindernis bei physischen Servern ist deren Verwaltung, die durch die Virtualisierung mittels Emulation eines realen Systems behoben wird, wodurch die Verwaltung verschiedener Funktionen optimiert wird. Jetzt macht die Serverless-Architektur den Entwicklern das Leben noch leichter.

Grundsätzlich gilt: In einer Serverless-Architektur laufen Server irgendwo im Hintergrund, ohne dass Sie sich um diese Server kümmern müssen. Das mag für die Entwickler von Vorteil sein, aber nicht unbedingt revolutionär. Denken Sie nun über die Feinheiten der modernen Softwareentwicklung nach, bei der Programmierer mit Problemen in Bezug auf Leistung, Skalierbarkeit, Sicherheit, Privatsphäre der Benutzer und vielem mehr konfrontiert werden. Serverless bietet einfache Möglichkeiten für Entwickler, neue Software zu entwickeln, zusammen mit einer akzeptierenden Community, die sie auf dem Weg zu einem besseren Verständnis ihres Handwerks unterstützt und sie zu professionellen Entwicklern macht. Darüber hinaus können sich erfahrene Programmierer mit Hilfe von Serverless auf das Schreiben von Code konzentrieren, anstatt auf die Verwaltung von Servern oder das Sharding von Datenbanken.
Die Serverless-Architektur verändert die Art und Weise, wie Entwickler Anwendungen erstellen, bereitstellen und verwalten, hat aber auch Auswirkungen auf die Entscheidungsfindung im Unternehmen und die Organisationsstruktur. Um all das zu verstehen, müssten Sie den grünen Knopf auf Ihrer Zeitmaschine drücken und ein paar Jahre zurückreisen, um zu sehen, wie dieses Konzept überhaupt entstanden ist.
Die Entwicklung von Serverless
Der lange Weg zu Serverless ist in Serverless is More: From PaaS to Present Cloud Computing zusammengefasst. Es analysiert die Entwicklung der Computertechnologie, die bis ins Jahr 1960 zurückreicht und zu dem Konzept des Serverless Computing führte. Es werden die Hauptdimensionen (Containerised Resources, Code as Functions, Naming and Discovery, Functions as Computation, Execution Flows, Events to Trigger Functions) der wichtigsten Durchbrüche unterschieden, die Serverless ermöglicht haben.

Martin Fowler erklärt, dass der Begriff "Serverless" erstmals um das Jahr 2012 herum auftauchte (zum Beispiel dieser Artikel von Ken Fromm). Der Begriff wurde auch von Badri Janakiraman um diese Zeit im Zusammenhang mit Continuous Integration- und Source Control-Systemen gehört, die als Dienst und nicht auf den eigenen Servern eines Unternehmens gehostet werden. Er gewann im Jahr 2015 an Popularität, nachdem Amazon Web Services (AWS) Lambda im Jahr 2014 und das API-Gateway von Amazon im Jahr 2015 auf den Markt kamen. Die Vorherrschaft von Serverless wurde im Jahr 2016 noch stärker, als Google Cloud Functions und Microsoft Azure Functions auf den Markt kamen, Serverless-Konferenzen abgehalten wurden und Serverless-Anbieter begannen, den Begriff in ihrem Produktmarketing und ihren Stellenbeschreibungen zu verwenden.
Serverless: Ein Paradigmenwechsel
Google Cloud erklärt, dass "Serverless Computing ein Paradigmenwechsel in der Anwendungsentwicklung ist, der es Entwicklern ermöglicht, sich auf das Schreiben von Code zu konzentrieren, ohne sich um die Infrastruktur kümmern zu müssen".
Serverless Computing ist ein Paradigmenwechsel in der Anwendungsentwicklung, der es Entwicklern ermöglicht, sich auf das Schreiben von Code zu konzentrieren, ohne sich um die Infrastruktur kümmern zu müssen.
Laut Martin Fowler wurde Serverless zunächst verwendet, um Anwendungen zu erklären, die die Anwendungen und Dienste von Drittanbietern, die in der Cloud gehostet werden, für die Verwaltung von serverseitiger Logik und Zustand in erheblichem Umfang oder vollständig integrieren. In der Regel handelt es sich dabei um Rich-Client-Anwendungen, die Cloud-basierte Datenbanken, Authentifizierungsdienste usw. nutzen. Diese Art von Diensten werden als (Mobile) Backend as a Service (BaaS) bezeichnet. Serverless kann sich auch auf Anwendungen beziehen, bei denen die serverseitige Logik vom Entwickler geschrieben wird und in zustandslosen Compute-Containern ausgeführt wird, die ereignisgesteuert, kurzlebig und vollständig von einem Drittanbieter verwaltet werden, der als Functions as a Service (FaaS) bekannt ist.
Fortschritte in der Computertechnologie haben die Serverless-Umgebung und neue Geschäftsmodelle ermöglicht, und der Paradigmenwechsel in der Denkweise der Unternehmen treibt die Einführung von Serverless durch Unternehmen voran.
Serverless vs. Container

Vor- und Nachteile
Da Serverless-Computing-Dienste, die kleine Code-Schnipsel für die Ausführung einer einzelnen Funktion darstellen, auf bereits vorhandenen Servern ausgeführt werden, müssen Sie sich nicht um eine zu verwaltende Infrastruktur kümmern. Serverless bedeutet nicht unbedingt, dass Sie NoOps für die Servicekonsumenten erhalten, aber es kann natürlich Less-Ops bedeuten, da Debugging, Fehlersuche, Tests und andere derartige Operationen existieren und die Infrastrukturverwaltung vollständig an den Cloud-Service-Provider ausgelagert wird.
Im Vergleich zu anderen Cloud-Diensten verursacht die Serverless-Architektur minimale Kosten. Dinge wie Anwesenheitserkennung, Zugriffsberechtigung, Sicherheit, Bildverarbeitung und andere Kosten, die beim Betrieb eines Servers anfallen, werden in einer Serverless-Architektur zunichte gemacht.

Serverless bietet immense Skalierbarkeit und hohe Verfügbarkeit out of the box. Serverless-Funktionen können je nach Benutzerverkehr horizontal, vollständig automatisch und elastisch skaliert werden, und alles wird vom Cloud-Service-Provider verwaltet. Darüber hinaus können Serverless-Funktionen die Latenzzeit in hohem Maße minimieren, da sie nicht von einem Ursprungsserver aus arbeiten, was bedeutet, dass es keinen einzigen Ort gibt, an den der Datenverkehr des Endbenutzers geleitet werden muss. Serverless-Computing-Funktionen sind nicht nur einfach zu erstellen, sondern erfordern auch nur minimale Programmierkenntnisse, wodurch die Komplexität der Software minimiert wird.
Sicherheitsbedenken wie Function Event Data Injection, unsichere Serverless Deployment-Konfiguration, unzureichende Überwachung und Protokollierung von Funktionen, unsichere Abhängigkeiten von Drittanbietern und DDoS-Angriffe können in der Serverless-Architektur problematisch sein.
Serverless Computing versetzt Sie in die Situation eines Vendor Lock-in. Außerdem führt jede erstellte Serverless-Instanz zu einer neuen Version von sich selbst, was bedeutet, dass es eine gewaltige Aufgabe ist, die Daten zu sammeln, die zum Debuggen und Beheben einer Serverless-Funktion erforderlich sind.
Überlegungen zur Architektur
Es gibt wichtige architektonische Überlegungen, die Sie beachten müssen. Serverless-Funktionen sind zustandslos, d. h. jegliche Art von Ressource innerhalb einer Funktion existiert nicht mehr, nachdem die Funktion nicht mehr existiert. Serverless-Funktionen sind auch kurzlebig, daher sollten Sie sie nur für einen bestimmten Zeitraum beibehalten. Sie sollten auch die verschiedenen Sprachen für die Entwicklung berücksichtigen, die von den Serverless-Diensten unterstützt werden. Beispielsweise werden NodeJS, Python und Java von AWS Lambda unterstützt. Sprachen wie C# und JavaScript werden von Azure-Funktionen unterstützt. Nur JavaScript wird von Google-Funktionen unterstützt. Daher bestimmt die Plattformauswahl auch die Präferenz der Sprache für die Entwicklung.
Ein Kaltstart, der auftritt, wenn zum ersten Mal eine inaktive oder kalte Funktion aufgerufen wird, kann die Ausführungszeit in die Höhe treiben und die Leistung der Anwendung beeinträchtigen, wenn er nicht gut gesteuert wird. Es ist von größter Bedeutung, sicherzustellen, dass Funktionen vor der Ausführung aktiv oder heiß sind. Auch die Verwendung einer relationalen Datenbank im Serverless Computing kann zu Skalierbarkeits- und Leistungsproblemen führen. Serverless-Funktionen bieten Ihnen auch keinen Zugriff auf Dateisystemebene. Das Vorhandensein von Out-of-the-Box-Protokollierungs- und Überwachungsmechanismen kann eine architektonische und betriebliche Veränderung sein, wenn ein Unternehmen benutzerdefinierte Tools für ähnliche Zwecke verwendet hat.
Bewährte Verfahren
Da Serverless-Funktionen zustandslos und kurzlebig sind, ist das Schreiben von Single-Purpose-Code für Funktionen eine gute Praxis. Und es ist von großer Bedeutung, Push-basierte und ereignisgesteuerte Architekturmuster zusätzlich zur Ausführung komplizierter Funktionen am Frontend über ein Rich-Client-Side-Application-Framework zu entwerfen. Letzteres führt zu einer Kostensenkung, da die Funktionsaufrufe und Ausführungszeiten minimiert werden.
Die Integration relevanter Sicherheitsmechanismen auf der API-Gateway-Schicht und auf der FaaS-Schicht ist erforderlich. Achten Sie außerdem auf Funktionen, die als Geschwindigkeitsbarriere wirken und einen bestimmten Dienst verlangsamen. Die Bestimmung, welche Funktionen die Leistung beeinträchtigen, ist für die Bereitstellung eines hervorragenden Kundenerlebnisses unerlässlich. Die Auswahl der richtigen Tools von Drittanbietern ist ebenfalls wichtig, um die Serverless-Funktionen besser zu nutzen.
Anwendungsfälle
Serverless ist eine hervorragende Option für die Automatisierung und schnelle Bereitstellungsprozesse. Der Gedanke, den Code nur dann auszuführen, wenn ein Ereignis ausgelöst wird, passt gut zu den Prinzipien der kontinuierlichen Integration. Die Aufteilung Ihrer Codebasis in Funktionen hilft bei der Behebung von Fehlern und der Einführung von Updates. Serverless-Anwendungen eignen sich auch hervorragend zum Ändern der Größe von Bildern, zum Ändern der Videotranskodierung oder zur kognitiven Bewertung von Daten auf Fotos, die von Drohnen aufgenommen wurden.
Mit der Fähigkeit, Ereignisse parallel zu verarbeiten und problemlos mit hohen Arbeitslasten umzugehen, erweisen sich Serverless-Frameworks als eine erstaunliche Lösung für virtuelle Assistenten und Chatbots. Darüber hinaus hilft Ihnen der Serverless-Ansatz, die Leistungsfähigkeit seiner Echtzeit-Reaktionsfähigkeit für Internet der Dinge-Anwendungsfälle zu nutzen. Beispielsweise sind bewegungsaktivierte Kameras in Kombination mit Apps, die auf Veränderungen des Wetters oder des Gesundheitszustands reagieren, eine großartige Ergänzung für den Serverless-Ansatz, der sicherstellt, dass Ihre Dienste rund um die Uhr verfügbar sind.
Was hält die Zukunft für Serverless bereit?
Serverless hat ein erstaunliches Wachstum erlebt. Auch die Zukunft sieht rosig aus. MarketsandMarkets gibt in einem Bericht an, dass der Markt für Serverless-Architektur bis 2023 voraussichtlich 14,93 Milliarden US-Dollar erreichen wird, bei einer durchschnittlichen jährlichen Wachstumsrate (CAGR) von 28,6 % im Prognosezeitraum von 2018 bis 2023. Und laut dem RightScale's State of the Cloud report ist Serverless das am schnellsten wachsende Cloud-Service-Modell mit einer jährlichen Wachstumsrate von 75 %.
Fazit
Nick Rockwell, Chief Technology Officer, enthüllte, dass seine Aussage, dass die Serverless-Architektur "eine riesige Innovation ist und sich durchsetzen wird", auf der Velocity Conference von O'Reilly Media im Jahr 2017 damals nicht sehr gut aufgenommen wurde. Es dauerte nicht lange, bis die Welt das atemberaubende Wachstum von Serverless erlebte.
Nun steigert der erstaunliche Aufstieg von Serverless die Produktivität von Anwendungsentwicklern und Administratoren für Infrastruktur und Betrieb (I&O), die für die Verwaltung öffentlicher Cloud-Dienste verantwortlich sind, dramatisch.
Wir sind ständig bestrebt, ehrgeizige digitale Erlebnisse anzubieten, und tun dies über eine Reihe von Dienstleistungen.
Kontaktieren Sie uns unter [email protected], um das Beste aus Serverless Computing herauszuholen und seine erstaunlichen Vorteile zu genießen.
Abonnieren
Verwandte Blogs
Serverless vs. Managed Services: Welche Option ist die richtige für Sie?

Wenn Sie sich entscheiden, eine Anwendung in der Cloud zu entwickeln, müssen Sie verschiedene Faktoren berücksichtigen…

In den letzten Jahren hat die Cloud-Branche mit der Transformation des Serverless Computing einen extremen Wandel…
Den Serverless-Trend unter der Lupe

Flexibel. Skalierbar. Wirtschaftlich. Diese Begriffe fassen im Wesentlichen die Vorteile von Serverless Computing zusammen,…