Zum Inhalt

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)
  • Serverless Computing (Function as a Service, A Berkley View on Serverless Computing, Limitierungen)
  • FaaS Plattformen (FaaS Programming Model, Event Sources, Triggers, Rules, Actions, Best Practices, Überblick über FaaS-Provider, -Plattformen und -Frameworks)
  • Typvertreter Kubeless (CLI, Funktions-Interface, Trigger)
PDF
PPTX
Lab 07 Übungen zu FaaS
Am Beispiel der Typvertreter kubeless (Self-hosted) und Google Cloud Functions (Managed Service)
  • Hello World Funktion
  • Hello World mit Dependencies (Packages)
  • HTTP(s) basierter Trigger
  • Covid-19 Daten auswerten (Ein Nanoservice auf Basis von Our-World-In-Data)
  • Eine CRON-basierte Weltraumüberwachung (ISS Astronauten und Positionen)
  • Realisierung mit Google Cloud Functions
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 Google
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.