Was ist Serverless-Computing? | Was bedeutet Serverless

Serverless-Computing ist eine Methode zur Bereitstellung von Backend-Services auf Grundlage der tatsächlichen Nutzung. Server werden weiterhin verwendet, aber ein Unternehmen, das Backend-Dienste von einem serverlosen Anbieter erhält, wird basierend auf der Nutzung berechnet, nicht auf der Grundlage einer festen Bandbreite oder Anzahl von Servern.

Lernziele

Nach Lektüre dieses Artikels können Sie Folgendes:

  • Was heißt Serverless-Computing
  • Die Vorteile einer serverlosen Architektur

Link zum Artikel kopieren

Was ist Serverless-Computing?

Serverless-Computing ist eine Methode zur Bereitstellung von Back-End-Diensten auf der Grundlage der tatsächlichen Nutzung. Mit einem Serverless-Provider können Benutzer Code schreiben und bereitstellen, ohne sich um die zugrunde liegende Infrastruktur kümmern zu müssen. Einem Unternehmen, das Backend-Dienste von einem Serverless-Anbieter erhält, wird die verwendete Rechenleistung berechnet. Es muss keine feste Bandbreite oder Anzahl von Servern reservieren und bezahlen, da der Service automatisch skaliert. Beachten Sie aber: trotz der Bezeichnung „serverlos“ werden weiterhin Server verwendet, Entwickler müssen sich über diese Server nur keine Gedanken mehr machen.

Im Anfangsstadium des Web musste jeder, der eine Webanwendung erstellen wollte, auch die physische Hardware besitzen, die zum Ausführen eines Servers erforderlich ist – ein umständliches und teures Unterfangen.

Dann kam das Cloud-Computing, bei dem eine feste Anzahl von Servern oder eine bestimmte Menge an Serverplatz für den Fernzugriff gemietet werden konnte. Entwickler und Unternehmen, die diese festen Servereinheiten mieten, kaufen für gewöhnlich zu viel davon, damit Traffic- oder Aktivitätsspitzen ihre monatlichen Limits nicht überschreiten und dadurch ihre Anwendungen beeinträchtigen. Das bedeutet aber auch, dass ein Großteil des bezahlten Serverplatzes ungenutzt bleiben kann. Um dieses Problem zu beheben, führten Cloud-Anbieter Modelle zur automatischen Skalierung ein. Doch auch bei automatischer Skalierung konnte ein unerwünschter extremer Aktivitätsanstieg, wie beispielsweise ein DDoS-Angriff, sehr hohe Kosten verursachen.

Vorteile des Serverless-Computing

Beim Serverless-Computing können Entwickler Backend-Dienste auf einer flexiblen „Pay-as-you-go“-Basis erwerben. Das heißt, dass Entwickler nur für Dienste bezahlen müssen, die sie tatsächlich verwenden. Das ist wie ein Wechsel von einem Handy-Datentarif mit einem monatlich festen Limit zu einem, der nur jedes tatsächlich verwendete Datenbyte in Rechnung stellt.

Der Begriff „serverlos“ ist in diesem Fall aber etwas irreführend, da diese Backend-Dienste immer noch von Servern bereitgestellt werden. Doch alle Serverplatz- und Infrastrukturangelegenheiten erledigt nun der Anbieter. Serverlos bedeutet also, dass die Entwickler ihre Arbeit erledigen können, ohne sich um die Server Gedanken machen zu müssen.

Was sind Backend-Dienste? Was ist der Unterschied zwischen Frontend und Backend?

Die Entwicklung von Anwendungen lässt sich im Allgemeinen in zwei Bereiche unterteilen: das Frontend und das Backend. Das Frontend ist der Teil der Anwendung, den Benutzer sehen und mit dem sie interagieren, z. B. das visuelle Layout. Das Backend ist der Teil, den der Benutzer nicht sieht. Dies umfasst den Server, auf dem sich die Dateien der Anwendung befinden, und die Datenbank, auf der Benutzerdaten und Geschäftslogik beibehalten werden.

Frontend vs Backend einer Anwendung

Stellen wir uns zum Beispiel eine Website vor, auf der Konzertkarten verkauft werden. Wenn ein Benutzer eine Website-Adresse in das Browserfenster eingibt, sendet der Browser eine Anfrage an den Backend-Server, der dann mit den Website-Daten antwortet. Der Benutzer sieht das Frontend der Website, welches Inhalte wie Bilder und Formularfelder umfassen kann, die er ausfüllen kann. Der Benutzer kann dann mit einem der Formularfelder im Frontend interagieren, um nach einer Band zu suchen. Wenn der Benutzer auf „Senden“ klickt, wird eine weitere Anfrage an das Backend ausgelöst. Der Backend-Code überprüft in seiner Datenbank, ob eine Band mit diesem Namen vorhanden ist, und wenn ja, wann sie als nächstes spielt und wie viele Tickets verfügbar sind. Das Backend leitet diese Daten dann an das Frontend zurück, und das Frontend zeigt die Ergebnisse auf eine Art und Weise an, die für den Benutzer sinnvoll ist. Wenn der Benutzer ein Konto erstellt und Finanzinformationen eingibt, um die Tickets zu kaufen, erfolgt eine ähnliche Hin- und Her-Kommunikation zwischen dem Frontend und dem Backend.

Welche Art von Backend-Diensten kann Serverless-Computing bereitstellen?

