Was ist eine serverlose Funktion?

PubNub Developer Relations - Feb 7 - - Dev Community

Definition von serverlosen Funktionen

Serverlose Funktionen sind programmatische Funktionen für einen einzigen Zweck, die von Cloud-Computing-Unternehmen auf einer verwalteten Infrastruktur gehostet werden. Diese Funktionen werden über das Internet aufgerufen und sind darauf ausgelegt, Arbeitsabläufe zu automatisieren, Latenzzeiten zu reduzieren und On-Demand-Computing-Funktionen bereitzustellen. Diese serverlosen Architekturen werden von Ingenieurteams gewartet, um eine nahezu perfekte Betriebszeit, redundante Instanzen rund um den Globus und Skalierbarkeit für jedes eingehende Netzwerkanfragevolumen zu gewährleisten.

Wer erstellt serverlose Funktionen?

Serverlose Funktionen werden von Softwareentwicklern erstellt, die ihren Produktcode auf serverlose Plattformen umstellen, um die Vorteile des serverlosen Computings zu nutzen. Es sind nicht die Cloud Computing-Unternehmen selbst, die diese Funktionen erstellen, sondern ihre Kunden.

Was ist der Vorteil von serverlosen Funktionen und Diensten?

Serverlose Funktionen und Dienste bieten zahlreiche Vorteile, darunter eine bessere Code-Wartung, kostengünstiges Hosting und die Sicherheit, die sich aus der Ausführung auf einer verwalteten Infrastruktur ergibt. Dieses Paradigma wird aufgrund dieser Vorteile schnell populär, und die Bereitstellung von neuem Code ist schneller, einfacher und leicht zu automatisieren.

Was ist ein Beispiel für eine serverlose Funktion?

Alle großen Cloud-Anbieter bieten serverlose Funktionen an:

Serverlose Infrastruktur: Monolithische Architektur vs. Microservice-Architektur

Serverlose Funktionen können als Microservices betrachtet werden, ein beliebtes Konzept in der serverlosen Umgebung. In der Softwareentwickler-Community wächst die Begeisterung über den Wechsel von monolithischen Plattformen zu gekapselten Microservices.

Warum Unternehmen serverlose Funktionen und Architekturen nutzen

In der Vergangenheit hatten monolithische Plattformen große, einheitliche Codebasen, die bei jeder Lieferung von neuem Code eine vollständige Bereitstellung der gesamten Plattform erfordern. Dazu gehören neue Funktionen, aber auch einzeilige Fehlerbehebungen.

Monolithen können in manchen Situationen praktisch sein, aber wenn die Codebasis einer Plattform so groß wird, dass das Entwicklungsteam groß ist, werden einige Aufgaben schwerfällig.

Eine Architektur von Microservices verbessert die Wartbarkeit der Codebasis und erhöht die allgemeine Erfahrung der Entwickler für Softwareentwicklungsteams. Microservices ermöglichen es einer großen Entwicklungsorganisation, sich in lose gekoppelte, autonome Teams aufzuteilen. Jedes Team kann sich auf einige wenige Microservices konzentrieren, die unabhängig vom Rest der Plattform arbeiten. Beachten Sie, dass Microservices zwar in gewissem Maße unabhängig voneinander gewartet werden können, aber dennoch Akteure in einem einheitlichen Team sind.

Mit der Microservice-Architektur können neue Entwickler schnell in Entwicklungsprojekte eingebunden werden, da sie kein tiefes Verständnis für einen ganzen Monolithen haben müssen, um wesentliche Beiträge leisten zu können. Ein weiterer Vorteil von Microservices besteht darin, dass die Bereitstellung kleinerer Code-Updates für einzelne Services zu geringen oder gar keinen Ausfallzeiten für die Kunden führt. Wenn ein Monolith Code-Updates benötigt, kann dies bedeuten, dass alle Kunden für die Dauer einer serverlosen Deployment-Funktion Ausfallzeiten haben.

Serverlose Funktionen und Funktionen-as-a-Service (FaaS)

Das Besondere an serverlosen Funktionen sind die automatische Skalierung und die redundante Bereitstellung von Code. Das bedeutet, dass ein App-Entwickler sich nur noch mit einer Sache beschäftigen kann: dem Schreiben von großartigem Anwendungscode. Die Cloud-Hosting-Anbieter nennen dieses Produktangebot Functions-as-a-Service, kurz FaaS.

Beim herkömmlichen App-Hosting müssen sich Softwareentwickler beim Schreiben ihres Codes immer wieder diese Fragen stellen:

  • Reagieren meine Server auf alle Client-Anfragen mit einer sehr geringen Latenzzeit, unabhängig vom physischen Standort des jeweiligen Clients?

  • Schaffe ich in meinem Code-Bereitstellungsprozess Raum für menschliche Fehler?

  • Können meine Server einen plötzlichen Anstieg des Anfragevolumens ohne Überlastung bewältigen?

  • Können meine Server einen plötzlichen Anstieg des Anforderungsvolumens bewältigen, ohne viel Geld zu verschwenden?

  • Muss ich die Infrastruktur meiner Anwendung ständig überwachen? Ich schlafe wirklich gerne 8 Stunden pro Nacht.

