LFCA: Serverloses Computing lernen, Vorteile und Fallstricke – Teil 15

Die Serverless-Technologie hat in der Tech-Community viel Aufmerksamkeit erregt und eine Menge Neugierde hervorgerufen sowie in geringem Maße einige negative Reaktionen ausgelöst. Es handelt sich um eine Technologie, die mit der Einführung von AWS Lamba im Jahr 2014 begann und bald darauf von Azure Functions im Jahr 2016 übernommen wurde.

Google zog später nach und veröffentlichte im Juli 2018 Funktionen für die Google Cloud. Doch was ist Serverless-Technologie? Um diese Frage am besten zu beantworten, werfen wir einen Blick auf das traditionelle serverbasierte Computing.

Im traditionellen IT-Modell waren Sie im Grunde genommen für alles verantwortlich. Als Geschäftsinhaber müssten Sie Budgets für Server und andere Netzwerkgeräte wie Router und Switches sowie für Gestelle zur Aufnahme der Server bereitstellen.

Sie müssten sich auch darum kümmern, ein erstklassiges und sicheres Rechenzentrum zu erhalten und sicherzustellen, dass es ausreichend Kühlung sowie redundante Strom- und Internetversorgung bieten kann. Nach der Einrichtung müssten Sie dann das Betriebssystem installieren und später Ihre Anwendungen bereitstellen. Darüber hinaus wären Sie verpflichtet, Überwachungssysteme einzurichten und Sicherheitsfunktionen wie Firewalls und Einbruchspräventions- und -erkennungssysteme zu implementieren. Wie Sie sich vielleicht vorstellen können, ist dies ressourcenintensiv, kostspielig und belastend.

Wie Sie vielleicht schon erraten haben, ist dies ressourcenintensiv, kostspielig und anstrengend.

Dann Cloud Computing brach in die Technologiewelt ein und revolutionierte vollständig die Art und Weise, wie wir Server und Anwendungen bereitstellen und verwalten. Es leitete eine neue Ära ein, in der Entwickler ohne Zeitverlust Cloud-Server und -Datenbanken erstellen und an ihren Anwendungen arbeiten konnten. Keine Sorge mehr um Probleme, die mit traditioneller IT-Rechenzentren einhergehen, wie Ausfallzeiten, teure Ausrüstung und das Vermieten von Rechenzentren.

Obwohl Cloud Computing die Bequemlichkeit und Skalierungswirtschaftlichkeiten bei der Bereitstellung von IT-Ressourcen mit sich brachte, kauften einige Unternehmen im Voraus Einheiten von Server-Platz und Ressourcen wie RAM und CPU, um einen Anstieg des Netzwerkverkehrs oder der Aktivität vorzubeugen, der Anwendungen überfordern könnte.

Obwohl es eine vorsichtige Entscheidung ist, ist das unbeabsichtigte Ergebnis die Unterauslastung von Serverressourcen, die oft ungenutzt bleiben. Selbst mit automatischer Skalierung könnte ein unerwarteter und plötzlicher Anstieg kostenintensiv sein. Außerdem müssten Sie weitere Aufgaben durchführen, wie das Einrichten von Lastausgleichen, die auch zu höheren Betriebskosten führen könnten.

Es ist offensichtlich, dass trotz des Übergangs zur Cloud einige Engpässe bestehen bleiben und die Möglichkeit haben, die Kosten zu erhöhen und Ressourcenverschwendung zu verursachen. Und hier kommt Serverloses Computing ins Spiel.

Was ist Serverloses Computing?

Serverloses Computing ist ein Cloud-Modell, das Benutzern Backend-Dienste auf Pay-as-you-go-Basis bietet. Einfach ausgedrückt, der Cloud-Anbieter weist Rechenressourcen zu und berechnet nur die Zeit, in der die Anwendungen ausgeführt werden. Dies entspricht dem Wechsel von einem monatlichen Plan für die Kabelgebühr zu einer Bezahlung nur dann, wenn Sie Ihre Fernsehsendungen ansehen.

Der Begriff ‚Serverlos‘ könnte ein wenig irreführend sein. Gibt es Server? Sicher, jedoch werden in diesem Fall die Server und die zugrunde liegende Infrastruktur rein vom Cloud-Anbieter verwaltet und gewartet. Daher müssen Sie sich keine Sorgen um sie machen. Als Entwickler liegt Ihr Fokus ausschließlich darauf, Ihre Anwendungen zu entwickeln und sicherzustellen, dass sie zu Ihrer Zufriedenheit funktionieren.

Auf diese Weise nimmt das serverlose Computing Ihnen die Kopfschmerzen der Serververwaltung ab und spart Ihnen wertvolle Zeit, um an Ihren Anwendungen zu arbeiten.

Backend-Dienste, die von serverlosem Computing bereitgestellt werden

A perfect example of serverless backend service is Function-as-a-Service (FaaS) platform. FaaS is a cloud computing model that enables developers to develop, execute, and manage code in response to events without the complexity of building and managing an underlying infrastructure usually associated with the deployment of microservices.

FaaS ist eine Unterkategorie des serverlosen Computings mit feinen Unterschieden. Serverloses Computing umfasst eine Vielzahl von Diensten, darunter Berechnung, Datenbank, Speicher und API, um nur einige zu nennen. FaaS konzentriert sich ausschließlich auf ein ereignisgesteuertes Berechnungsmodell, bei dem Anwendungen bedarfsgesteuert ausgeführt werden, das heißt, als Reaktion auf eine Anfrage.

Beispiele für FaaS-Berechnungsmodelle sind:

  • AWS Lambda von AWS
  • Azure Functions von Microsoft
  • Cloud Functions von Google
  • Cloudflare Workers von Cloudflare

Wir haben bisher gesehen, dass mit FaaS Sie nur für die Zeit bezahlen, in der Ihre Anwendung läuft, und der Cloud-Anbieter praktisch alles für Sie erledigt, einschließlich der Handhabung der zugrunde liegenden Infrastruktur. Das Verwalten von Servern ist das geringste Ihrer Sorgen.

Vorteile des Serverless Computing

Bis jetzt haben Sie eine gute Vorstellung von einigen der Vorzüge, die das serverlose Computing mit sich bringt. Lassen Sie uns tiefer in die Vorteile eintauchen, die die Technologie bietet.

1. Kein Servermanagement

Dies ist vielleicht einer der größten Vorteile der Annahme des serverlosen Rechenmodells. Obwohl der Begriff ‚serverlos‚ möglicherweise falsch verstanden wird und impliziert, dass keine Server beteiligt sind, läuft die Anwendung tatsächlich noch auf Servern. Der Kern der Sache ist, dass das Servermanagement vollständig in die Zuständigkeit des Cloud-Anbieters fällt, was Ihnen mehr Zeit für die Arbeit an Ihren Anwendungen gibt.

2. Einfaches und effizientes Skalieren

Die serverlose Infrastruktur bietet automatisches Skalieren von Anwendungen als Reaktion auf einen Anstieg der Nutzung, der Nachfrage oder des Wachstums der Benutzerbasis. Wenn die Anwendung auf mehreren Instanzen läuft, werden die Server bei Bedarf gestartet und gestoppt. In einer traditionellen Cloud-Computing-Umgebung kann ein plötzlicher Anstieg des Datenverkehrs oder der Aktivität leicht die Serverressourcen überlasten und zu Inkonsistenzen bei der Ausführung der Anwendung führen.

3. Eingebaute Verfügbarkeit

Als Entwickler benötigen Sie keine spezielle Infrastruktur, um Ihre Anwendungen hochverfügbar zu machen. Serverloses Computing bietet Ihnen eine integrierte Hochverfügbarkeit, um sicherzustellen, dass Ihre Anwendungen laufen, wenn sie dies sollen.

4. Reduzierte Betriebskosten

Serverloses Computing weist Ressourcen auf der Grundlage von „Bezahlen nach Verbrauch“ zu. Ihre Anwendung benötigt Backend-Funktionen nur während der Codeausführung und skaliert automatisch je nach Arbeitslast.

Dies bietet Skaleneffekte, da Sie nur für die Zeit abgerechnet werden, in der die Anwendungen laufen. Im traditionellen Servermodell müssen Sie für Serverplatz, Datenbanken und andere Ressourcen zahlen, unabhängig davon, ob die Anwendung läuft oder untätig ist.

5. Schnellere Bereitstellung von Anwendungen

Die serverlose Architektur beseitigt die Notwendigkeit für Backend-Konfiguration und manuelles Hochladen von Code auf Server wie in der traditionellen Einrichtung. Es ist für Entwickler einfach, kleine Code-Stapel effizient hochzuladen und ein großartiges Produkt zu starten.

Die einfache Bereitstellung ermöglicht es Entwicklern auch, bestimmte Funktionen des Codes leicht zu patchen und zu aktualisieren, ohne die gesamte Anwendung zu ändern.

Nachteile des serverlosen Computings

Gibt es Nachteile im Zusammenhang mit dem serverlosen Modell? Lassen Sie es uns herausfinden.

1. Sicherheit

Schlecht konfigurierte Anwendungen stellen eines der größten Risiken im Zusammenhang mit serverlosem Computing dar. Wenn Sie sich zum Beispiel für AWS entscheiden, ist es ratsam, verschiedene Berechtigungen für Ihre Anwendung zu konfigurieren, die wiederum bestimmen, wie sie mit anderen Diensten innerhalb von AWS interagieren werden. Wenn Berechtigungen unklar sind, kann eine Funktion oder ein Dienst mehr Berechtigungen haben als erforderlich, was ausreichend Raum für Sicherheitsverletzungen lässt.

2. Vendor Lock-in

Die Entscheidung für ein serverloses Modell kann Herausforderungen bei der Migration zu einem anderen Anbieter mit sich bringen. Dies liegt hauptsächlich daran, dass jeder Anbieter seine eigenen Funktionen und Workflows hat, die sich geringfügig von den anderen unterscheiden.

3. Schwierigkeiten beim Testen und Debuggen von Anwendungen

Eine weitere Herausforderung des serverlosen Modells besteht darin, eine serverlose Umgebung zur Überprüfung und Überwachung der Leistung des Codes vor dem Livegang zu reproduzieren. Dies liegt hauptsächlich daran, dass Entwickler keinen Zugang zu Backend-Diensten haben, die dem Cloud-Anbieter vorbehalten sind.

4. Schwierigkeiten beim Überwachen serverloser Anwendungen

Das Überwachen serverloser Anwendungen ist eine komplexe Aufgabe aus denselben Gründen, aus denen Debugging und Testen eine Herausforderung darstellen. Dies wurde durch die Nichtverfügbarkeit von Tools mit Integration in Backend-Dienste wie AWS Lambda erschwert.

Zusammenfassung

Serverloses Computing gewinnt weiterhin an Beliebtheit und Akzeptanz bei Unternehmen und Entwicklern aus drei Hauptgründen. Einer davon ist die Erschwinglichkeit, was reduzierte Betriebskosten bedeutet. Zweitens ermöglicht serverloses Computing automatisches und schnelles Skalieren, und schließlich müssen sich Entwickler keine Gedanken über die zugrunde liegende Infrastruktur machen, die vom Anbieter verwaltet wird.

In der Zwischenzeit arbeiten Cloud-Anbieter rund um die Uhr daran, einige der mit serverlosem Computing verbundenen Fallstricke wie Schwierigkeiten bei der Fehlerbehebung und Überwachung von Anwendungen zu bewältigen.

Source:
https://www.tecmint.com/serverless-computing/