The Doppler Quarterly (DEUTSCHE) Frühjahr 2018 | Page 67
die die Auswahl eines zufälligen Zitats implementiert und letztendlich eine
Sprachanweisung an Alexa zurückliefert. Diese Funktion kann mit AWS Lam-
bda über einen zugehörigen Amazon Resource Name (ARN) verbunden werden.
Da AWS Lambda ein nutzungsabhängiger Service ist (Sie bezahlen nur für das,
was Sie tatsächlich nutzen), ist er sehr viel kosteneffizienter für die Ausführung
Ihres Alexa-Skill als die Implementierung in einer reservierten EC2-Instanz.
Im Kern besteht eine serverlose Architektur aus einigen sprachspezifischen
Funktionen, die bei Bedarf ausgeführt, geplant, angewendet und beendet wer-
den. Eine serverlose Architektur wird als neue Post-VM- und Post-Cont-
ainer-Methode für die Erstellung und Implementierung von Anwendungen
angepriesen. Aber auch serverlose Funktionen müssen auf einer Plattform aus-
geführt werden – und zufällig gibt es eine perfekt dafür geeignete Plattform:
Kubernetes! Tatsächlich nutzen mindestens zwei Open-Source-Projekte K8s
als zugrunde liegende Plattform für eine serverlose Architektur: Kubeless und
Fission. Das Fission-Projekt ist ein sehr gutes Beispiel dafür, wie K8s für eine
serverlose Architektur verwendet werden kann. Fission besteht aus einem
API-Server, einem Service-Router, einem Pool-Manager und einer Reihe von
HTTP-Anforderung
Fission CLI
Controller
Router
...
poolmgr
„Generi-
sche“ Pods
Pods mit „spezifi-
schen“ Funktionen
Abbildung 4: Fission – Serverlose Funktionen für Kubernetes
funktionsspezifischen Pods, die in Schichten auf K8s angeordnet sind (siehe
Abbildung 4). Fission verwaltet einen Pool mit Pods, die Funktionen hosten, die
in Fission geladen wurden. Der Controller verfolgt die Funktionen und steuert
Ereignisauslöser und Container-Images, die mit den definierten Funktionen
konfiguriert wurden. Der Pool-Manager verwaltet eine Gruppe von Containern
für die Ausführung der Funktionen. Der Pool-Manager hält diese Container
„warm“ und plant sie bei Bedarf, wenn sie durch bestimmte Ereignisse ausgelöst
werden. Der Router empfängt HTTP-Anforderungen und leitet sie an den Pod
mit der entsprechenden Funktion weiter, wobei die Planung eines Pod durch den
Pool-Manager angefordert wird, falls notwendig. Der Pool-Manager ist äußerst
wichtig für Fission, da er die Ausführung einer Funktion mit nahezu sofortiger
Startzeit erlaubt und so die Latenzzeit beim Laden von Containern vermeidet.
FRÜHJAHR 2018 | THE DOPPLER | 65