Serverloses Rechnen 101

Autor: Roger Morrison
Erstelldatum: 22 September 2021
Aktualisierungsdatum: 1 Juli 2024
Anonim
What is Serverless?
Video: What is Serverless?

Inhalt


Quelle: Wavebreakmediamicro / Dreamstime.com

Wegbringen:

Serverloses Computing ist eigentlich eine Art Fehlbezeichnung - Server sind in der Tat involviert, sie befinden sich nur in der Cloud.

Für die Uneingeweihten scheint die Idee des Serverless Computing ungläubig, denn in der Geschichte der Softwareentwicklung waren Server unverzichtbar. Nun, das sind sie immer noch. Serverloses Computing muss nicht wörtlich genommen werden, da es Server nicht veraltet macht. In der Serverless-Computing-Welt spielen Server weiterhin eine wichtige Rolle, allerdings mit gewissen Unterschieden.

Softwareentwickler müssen nicht mehr über Server nachdenken oder die Codierung basierend auf Servern anpassen. Sie können sich ganz auf das Codieren konzentrieren, während die in der Cloud gehosteten Server die Codeverarbeitung übernehmen. Die Kapazität der Server muss nicht geplant werden, da sie in der Cloud je nach Anforderungen skaliert werden können. Der gesamte Server bleibt nicht immer aktiv. Abhängig von den Anforderungen werden Teile davon aktiv, erledigen ihre Arbeit und werden dann ruhend.


Viele sind der Meinung, dass Serverless Computing die Recheneffizienz verbessern und die Betriebskosten senken kann. Sie sehen es als eine revolutionäre Art zu rechnen. Aber nicht jeder stimmt zu. Auf der anderen Seite des Arguments wird dagegen vorgegangen, dass Serverless Computing die Komplexität erhöht, und es gibt nicht viele Möglichkeiten, die Komplexität zu verwalten.

Was ist Serverless Computing?

Wie bereits erwähnt, bedeutet Serverless Computing nicht, dass das Computing oder die Softwareentwicklung ohne Server erfolgen kann. Tatsächlich werden die Server einfach von einem Drittanbieter in der Cloud gehostet. Daher müssen sich die Softwareentwickler nur auf ihren Code konzentrieren und müssen nicht an Server, Kapazität, Bereitstellung oder ähnliches denken. In den Servern befinden sich verschiedene Teile, sogenannte Funktionen, die den Code verarbeiten. Anders als beim herkömmlichen Computing bleibt der gesamte Server nicht immer aktiv. Die Funktionen führen bestimmte Aufgaben aus - zum Beispiel Validierung und Suche - und werden nur bei Bedarf aktiviert. Die Funktionen können je nach Bedarf vergrößert oder verkleinert werden. Genau wie andere Cloud-Dienste wie Software as a Service (SaaS) oder Plattform as a Service (PaaS) werden die Funktionen auch im Abonnement angeboten. Dem Kunden wird nur die Zeit in Rechnung gestellt, in der eine Funktion aktiv bleibt.


Geschichte

Serverloses Rechnen ist ein ziemlich neues Konzept in der Softwareentwicklung und seine Wurzeln reichen bis ins Jahr 2006 zurück. 2006 bot ein Dienst namens Zimki eine Lösung an, mit der Softwareentwickler Code schreiben und auf den Zimkis-Server hochladen konnten. Die Codeausführung erfolgte über Funktionen, die in Form von Application Programming Interfaces (APIs) angeboten wurden.

Die nächste wichtige Entwicklung fand 2014 statt, als Amazon mit AWS Lambda das Umlageverfahren für eine Code-Ausführungsplattform einführte. Es ist jedoch interessant festzustellen, dass es so lange gedauert hat, bis ein solches neuartiges Konzept Wirkung gezeigt hat (2006 bis 2014). Aus irgendeinem Grund fanden Entwicklungen im Bereich Serverless Computing keinen so großen Anklang wie andere Ideen wie Cloud Computing oder das Internet der Dinge (Internet of Things, IoT). Nichtsdestotrotz war AWS Lambda das erste serverlose Angebot eines großen Unternehmens, und es folgten eine Reihe weiterer Angebote, einschließlich des Googles-Angebots, das als Google Cloud Functions bekannt ist. Im Jahr 2016 stiegen sowohl IBM als auch Microsoft in den Bereich der Serverless Computing ein, indem sie OpenWhisk- bzw. Azure-Funktionen vorstellten.

Tiefer tauchen

Ein guter Punkt, um Serverless Computing auf einer tieferen Ebene zu verstehen, ist ein Vergleich zwischen Serverless Computing und PaaS. Obwohl sie als Konzepte unterschiedlich sind, war PaaS tatsächlich der erste Schritt in Richtung serverloser Angebote. Während PaaS eine Plattform und Umgebung bietet, mit der Entwickler Softwareanwendungen über das Internet erstellen können, muss die für die Software in der Cloud erforderliche Kapazität noch geplant werden. Bei der Arbeit mit Serverless Computing müssen Sie jedoch in keiner Weise über Server nachdenken. Softwareentwickler codieren einfach und laden den Code in die Cloud hoch, und dann übernehmen die Server.

