Serverless Computing und die darauf basierenden Function-as-a-Service-Lösungen helfen Entwicklern bei der Entwicklung von Produkten mit Schwerpunkt auf Geschäftsfunktionen. Wir haben mit diesen Technologien experimentiert und sind zu dem Schluss gekommen, dass die vorhandenen Lösungen für den Kampfeinsatz feucht sind. Lass uns in Ordnung gehen.
Der Begriff Serverless Computing ist etwas irreführend - natürlich bleiben Server das Herzstück des Produkts, aber die Entwickler müssen sich nicht um sie kümmern. Im Kern setzt Serverless die gleichen Virtualisierungsideen wie frühere aaS-Technologien fort: Das Team kann sich auf die Code- und Funktionsentwicklung konzentrieren. Wenn IaaS eine Abstraktion von Geräten ist, Container eine Abstraktion von Anwendungen, dann ist FaaS eine Abstraktion der Geschäftslogik eines Dienstes.
Die Idee ist nicht, den Anwendungsserver, die Datenbank und die Load Balancer in den Container zu packen. Entwickler können eine Funktion im Code isolieren, auf die Cloud-Plattform laden und bei Bedarf ausführen. Bereitstellen von Instanzen, Bereitstellen von Code und Zuweisen von Ressourcen, Starten von Webschnittstellen, Überwachen des Zustands und Gewährleistung der Sicherheit - all dies geschieht automatisch.
FaaS bietet maximale Flexibilität beim Leistungsmanagement - während der Ausfallzeit verbraucht die Funktion keine Ressourcen, und bei Bedarf weist die Plattform schnell Kapazitäten zu, die für nahezu jede Arbeitslast ausreichen. Bedient eine Anwendung von einem Benutzer oder einhunderttausend gleichzeitig - die Leistung eines Systems mit FaaS-Architektur leidet nicht wirklich, und ein Produkt mit einer traditionellen Architektur hätte sicherlich Probleme.
Das Team kümmert sich nicht um die Backend- und Bereitstellungsprozesse. Unter idealen Bedingungen wird die Implementierung einer neuen Funktion auf das Hochladen einer Funktion auf den Server reduziert. Infolgedessen schreitet die Entwicklung schneller voran, und die Markteinführungszeit verkürzt sich. Im gesamten Unternehmen hilft die Implementierung von FaaS bei der Entwicklung eines Plattformansatzes. Für Serverless Computing wird entweder ein Pool von Cloud-Ressourcen eines Anbieters oder eines Kubernetes-Clusters benötigt.
Serverless-. : Lambda Amazon KNative. Amazon, Kubernetes.
Amazon Lambda – , . , , , .
«» – , . , , , .
KNative – , Kubernetes.
Lambda, , . :
Event source – FaaS-, . HTTP-, ,
Broker – «», Event Source. Kafka, ..
Trigger – Broker , «» Service.
Service – , -.
, , : (1) , (2) Docker-, (3) .
KNative – , FaaS- . , , .
FaaS
, 0 100%:
, . / , , .
(push, email, ).
, , – . Serverless , .. . , , .
Serverless:
. , , .
– AWS, Microsoft Azure Google Cloud. Kubernetes .
FaaS – « », . , DDD. , . . .
– Serverless
... Vorausgesetzt, die Entwickler entwickeln diese Richtung insbesondere, um Open-Source-Plattformen auf dem Niveau des gleichen Amazon Lambda zu entwickeln.
Die Motivation für solche Projekte kann eine Reduzierung der Ressourcenkosten und ein verbessertes Management großer energieintensiver Produkte sein. Im Moment fällt es Entwicklern möglicherweise leichter, auf altmodische Weise zu arbeiten. Der Besitz von Serverless und die Fähigkeit, diese Tools zu verwenden, sind ein gutes Gepäck. Unternehmen sollten einige Jahre warten, bevor sie sie im Kampf einsetzen.