title: Optimized container scheduling for serverless edge computing
Creators: name: Rashed, Alexander
Publisher: name: TU Wien
Year: 2019
Subjects: subject: Serverless
subject: Scheduling
subject: Edge Computing
subject: Fog Computing
subject: FaaS
subject: Function-as-a-Service
subject: IoT
subject: Internet-of-Things
subject: Container
subject: Kubernetes
subject: Docker

description: Edge Computing ist ein neues Paradigma, welches heterogene Rechen- und Speicherressourcen am Netzwerkrand in unmittelbarer Nähe zu den eigentlichen Datenproduzenten wie Sensoren und mobilen Geräten ermöglicht. Aufgrund ihrer Heterogenität leiden Edge-Computing-Umgebungen unter hoher Komplexität. Diese Komplexität kann jedoch durch den Einsatz von Serverless Computing reduziert werden, einem neuen Cloud Computing-Ausführungsmodell, bei dem die Infrastrukturkomponenten für den Anwendungsentwickler völlig transparent sind. Darüber hinaus passt der ereignisgesteuerte Charakter des Internet der Dinge das eines der Hauptanwendungsgebiete von Edge Computing sein wird perfekt zum ereignisgesteuerten Charakter von Function-as-a-Service, einer speziellen Implementierung von Serverless Computing. Die meisten Function-as-a-Service Plattformen verwenden containerbasierte Virtualisierung. Um Container im großen Maßstab in einem Cluster zu integrieren und zu verwalten wurden mehrere Container-Orchestrierungsplattformen eingeführt, wobei Kubernetes zum De-Facto-Standard wurde. Der Kubernetes-Scheduler ist zwar flexibel, basiert aber auf der Grundannahme, dass die Cluster-Infrastruktur sehr homogen ist. Diese Arbeit beschreibt das Design, die Implementierung und die Evaluierung eines integrierten, latenz- und fähigkeitsbewussten Schedulers für den Betrieb einer Function-as-a-Service Plattform in einer gemischten Cloud-Edge-Computerumgebung. Wir stellen den Skippy-Scheduler vor, der den standardmäßigen Kubernetes-Scheduler um domänen-spezifische Prioritätsfunktionen erweitert, um die Platzierungsqualität für Funktionen in gemischten Cloud-Edge-Clustern zu erhöhen. Diese domänenspezifischen Prioritätsfunktionen verwenden zusätzliche Metadaten der Funktionen sowie der Knoten im Cluster. Um das Sammeln dieser Metadaten der Knoten zu automatisieren, wird der Skippy-Daemon eingeführt. Da die Konfiguration der einzelnen Gewichte der Prioritätsfunktionen nicht trivial ist, implementieren wir einen Optimierungsansatz. Unsere Ergebnisse zeigen, dass unser Scheduler den standardmäßigen Kubernetes-Scheduler im Durchschnitt über alle getesteten Szenarien übertrifft. Darüber hinaus erhöht die Optimierung die Platzierungsqualität zusätzlich deutlich. Im Vergleich zum standardmäßigen Kubernetes-Scheduler reduziert unser optimierter Scheduler die Bandbreitenauslastung um 67,52%, senkt die Kosten um 100%, erhöht die Ressourcenauslastung der Edge-Geräte um 245,37% und reduziert die Task-Ausführungszeit um 71,18% im Durchschnitt über alle getesteten Szenarien.
description: Edge computing is a new paradigm which enables heterogeneous computing and storage resources located at the network edge, in close proximity to the actual data producers like sensors and mobile devices. Due to their heterogeneous nature, edge computing environments are suffering from high complexity. However, this complexity can be decreased by leveraging serverless computing, a new cloud computing execution model in which the infrastructure components are entirely transparent to the application developer. Additionally, the event-centric nature of the Internet of Things which will be one of the main application fields of edge computing fits perfectly to the event-driven nature of Function-as-a-Service, a specific implementation of serverless computing. Most Function-as-a-Service platforms are utilizing container-based virtualization. In order to integrate and manage containers at scale in a cluster, multiple container orchestration platforms have been introduced, with Kubernetes becoming the de-facto standard. While the Kubernetes scheduler is flexible, it is based on the basic assumption that the cluster infrastructure is highly homogeneous. This thesis describes the design, implementation, and evaluation of an integrated, latency-, and capability-aware scheduler for running a Function-as-a-Service platform in a mixed cloud-edge computing environment. We introduce the Skippy scheduler, which extends the default Kubernetes scheduler with domain-specific priority functions in order to increase the placement quality for functions in mixed cloud-edge clusters. Those domain-specific priority functions are utilizing additional metadata of the functions as well as of the nodes in the cluster. In order to automate the gathering of this metadata of nodes, the Skippy daemon is introduced. Since the configuration of the individual weights of the priority functions isnt trivial, we implement an optimization approach. Our results show that our scheduler outperforms the default Kubernetes scheduler on average across all tested scenarios. Furthermore, the optimization additionally increases its placement quality significantly. Compared to the default Kubernetes scheduler, our optimized scheduler decreases the bandwidth usage by 67.52%, decreases the cost by 100%, increases the edge device resource utilization by 245.37%, and decreases the task execution time by 71.18% on average across all tested scenarios.