Eder, P. (2017). An infrastructure agnostic application deployment framework for the Internet of things [Diploma Thesis, Technische Universität Wien]. reposiTUm. https://doi.org/10.34726/hss.2017.38904
Internet der Dinge; IoT; Virtualisierung; Betriebsystemvirtualisierung; Docker; Application Deployment Framework; Deployment
de
Internet of Things; IoT; Virtualization; Operating-System-Level Virtualization; Docker; Application Deployment Framework; Deployment
en
Abstract:
In den letzten Jahren wurden Begriffe wie Smart Grid, Smart City, oder Smart Vehicles immer populärer. Sie fallen alle unter das Konzept des Internet der Dinge (IoT). Schätzungen zufolge werden im Jahr 2020 bis zu 34 Milliarden Geräte mit dem Internet verbunden sein. Das große Potenzial von IoT ist mit vielen Herausforderungen verbunden. Neben Aspekten wie Privatsphäre, Sicherheit, Skalierbarkeit, etc., ist die Infrastruktur des IoT ein erhebliches Problem. Die große Anzahl an unterschiedlichen Geräten führt zu einem sehr heterogenen Umfeld. Die Entwicklung von Applikationen, welche diese heterogene Infrastruktur berücksichtigt, wird dadurch äußerst komplex und fehleranfällig. Eine mögliche Lösung für dieses Problem ist durch Virtualisierung die Plattform zu abstrahieren. Im Zuge dieser Diplomarbeit wird die Verwendung von Betriebssystemvirtualisierung in Verbindung mit dieser heterogenen Umgebung untersucht. In diesem Zusammenhang werden häufig verwendete IoT Geräte vorgestellt. Zudem erfolgt eine detaillierte Beschreibung der Virtualisierung in verschiedenen Betriebssystemen (z.B.: Linux, FreeBSD, Solaris, Windows). Neben der Vorstellung von aktuellen Container Engines mit Fokus auf Linux, wird auch das Konzept der Continuous Delivery erläutert. Zur Demonstrierung der Anwendbarkeit der Betriebssystemvirtualisierung im Kontext von IoT, wird ein Application Deployment Framework entwickelt. Dieses Framework bietet die Möglichkeit Applikationen mit einem Klick zu verteilen und einzusetzen. Zusätzlich erlaubt es das Einsetzen auf verschiedenen CPU-Architekturen (z.B.: ARM, x86) und vereinfacht die Integrierung in eine bereits vorhandene Continuous Delivery Pipeline durch eine REST API. Die Funktionen des Frameworks werden durch den Einsatz eines Gebäudemanagementsystems veranschaulicht. Im letzten Teil der Diplomarbeit, wird die Verwendung von verschiedenen Applikationen auf unterschiedlichen Geräten hinsichtlich der Realisierbarkeit und Anwendbarkeit des vorgestellten Ansatzes evaluiert und diskutiert.
de
In the last years terms like Smart Grid, Smart City or Smart Vehicle, became increasingly popular. They all fall under the conception of the so called Internet of Things (IoT). It is estimated that in 2020 will be up to 34 billion devices connected with the Internet. However, the huge potentials of IoT come with various challenges. Among issues like privacy, security, scalability, etc., the infrastructure in IoT is a significant problem. The huge amount of different devices leads to a highly heterogeneous environment. Thus, developing applications that respect these heterogeneous infrastructures is exceedingly complex and in further consequence very error prone. A possible solution to this problem is to abstract the platform through virtualization. In the course of this thesis we investigate how operating-system-level virtualization can be used to cope with the heterogeneous environment. Therefore, commonly used IoT devices are presented and an in-depth explanation of how operating-system-level virtualization is implemented on different operating systems (e.g., Linux, FreeBSD, Solaris, Windows) is given. Furthermore, currently available container engines with focus on Linux are introduced and compared. We also explain the concept of continuous delivery, and why this development approach facilitates agile development. To show the feasibility of operating-system-level virtualization in the context of IoT, a prototype of an application deployment framework is developed. This framework provides distribution and deployment of applications within one click. Furthermore, it allows to deploy on different CPU-architectures (e.g., ARM, x86) transparently to the user. Additionally, it can easily be integrated within a continuous delivery pipeline through a REST API. The features of the framework are demonstrated via the deployment of a Building Managament System (BMS). In the last part of the thesis, the deployment time of different applications on various devices is evaluated and discussed, which shows both, feasibility and applicability of the proposed approach.