Die meisten Serverless-Provider bieten ihren Kunden Datenbank- und Speicherdienste an. Viele verfügen außerdem über Function-as-a-Service-Plattformen (FaaS), wie z. B. Cloudflare Workers. FaaS ermöglicht es Entwicklern, kleine Codeteile an der Netzwerk-Edge auszuführen. Mit FaaS können Entwickler eine modulare Architektur aufbauen und eine Codebasis schaffen, die besser skalierbar ist. Dabei müssen sie keine Ressourcen für die Wartung des zugrunde liegenden Backends aufwenden. Mehr erfahren über FaaS >>

Was sind die Vorteile von Serverless Computing?

  • Geringere Kosten: Serverless-Computing ist im Allgemeinen sehr kostengünstig, da die Nutzung herkömmlicher Cloud-Provider für Backend-Dienste (Serverzuweisung) häufig dazu führt, dass Benutzer Speicherplatz oder CPU-Zeit bezahlen, die sie gar nicht nutzen.
  • Einfache Skalierbarkeit: Entwickler, die eine serverlose Architektur verwenden und ihren Code skalieren möchten, müssen sich keine Gedanken über Richtlinien machen. Der Serverless-Anbieter passt die gesamte Skalierung dem Bedarf des Kunden an.
  • Vereinfachter Backend-Code: Mit FaaS können Entwickler einfache Funktionen erstellen, die unabhängig voneinander einen einzigen Zweck erfüllen, z. B. einen API-Aufruf zu tätigen.
  • Schnellere Abwicklung: Serverlose Architektur kann die Zeit bis zur Markteinführung erheblich verkürzen. Anstatt Fehlerkorrekturen und neue Features über einen komplizierten Bereitstellungsprozess einzuführen, können Entwickler den Code stückweise hinzufügen und ändern.

Erfahren Sie mehr über die Vorteile von Serverless Computing.

Wie schneidet Serverless im Vergleich zu anderen Cloud-Backend-Modellen ab?

Ein paar Technologien, die oft mit Serverless Computing in Verbindung gebracht werden, sind Backend-as-a-Service und Platform-as-a-Service. Obwohl sie Ähnlichkeiten aufweisen, erfüllen diese Modelle nicht unbedingt die Anforderungen von Serverless.

Backend-as-a-Service (BaaS) ist ein Servicemodell, bei dem ein Cloud-Anbieter Backend-Dienste wie z. B. Datenspeicherung anbietet, damit sich die Entwickler auf das Schreiben von Front-End-Code konzentrieren können. Während jedoch serverlose Anwendungen ereignisgesteuert sind und an der Edge ausgeführt werden, erfüllen BaaS-Anwendungen möglicherweise keine dieser Anforderungen. Mehr erfahren über BaaS >>

Platform-as-a-Service (PaaS) ist ein Modell, bei dem Entwickler im Wesentlichen alle notwendigen Tools für die Entwicklung und Bereitstellung von Anwendungen von einem Cloud-Anbieter mieten, einschließlich Dingen wie Betriebssystemen und Middleware. PaaS-Anwendungen sind jedoch nicht so leicht skalierbar wie serverlose Anwendungen. PaaS werden auch nicht unbedingt an der Edge ausgeführt und haben oft eine spürbare Startverzögerung, die bei serverlosen Anwendungen nicht vorhanden ist. Mehr erfahren über PaaS >>

Infrastructure-as-a-Service (IaaS) ist ein Sammelbegriff für Cloud-Anbieter, die Infrastruktur im Auftrag ihrer Kunden hosten. IaaS-Anbieter können serverlose Funktionen anbieten, aber die Begriffe sind nicht synonym. Mehr erfahren über IaaS >>

Was kommt als nächstes für Serverless?

Serverless Computing entwickelt sich weiter, da Serverless-Anbieter Lösungen entwickeln, um einige seiner Nachteile zu überwinden. Einer dieser Nachteile sind Kaltstarts.

Wenn eine bestimmte serverlose Funktion eine Zeit lang nicht aufgerufen wurde, schaltet der Anbieter die Funktion in der Regel ab, um Energie zu sparen und eine übermäßige Bereitstellung zu vermeiden. Wenn ein Benutzer das nächste Mal eine Anwendung ausführt, die diese Funktion aufruft, muss der Serverless-Anbieter die Anwendung neu starten und die Funktion erneut hosten. Diese Startzeit führt zu einer erheblichen Latenzzeit, die als „Kaltstart“ bezeichnet wird.

Wenn die Funktion einmal in Betrieb ist, wird sie bei nachfolgenden Anfragen viel schneller bereitgestellt (Warmstart), aber wenn die Funktion eine Zeit lang nicht mehr angefordert wird, geht sie wieder in den Ruhezustand über. Das bedeutet, dass der nächste Benutzer, der diese Funktion anfordert, einen Kaltstart erlebt. Bis vor kurzem galten Kaltstarts als notwendiger Kompromiss bei der Verwendung serverloser Funktionen.

Cloudflare Workers hat dieses Problem angegangen, indem es serverlose Funktionen im Voraus, während des TLS-Handshakes, hochgefahren hat. Da die Funktionen von Workers an der Edge in sehr kurzer Zeit hochgefahren werden, sogar kürzer als die Zeit, die für den Abschluss des Handshakes benötigt wird, ist das Ergebnis eine FaaS-Plattform ohne Kaltstarts. Um mit Cloudflare Workers zu beginnen, lesen Sie unsere Dokumentation für Entwickler.

Da immer mehr der Nachteile der Verwendung von Serverless behoben werden und die Popularität von Edge-Computing wächst, können wir erwarten, dass Serverless-Architekturen immer häufiger zum Einsatz kommen.