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