In der IT-Welt wird zunehmend über serverloses Computing diskutiert, daher lohnt es sich, mehr über die Möglichkeiten dieser Lösung zu erfahren. Was sind die Vor- und Nachteile einer serverlosen Architektur? Wann lohnt es sich, von serverlosem Computing auf serverloses Computing umzusteigen, und wann ist es besser, dies nicht zu tun? Im Folgenden beantworten wir diese Fragen.
A QUICK SUMMARY – FOR THE BUSY ONES
Bevor Sie sich zwischen Server- und serverlosem Computing entscheiden, müssen Sie alle Vor- und Nachteile dieser Lösungen kennen und sie an die Art Ihres Unternehmens anpassen.
TABLE OF CONTENTS
<blockquote><p>„Seit der Migration [zur serverlosen Architektur] hat Coca-Cola seine Betriebskosten um 40 Prozent und das IT-Ticketvolumen um 80 Prozent reduziert</p><p>“ Quelle: AWS-Fallstudie Coca-Cola</p></blockquote>
Betriebskosten um 40% gesenkt? Das Ticketvolumen um 80% gesenkt? Klingt wie ein feuchter Traum von praktisch jedem technologiebasierten Unternehmen.
Solche Fallstudien lassen uns glauben, dass Serverless die Lösung für die meisten unserer Probleme in der Softwareentwicklung ist.
Ist es aber NICHT.
In diesem Artikel untersuchen wir die versteckten Kosten von serverlosem Computing und helfen Ihnen bei der Entscheidung, ob es das Richtige für Ihr Unternehmen ist.
Serverloses Computing hat seinen Preis — sowohl monetäre als auch nichtmonetäre. Folgendes müssen Sie beachten, wenn Sie die Umstellung auf eine Cloud-Architektur in Betracht ziehen.
Wenn Sie sich für serverloses Computing entscheiden, verwalten Sie den Server nicht. Somit verlieren Sie die Kontrolle über die Serverhardware, die Ausführungsumgebungen und Updates. Diese können für bestimmte Produkte zu einem Hindernis werden.
Einige serverlose Entwickler behaupten, dass die Verarbeitungszeiten zwischen den Läufen stark variieren können, wahrscheinlich weil der Code beim Neustart auf einem anderen Server mit unterschiedlichen Spezifikationen bereitgestellt wird.
Ein bekanntes Leistungsproblem auf einigen serverlosen Plattformen ist auch Kaltstart. Dies ist die Zeit, die benötigt wird, um einen neuen Container mit einer bestimmten Funktion aufzurufen, wenn derzeit keine Instanz aktiv ist.
Serverloses Computing bedeutet, dass Ihnen kein dedizierter Server zur Verfügung steht. Serverlose Anbieter können daher Code ausführen für mehrere Clients auf einem einzigen Server.
Diese „Mehrmandantenfähigkeit“ kann sich negativ auf die Sicherheit und Leistung der Anwendung auswirken, falls mehrere Mandanten darauf zugreifen oder eine falsche Konfiguration vorliegen. Das Ergebnis können Datenlecks oder eine größere Anfälligkeit für Hacker sein.
Serverlose Architekturen werden für die Codelaufzeit in Rechnung gestellt. Daher kann der Betrieb von Anwendungen, die lange Prozesse in einer serverlosen Infrastruktur erfordern, am Ende teurer sein als bei herkömmlichen Infrastrukturen.
Jeder Der serverlose Anbieter bietet eine einzigartige Reihe von Funktionen. Durch die Nutzung der gesamten Palette der Backend-Dienste eines bestimmten Anbieters wird die Beziehung zwischen dem Kunden und dem Anbieter daher langfristig. Darüber hinaus sollten Sie wissen, dass die Konfiguration einer serverlosen Architektur bei einem bestimmten Anbieter die Migration zu einer Herausforderung machen kann.
Bei herkömmlichen Anwendungsmodellen installieren Entwickler häufig Versionen von Softwarekomponenten lokal, um zu testen, ob der Code funktioniert, bevor er in die Produktionsumgebung hochgeladen wird.
Serverlose Anwendungen können daher aus vielen separaten Funktionen bestehen Das Replizieren der Produktionsumgebung ist möglicherweise nicht möglich.
Das Debuggen wird auch komplizierter, da Entwickler keinen Einblick in Backend-Prozesse haben. Dies wird auch dadurch beeinflusst, dass die Anwendung in viele kleinere Funktionen unterteilt ist.
Umschalten auf Serverless Computing wird eine SCHLECHTE Wahl sein wenn:
Seien Sie jedoch vorsichtig, da Sie an traditioneller Architektur festhalten und Um das Serverless zu überspringen, ist Folgendes erforderlich:
Jedes Anwendungsimplementierungsmodell hat seine Schwächen. Sie müssen jedoch gegen die Vorteile abgewogen werden, die eine bestimmte Technologie bietet.
Im Fall von Serverlose Anwendungsbereitstellung, zu diesen Vorteilen gehören:
Eine serverlose Infrastruktur delegiert die Verwaltung von Ressourcen an einen Cloud-Dienstanbieter und ermöglicht es den Entwicklungsteams, sich auf die Geschäftslogik ihrer Anwendung zu konzentrieren, anstatt sich mit Hardwareproblemen zu befassen.
Umschalten auf Serverless Computing wird eine GUTE Wahl sein wenn:
Die oben beschriebenen Produkte werden zweifellos alle Vorteile nutzen, die sich aus der Wahl einer serverlosen Architektur ergeben. Es gibt jedoch auch differenziertere Fälle von Projekten, die erfolgreich auf serverlose Systeme umgestellt werden könnten.
Die Umstellung auf serverloses Computing ist eine Überlegung wert, auch wenn du:
Serverless Computing verdankt seine Popularisierung in erster Linie der fast allgemeinen Einführung von Cloud Computing und Microservices. In Kombination mit der wachsenden Nachfrage nach bedeutenderen Innovationen, Skalierbarkeit und Agilität ohne nennenswerte Kostenerhöhungen drängen diese Faktoren die Anwender zu serverlosen Lösungen. Aus diesem Grund stellen immer mehr Unternehmen auf eine serverlose Infrastruktur um.
Zu den Unternehmen, die mit großem Erfolg auf serverlose Architektur umgestiegen sind, gehören:
Cloud Computing ist eine moderne IT-Technologie zur Verarbeitung und Speicherung von Daten auf Servern außerhalb des lokalen Netzwerks in einem virtuellen Raum. Eine Verbindung zu Cloud Computing herzustellen bedeutet, über eine Internetverbindung auf Computerressourcen zuzugreifen, die in Rechenzentren gehostet werden, die von Drittanbietern verwaltet werden, anstatt sie zu besitzen und lokal zu speichern.
Es gibt drei Arten von Cloud Computing:
Mithilfe von Cloud Computing können Entwickler Anwendungen in modernen Rechenzentren mit mehr Automatisierung ausführen. Viele Cloud-Computing-Lösungen erfordern jedoch immer noch ein hohes Maß an Infrastrukturmanagement. Serverlose Architektur ist das Tochterunternehmen von Cloud Computing Dadurch entfällt der Management-Teil und Entwickler können sich auf Code und Geschäftslogik konzentrieren.
Lassen Sie uns nun untersuchen, was serverlose Architekturen von Servern unterscheidet:
Server sind nicht nahtlos skalierbar — sie haben eine vorgegebene Speicherkapazität, die manchmal schwer hochskaliert werden kann, und ihre Ressourcen bleiben verfügbar, auch wenn sie nicht verwendet werden. Auf der anderen Seite sind serverlose Lösungen vollständig skalierbar und ermöglichen es Ihnen, die Rechenleistung und den Speicher zu nutzen, die Sie zu einem bestimmten Zeitpunkt benötigen.
<span class="colorbox1" fs-test-element="box1"><p>Erfahren Sie, wie Sie mit Cloud Computing Skalierbarkeit erreichen. Dies kann für Ihr Unternehmen von entscheidender Bedeutung sein, da Sie schnelles Wachstum und plötzliche Verkehrsspitzen mühelos bewältigen</p></span> können.
Im Gegensatz zu einer serverlosen Architektur muss ein Server eingerichtet, gewartet und verwaltet werden.
Servernutzungsgebühren werden für einen bestimmten Dienst im Voraus in Rechnung gestellt. Serverlose Systeme werden pro Funktionsaufruf in Rechnung gestellt.
Laut Microsoft ist Platform as a Service (PaaS) eine komplette Entwicklungs- und Bereitstellungsumgebung in der Cloud, einschließlich Ressourcen für die Bereitstellung beliebiger Lösungen. In diesem Fall ist die Infrastruktur nicht mehr unser Anliegen, da der Anbieter für deren Bereitstellung und Wartung verantwortlich ist.
Der Umfang stimmt praktisch mit den Fähigkeiten einer serverlosen Architektur überein. Allerdings ist der Der Unterschied zeigt sich in der Skalierung — im Fall von Serverless funktioniert die Skalierung automatisch. Bei PaaS muss der Benutzer die Skalierungsparameter selbst konfigurieren.
Darüber hinaus bietet PaaS im Gegensatz zu serverlosem Computing nicht die Möglichkeit, die Preise je nach Nutzung dynamisch anzupassen. Stattdessen bietet es mehr Kontrolle und erleichtert das Testen und Debuggen von Anwendungen in einer PaaS-Umgebung.
Serverless Computing ist ein Cloud-Services-Modell, bei dem sich der Entwickler ausschließlich auf die Erstellung der Geschäftslogik konzentriert und nicht auf die Infrastruktur, auf der sie ausgeführt werden soll.
Das Einrichten von Maschinen, das Aktualisieren von Betriebssystemen, das Konfigurieren von Netzwerken und das Skalieren von Anwendungen sind alles Aufgaben eines bestimmten serverlosen Dienstanbieters — zum Beispiel AWS Lambda, Azure Functions, IBM OpenWhisk oder Cloud Functions von Google Cloud.
Serverless Computing ist ein Modell, das häufig verwendet wird von .NET-Entwicklungsunternehmen, bei dem der Cloud-Anbieter für die Ausführung eines Codeabschnittes durch dynamische Zuweisung von Ressourcen verantwortlich ist. Im Gegensatz zum herkömmlichen Modell, bei dem Sie bestimmte Ressourcen kaufen und für sie bezahlen, auch wenn sie nicht vollständig bereitgestellt werden, bietet serverloses Computing die Möglichkeit, für die verwendeten Ressourcen zu bezahlen.
Der Begriff „serverlos“ ist etwas irreführend, da er das Fehlen von Servern impliziert. Natürlich Server gibt es, aber Entwickler müssen sich nicht mit ihnen auseinandersetzen. Dadurch können sie sich voll und ganz auf die Entwicklung von Anwendungen konzentrieren, anstatt sich Gedanken über die Konfiguration, Skalierung und Sicherung virtueller Maschinen, Server oder Container machen zu müssen.
Serverloses Computing wird manchmal als „Functions as a Service“ bezeichnet.
Zu den wichtigsten Vorteilen von Serverless Computing gehören:
Glaub dem Hype nicht.
Erkunden Sie die Kompromisse zwischen Microservices und monolithischer Architektur und erfahren Sie, warum ein modularer monolithischer Ansatz für kleinere Projekte effizienter sein kann. Erfahren Sie, welche Faktoren bei der Auswahl der richtigen Architektur für Ihr Projekt zu berücksichtigen sind und wie Sie bei Bedarf von einem modularen Monolithen zu Microservices übergehen können.
Erweitern Sie Ihr Wissen, indem Sie diesen Anwendungsfall lesen: Manchmal ist ein Monolith besser als Microservices.
Our promise
Every year, Brainhub helps 750,000+ founders, leaders and software engineers make smart tech decisions. We earn that trust by openly sharing our insights based on practical software engineering experience.
Authors
Read next
Popular this month