Serverless Computing wird auch als "Functions as a Service" (FaaS) bezeichnet, da kleine Funktionen im Rahmen eines "Pay-as-you-go" -Geschäftsmodells angeboten werden. Solche Funktionen führen kleine Aufgaben aus, z. B. das Überprüfen von Benutzeranmeldeinformationen. Die Funktionen werden in Form von APIs angeboten. Es können mehrere Funktionen für eine Softwareanwendung erforderlich sein, aber nicht alle Funktionen werden gleichzeitig aktiv. Sie sind nur dann aktiv, wenn sie benötigt werden. Wenn beispielsweise eine Funktion ein hohes Verkehrsaufkommen aufweist und überlastet ist, kann sie skaliert und ihre Kapazität erhöht werden. Sie müssen also nicht die gesamte Anwendung skalieren.

Keine Bugs, kein Stress - Ihre schrittweise Anleitung zur Erstellung lebensverändernder Software, ohne Ihr Leben zu zerstören

Sie können Ihre Programmierkenntnisse nicht verbessern, wenn sich niemand um die Softwarequalität kümmert.

Warum ist Serverless Computing wichtig?

Die Bedeutung von Serverless Computing liegt im Unterschied zu herkömmlichem Computing. Herkömmliches Computing hat Unternehmen gute Dienste geleistet, birgt jedoch einige Herausforderungen: Kosten, Zeitaufwand, keine gezielte Codierung und Schwierigkeiten bei der Vergrößerung oder Verkleinerung. Unternehmen haben nach einer Lösung für diese Probleme gesucht. Die einzigartigen Vorteile von Serverless Computing umfassen:

  • Codierung im Fokus
    Beim herkömmlichen Computing mussten Entwickler über Server nachdenken und die Codierung entsprechend anpassen. Beim Serverless Computing müssen sie sich nur auf die Codierung konzentrieren, und der Rest wird von Servern erledigt, die in der Cloud gehostet werden. Dieser erhöhte Fokus führt zu einer besseren Codequalität.
  • Die Codierung ist möglicherweise einfacher
    Wenn Ihre Codes Serverless Computing-orientiert sind, müssen Sie lediglich kleinere Codeteile schreiben, die von bestimmten entsprechenden Funktionen verarbeitet werden, und sicherstellen, dass der Code gut in andere Codeteile integriert wird.
  • Einfacher zu vergrößern oder zu verkleinern
    Da es sich bei der gesamten Serverless-Computing-Infrastruktur um kleine Funktionen handelt, muss die gesamte Infrastruktur nicht vergrößert oder verkleinert werden. Skalieren Sie einfach die erforderliche Funktion. Auf diese Weise erfolgt die Verarbeitung und Skalierung auch viel schneller.
  • Weniger teuer
    In der Regel bezahlt ein Unternehmen, das serverlose Computerdienste nutzt, das Abonnement und anschließend die Funktionsnutzung. Es zahlt sich jedoch nur für die Zeit aus, in der eine Funktion aktiv ist und verwendet wird. Mit anderen Worten, Unternehmen zahlen nur für das, was sie verbrauchen.

Ein Beispiel für Serverless Computing

AWS Lambda ist eines der bekanntesten Beispiele für serverlose Angebote. Es ermöglicht Unternehmen, den Code einfach zu schreiben und an Lambda hochzuladen. Bei Bedarf kann Lambda die Anwendung automatisch skalieren, indem die Codes als Reaktion auf den Trigger ausgeführt werden. Wenn die Auslastung einer Funktion oder API zunimmt, wird die Funktion skaliert. Die Abrechnung für den Kunden erfolgt auf der Grundlage der Sekunden-Messung. Das bedeutet, dass dem Kunden alle 100 ms berechnet wird, die der Code ausführt, und wie oft der Code ausgelöst wird. Auf diese Weise müssen Sie nicht bezahlen, wenn der Code nicht ausgeführt wird.

Fazit

Trotz aller Einzigartigkeit sind die serverlosen Angebote nicht ohne Einschränkungen. Mehrere kleine Funktionen können möglicherweise zu einem äußerst komplexen System führen, insbesondere wenn die Softwareanwendung sehr umfangreich ist. Die Situation wird auch durch die begrenzte Verfügbarkeit von Werkzeugen zur Bewältigung derartiger Komplexitäten verschärft. Dennoch wird Serverless Computing als eine Lösung für die monolithischen Systeme angesehen, mit denen Unternehmen zu kämpfen haben. Es ist immer noch in einem jungen Zustand und Organisationen finden immer noch Möglichkeiten, es für sie arbeiten zu lassen, da es bei den Unternehmen mehr Akzeptanz findet.