Diese Fragen stellen sich nicht, wenn ein Softwaresystem auf einer Plattform mit Serverless Functions aufgebaut ist.

Der Code von Serverless Functions sollte über eine völlig zustandslose Logik verfügen, so dass redundante Instanzen keine Inkonsistenzen für Kunden verursachen. Cloud-Hosting-Anbieter haben in der Regel viele Standorte rund um den Globus. Das bedeutet, dass die Server, auf denen eine Anwendung läuft, allen möglichen Endnutzern am nächsten sind. Der Cloud-Hosting-Anbieter stellt eine serverlose Funktion redundant und gleichzeitig in Rechenzentren auf der ganzen Welt bereit. Dies ist für die Kunden eines Entwicklers von Vorteil, da ihre clientseitigen Anfragen mit möglichst geringer Latenz beantwortet werden. Die gesamte Netzwerklogik wird vom Cloud-Anbieter implementiert.

Google und AWS Serverless Functions mit Cloud-Hosting-Plattformen

Cloud-Hosting-Anbieter, die Serverless Functions anbieten, verwenden branchenübliche Best Practices für die automatisierte Codebereitstellung. Das bedeutet, dass menschliche Fehler bei der Bereitstellung eines Dienstes ausgeschlossen sind, und ermöglicht eine schnelle Bereitstellung von neuem Code mit geringen oder gar keinen Ausfallzeiten für ein Webprodukt.

Eine der wertvollsten Funktionen von Serverless Function Hosting ist die automatische Skalierung, die sofort einsatzbereit ist. Cloud-Hosting-Anbieter haben dafür gesorgt, dass die Kosten für ungenutzte Server für ihre Kunden der Vergangenheit angehören. Dank Softwareprodukten wie Kubernetes können Dienste ihre Infrastruktur programmatisch und automatisch skalieren. Diese neue Art von "elastischer" Infrastruktur macht das Hosting effizienter, was zu großen Kosteneinsparungen für Unternehmen führt, die Cloud-Hosting kaufen.

FaaS-Anbieter und Beispiele für serverlose Funktionen

Cloud-Hosting-Unternehmen bieten hochmoderne FaaS-Plattformen an. Die Serverkosten sinken für Verbraucher weltweit, da große Technologieunternehmen immer mehr Serverfarmen aufbauen. Allerdings sind nicht alle FaaS-Dienste gleich. FaaS-Plattformen sind nicht wie eine Telefongesellschaft. Jede Plattform hat einzigartige Szenarien, in denen sie glänzt.

AWS Lambda - Serverlose Funktionen

AWS Lambda ist eine Umgebung für serverlose Funktionen auf Amazon Web Services. Die unterstützten Programmiersprachen sind Java, Go, PowerShell, Node.js, C#, Python, Ruby, Rust und PHP. Sie ist ideal für On-Demand-Rechenoperationen wie Dateiverarbeitung.

Azure Functions Serverlose Funktionen

Azure Functions ist eine serverlose Funktionsumgebung auf Microsoft Azure. Die unterstützten Programmiersprachen sind C#, F#, Java, Python, JavaScript und TypeScript. Es ist ideal für die Erstellung von Einzweck-APIs, um einer Plattform Funktionen hinzuzufügen, z. B. die Bereitstellung eines Endpunkts für die sichere Speicherung von Anwendungsdaten.

Google Cloud Serverlose Funktionen

