Kapitel 10
Function as a Service
Container Orchestrierungs-Plattformen (wie bspw. Kubernetes) skalieren Workloads normalerweise nie bis auf null, da dies als ein "unhealthy" Workload-Zustand interpretiert werden würde. Daher ist immer eine letzte Ausführungs-Instanz erforderlich, die somit immer ein Constant Workload beinhaltet, der grundsätzlich die unwirtschaftlichste Last für Cloud Computing darstellt. Mittels der Scale-to-Zero Fähigkeit von FaaS-Plattformen lässt sich auch dieser letzte (unwirtschaftlichste) Anteil komplett dem Pay-as-you-Go Kostenmodell unterwerfen, da auf teure Always-On Komponenten verzichtet werden kann.
Das FaaS Programming Model ist dabei Event-driven, zustandslos und beruht auf Konzepten wie Ereignisquellen, Trigger, Regeln und Funktionen. Ereignisse können dabei aus unterschiedlichsten Quellen wie Streaming-Systemen, Datastores oder auch sonstigen (managed) Cloud Services stammen. Die FaaS-Plattform Landschaft ist durch viele Produkte und Managed Service Provider gekennzeichnet und u.a. sehr stark vom AWS Lambda Service geprägt. Wesentliche Portabilitätsprobleme bei FaaS entstehen durch eine noch fehlende Standardisierung des Funktions-Interfaces. Durch selbst gehostete FaaS-Plattformen, kann man jedoch eine zu starke Abhängigkeit von Service Providern vermeiden, in dem man auf Plattformen setzt, die sowohl Self-hosted als auch als Managed Service genutzt werden können.
Ein anderer Ansatz die Portabilität von FaaS-Funktionen sicher zu stellen, ist die Nutzung Plattform-agnostischer Frameworks. Agnostische Frameworks definieren Funktionen FaaS-Plattform unabhängig und "übersetzen" diese agnostischen Funktionen für spezifische FaaS-Plattformen unterschiedlichster FaaS-Provider.
Slides und Labs
Inhalte | Downloads | |
---|---|---|
Slides Unit 06 |
Function as a Service (FaaS)
|
PDF PPTX |
Lab 07 | Übungen zu FaaS Am Beispiel der Typvertreter kubeless (Self-hosted) und Google Cloud Functions (Managed Service)
|
Git |
Managed FaaS-Plattformen (Public Cloud)
Die Aufstellung ist alphabetisch und ohne Anspruch auf Vollständigkeit.
FaaS-Plattform | Anbieter | Anmerkungen |
---|---|---|
Azure Functions | Microsoft Azure | |
IBM Cloud Functions | IBM | basiert auf OpenWhisk |
Function Compute | Alibaba | |
Google Cloud Functions | ||
Lambda | Amazon Web Service | Dieser Service prägt die FaaS-Landschaft |
Oracle Cloud Fn | Oracle | basiert auf Fn Project |
Anmerkungen sowie Ergänzungsvorschläge werden gerne über folgenden Kanal angenommen und berücksichtigt.
Self-Hostable FaaS-Plattformen (Private Cloud)
Die Aufstellung ist alphabetisch und ohne Anspruch auf Vollständigkeit.
FaaS-Plattform | Organisation | Lizenz | Anmerkungen |
---|---|---|---|
Fn Project | Oracle | Apache 2.0 | Eigenständige FaaS-Plattform |
IronFunctions | Iron | Apache 2.0 | Kubernetes-basiert |
KEDA | Microsoft | Apache 2.0 | ereignisgesteuerte Autoskalierung für Kubernetes |
Kubeless | Bitnami/VMware | Apache 2.0 | Kubernetes-basiert (archiviertes Projekt) |
nuclio | iguazio | Apache 2.0 | Data Sciene und Machine Learning Fokus |
OpenFaaS | OpenFaaS | MIT | Kubernetes-basiert |
OpenWhisk | Apache | Apache 2.0 | Eigenständige FaaS-Plattform |
Anmerkungen sowie Ergänzungsvorschläge werden gerne über folgenden Kanal angenommen und berücksichtigt.
Plattform-agnostische FaaS-Frameworks
Die Aufstellung ist alphabetisch und ohne Anspruch auf Vollständigkeit.
Framework | Anbieter | Lizenz | Anmerkungen |
---|---|---|---|
Serverless Framework | serverless.com | MIT |
Anmerkungen sowie Ergänzungsvorschläge werden gerne über folgenden Kanal angenommen und berücksichtigt.