Das Konzept des Serverless Computing ist ein aufstrebendes Ausführungsmodell, das versucht, die Anforderungen moderner Cloud-basierter Software zu erfüllen.
In diesem Video aus meinem Kurs Einführung in Serverless werde ich Ihnen die Serverless-Architektur vorstellen. Wir werden über die wichtigsten Punkte sprechen und sie mit anderen Modellen vergleichen, um Serverfunktionen in der Cloud zu abstrahieren.
In einem serverlosen System gibt es zunächst Server. Hoffentlich ist das keine große Überraschung für Sie. Es geht darum, wer sie verwaltet.
Schauen wir uns ein sehr allgemeines Diagramm an, das verschiedene Arten von Diensten zeigt.
Auf der linken Seite haben Sie Ihr herkömmliches lokales System. Alles wird von Ihnen verwaltet, bis hin zur physischen Maschine und zum Netzwerk. Dann haben Sie verschiedene Abstraktionsebenen.
Die erste Abstraktionsebene ist Infrastruktur als Dienst. Hier sind Sie für alles vom Betriebssystem bis hin verantwortlich. Beispiele wären DigitalOcean oder Amazon EC2. Der Provider stellt Ihnen eine Instanz zur Verfügung, und Sie sind ab diesem Zeitpunkt auf sich allein gestellt.
Die nächste Abstraktionsebene ist Container als Dienst. Es ist auch ein ziemlich neuer Spieler, der aufgrund der Beliebtheit von Docker viel Traktion hat. In einer AWS-Welt wären dies EC2 Container Services.
Dann haben wir Plattform als Service, bei der Sie nicht für die Verwaltung von Betriebssystemen oder Containern verantwortlich sind. Sie sind allein für Ihre Bewerbung verantwortlich. Prominente Beispiele aus dieser Kategorie sind Heroku, AWS Elastic Beanstalk und Google Compute Engine.
Vor ein paar Jahren wäre die Grafik hier zu Ende gegangen. Heutzutage haben wir jedoch eine neue Terminologie, dh sie dient als Dienst. Anstatt eine Anwendung mit Status auszuführen, die für alle herkömmlichen Web-Frameworks gilt, obwohl Sie REST und andere Dinge verwenden, verfügen Sie über ein System, das zustandslose Container verwendet, die ereignisgesteuert sind, flüchtig sind und vollständig vom Dienst verwaltet werden Anbieter.
Dies wird als serverlos bezeichnet. Es gibt ein anderes Konzept namens Back-End als Dienst, der manchmal auch als Teil der Serverarchitektur betrachtet wird. Meiner Meinung nach gehört das eher zu Software as a Service, was im Wesentlichen das ist, was Sie zu bauen versuchen.
Sprechen wir also mehr über Funktionen als Dienst.
Wie der Name schon sagt, sind Sie als Entwickler dafür verantwortlich, ausführbare Funktionen zu schreiben, die von Ereignissen ausgelöst und ausgeführt werden. Dies kann ein abgeschlossener Dateiupload in S3 oder eine Anforderung über einen API-Endpunkt sein. So weit so einfach. Um das Konzept vollständig zu verstehen, werde ich jedoch über einige Schlüsselbereiche sprechen, in denen Funktionen als Service definiert werden.
Der erste ist Staat. Die Funktionen sind sehr begrenzt, wenn es um die Erhaltung des Zustands geht. Im Allgemeinen sollten Sie davon ausgehen, dass Sie dies überhaupt nicht tun können. Funktionen folgen eher einem Feuer- und Vergissprinzip. Wenn Sie etwas speichern möchten, tun Sie dies mit einem externen Dienst, z. B. Dateispeicherung, Datenbank- oder Cache-Server.
Die zweite ist die Ausführungsdauer. Je nach Bereitstellungsprozess kann eine Serveranwendung stundenlang oder tagelang ohne Neustart ausgeführt werden. Gleiches gilt für die Hintergrundverarbeitung. Bei Funktionen ist die Ausführungszeit begrenzt. Es wird nicht erwartet, dass die Funktion länger als ein paar Sekunden ausgeführt wird, und AWS Lambda beendet zum Beispiel jede Funktion, die nach fünf Minuten noch nicht abgeschlossen ist. Wenn Sie eine sehr lange Aufgabe haben, sind Funktionen als Dienst möglicherweise nicht die beste Lösung.
Dann haben wir eine Startlatenz. Dies kann alles zwischen wenigen Millisekunden und Minuten sein. Dies hängt natürlich von der Sprache und dem System ab, das Sie verwenden. Normalerweise beginnt eine Python- oder JavaScript-Funktion in AWS innerhalb von Millisekunden. Wenn Sie jedoch die Java Virtual Machine verwenden, kann es eine Weile dauern, bis die Maschine hochgefahren ist. Dies gilt insbesondere, wenn Ihre Funktion in den letzten zehn Minuten nicht ausgeführt wurde. oder Sie erleben einen plötzlichen Anstieg der Ausführung.
Dies führt zu Fragen zu Skalierbarkeit und Ausführungskosten und die Antwort, die Sie suchen, ist: Machen Sie sich keine Sorgen. Die Skalierung wird vom Dienstanbieter verwaltet, und die Kosten sind einfach.
Wenn Sie eine Funktion zehnmal ausführen, bezahlen Sie genau diese zehn Aufrufe. Wenn Sie 1.000 Mal laufen, zahlen Sie 1.000. Es ist natürlich etwas komplizierter als das, aber das ist das Wesentliche.
Ein serverloses System kann sehr vorteilhaft sein. Es ist großartig, wenn Sie nicht konsistenten Datenverkehr haben - zum Beispiel eine Spitze zur vollen Stunde oder nur sehr selten, weil Sie keine Ressourcen zuweisen müssen, die die meiste Zeit inaktiv sind.
Serverlose Systeme verfügen über Server, die jedoch vollständig von Cloud-Anbietern verwaltet werden. Funktionen sind das Herzstück einer Serverless-Architektur und werden mithilfe von Triggern ausgeführt. Skalierung und Hochverfügbarkeit übernehmen bereits die Cloud-Anbieter. Wenn Sie nur gelegentlich nachfragen oder eine große, aber kurze Suche durchführen, hilft Serverless dabei, Ihre Kosten niedrig zu halten.
Im vollständigen Kurs Einführung in Serverless zeige ich Ihnen, wie Sie mit Amazon Web Services eine "serverlose" Web-App erstellen, die ein REST-API-Back-End enthält. Außerdem erfahren Sie, wie Sie mit einigen fortgeschrittenen Szenarien umgehen, z. B. der Integration anderer AWS-Dienste und der Orchestrierung zustandsabhängiger Funktionen. Unterwegs bauen Sie einen coolen Webservice auf, um Text in Sprache zu konvertieren.
Sie können diesen Kurs mit einem Abonnement von Envato Elements sofort absolvieren. Für eine einmalige geringe monatliche Gebühr erhalten Sie nicht nur Zugriff auf diesen Kurs, sondern auch auf unsere wachsende Bibliothek mit über 1.000 Videokursen und branchenführenden eBooks für Envato Tuts+.
Außerdem erhalten Sie jetzt unbegrenzte Downloads aus der riesigen Envato Elements-Bibliothek mit mehr als 400.000 kreativen Elementen. Erstellen Sie mit einzigartigen Schriftarten, Fotos, Grafiken und Vorlagen und sorgen Sie schneller für bessere Projekte.