Google Cloud Functions ist eine serverlose Funktionsumgebung auf der Google Cloud Platform. Die unterstützten Programmiersprachen sind JavaScript, Python, Go, .NET (C#), Ruby und PHP. Google Cloud Functions bieten serverlose Berechnungen, die problemlos mit anderen Google Cloud Services und Client-Anwendungen interagieren. Sie eignen sich ideal für Szenarien, in denen die Datenverarbeitung eine wichtige Rolle spielt - wie das Abrufen relevanter Daten aus Bildern und Videos.

Funktionen

Functions ist eine serverlose Umgebung für die Ausführung von Funktionen am Rande des Netzwerks. Dabei werden Nachrichten auf ihrem Weg durch das PubNub-Netzwerk mithilfe von JavaScript transformiert, angereichert und gefiltert. Diese serverlose Plattform unterscheidet sich grundlegend von den anderen, da der Event-Handler der Function als Reaktion auf ein Ereignis von PubNub ausgeführt wird, z. B. wenn eine Nachricht mit der Pub/Sub-API von PubNub veröffentlicht wird.

Ein Entwickler kann Code auf einer PubNub-Nachricht ausführen, nachdem diese veröffentlicht wurde, aber bevor die Nachricht einen Abonnenten erreicht. Es gibt noch weitere Ausführungskonfigurationen, darunter Non-Blocking nach der Veröffentlichung und ein REST-API-Endpunkt, auf den wie auf einen Node.js-Server zugegriffen werden kann. Der Status kann mit einem KV-Store innerhalb der Funktionsumgebung verwaltet werden. Es gibt auch einen Katalog mit Open-Source-Integrationen von Drittanbietern im PubNub-Funktionskatalog.

Welchen Serverless-Provider sollte ich für meinen Dienst verwenden?

Die Antwort auf diese Frage hängt von der Art des Dienstes ab, der erstellt werden soll. Wie Sie aus den oben beschriebenen Anbietern ersehen können, gibt es je nach Cloud unterschiedliche Programmiersprachen, die verwendet werden können. Das Wichtigste bei der Auswahl eines Anbieters ist die Frage: Welche Attribute sind für meinen Dienst von entscheidender Bedeutung?

Die größten Cloud-Anbieter (AWS, Azure, Google) bieten mit ihren generischen Cloud-Produkten skalierbare und kostengünstige Serverless-Computing-Lösungen für eine Vielzahl von Anwendungsfällen an. Diese serverlosen Plattformen vereinfachen die Infrastrukturverwaltung und bieten eine bedarfsgerechte Skalierbarkeit für Anwendungen. Unternehmen wie PubNub haben sich jedoch darauf spezialisiert, spezifische Probleme von Entwicklern zu lösen, insbesondere bei Echtzeitanwendungen. Mit seiner einzigartigen serverlosen Umgebung hebt sich PubNub von generischen serverlosen Produkten ausschließlich in Echtzeitszenarien ab.

Die serverlosen Funktionen von PubNub bieten eine unglaublich niedrige Latenzzeit und sind daher ideal für Echtzeitanwendungen wie Chat, GPS-Standortverfolgung, IoT-Signalisierung, Multiplayer-Spiele und vieles mehr. Diese Funktionen, die die Ausführung von Anwendungscode als Reaktion auf Ereignisse automatisieren, sind einfach zu erstellen und bereitzustellen und verkürzen so die Markteinführungszeit. Außerdem unterstützt PubNub jetzt JavaScript und TypeScript für die Funktionsentwicklung und bietet Entwicklern mehr Flexibilität.

Wenn Ihre Anwendungsfälle umfangreiche Berechnungen beinhalten, Sprachen erfordern, die auf das Betriebssystem zugreifen müssen, und nicht latenzempfindlich sind, sind die umfangreichen Serverless-Angebote von großen Cloud-Hosting-Unternehmen wie AWS, Azure und Google vielleicht besser geeignet. Diese Anbieter unterstützen eine breite Palette von Programmiersprachen, darunter Node.js, Python, Java, Rust, PHP, .NET (C#), Ruby und viele mehr.

Einen umfassenden Vergleich von PubNub Functions und AWS Lambda finden Sie in unserem Blogbeitrag, der detaillierte Einblicke in die Auswahl des richtigen Serverless-Anbieters für Ihr Unternehmen bietet.

Es ist auch erwähnenswert, dass die Sicherheit ein entscheidender Aspekt ist, wenn es um serverlose Anwendungen geht. Seien Sie versichert, dass die serverlose Umgebung von PubNub die Datensicherheit in den Vordergrund stellt und robuste Authentifizierungsmechanismen und sichere API-Endpunkte bietet, um Ihre Daten zu schützen.

Ganz gleich, ob Sie ein Startup-Unternehmen sind, das eine kostengünstige Serverless-Lösung sucht, oder ein etabliertes Unternehmen, das die Möglichkeiten der Serverless-Architektur für geschäftskritische Anwendungen nutzen möchte - ein Verständnis der Stärken und Fähigkeiten der verschiedenen Serverless-Anbieter kann Ihnen helfen, eine fundierte Entscheidung zu treffen.

Wie kann PubNub Ihnen helfen?

Dieser Artikel wurde ursprünglich auf PubNub.com veröffentlicht.

Unsere Plattform hilft Entwicklern bei der Erstellung, Bereitstellung und Verwaltung von Echtzeit-Interaktivität für Webanwendungen, mobile Anwendungen und IoT-Geräte.

Die Grundlage unserer Plattform ist das größte und am besten skalierbare Echtzeit-Edge-Messaging-Netzwerk der Branche. Mit über 15 Points-of-Presence weltweit, die 800 Millionen monatlich aktive Nutzer unterstützen, und einer Zuverlässigkeit von 99,999 % müssen Sie sich keine Sorgen über Ausfälle, Gleichzeitigkeitsgrenzen oder Latenzprobleme aufgrund von Verkehrsspitzen machen.

PubNub erleben

Sehen Sie sich die Live Tour an, um in weniger als 5 Minuten die grundlegenden Konzepte hinter jeder PubNub-gestützten App zu verstehen

Einrichten

Melden Sie sich für einen PubNub-Account an und erhalten Sie sofort kostenlosen Zugang zu den PubNub-Schlüsseln

Beginnen Sie

Mit den PubNub-Dokumenten können Sie sofort loslegen, unabhängig von Ihrem Anwendungsfall oder SDK

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .