Abstract:
Die vorliegende Arbeit präsentiert Ansätze und Techniken zur qualitätsbewussten Verbesserung des Laufzeitmanagements von IoT-Anwendungen.
IoT-Anwendungen nehmen über die Sensorik von Smart Devices ihre Umgebung wahr, um diese zu analysieren oder mit ihr zu interagieren. Smart Devices sind in der Rechen- und Speicherleistung begrenzt, weshalb viele IoT-Anwendungen über eine IoT Plattform mit elastischen und skalierbaren Cloud Services verbunden sind. Die Last auf dem Cloud Service entsteht durch die verbundenen Smart Devices, die kontinuierlich Nachrichten transferieren. ... mehrDie Ressourcenkonfiguration des Cloud Services beeinflusst dessen Kapazität. Ein Service Operator, der eine IoT-Anwendung betreibt, ist mit der Herausforderung konfrontiert, die Smart Devices und den Cloud Service so zu konfigurieren, dass eine hohe Datenqualität bei niedrigen Betriebskosten erreicht wird.
Um hierbei den Service Operator zur Design Time zu unterstützen, modellieren wir Kostenfunktionen für Datenqualitäten, die durch das Wechselspiel der Smart Device- und Cloud Service-Konfiguration beeinflusst werden. Mit Hilfe dieser Kostenfunktionen kann ein Service Operator nach einer kostenminimalen Konfiguration für bestimmte Szenarien suchen. Existierende Ansätze zur Optimierung von Anwendungen zur Design Time fokussieren sich auf traditionelle Software-Architekturen und bieten daher nicht die notwendigen Konzepte zur Kostenmodellierung von IoT-Anwendungen an.
Des Weiteren unterstützen wir den Service Operator durch Lastkontrollverfahren, die auf Kapazitätsengpässe des Cloud Services durch eine kontrollierte Reduktion der Nachrichtenrate reagieren. Während sich das auf die Genauigkeit der Messungen nachteilig auswirken kann, stabilisieren sich zeitliche Verzögerungen und die IoT-Anwendung bleibt auch in starken Überlastszenarien verfügbar. Existierende Laufzeittechniken fokussieren sich auf die automatische Ressourcenprovisionierung von Cloud Services durch Auto-Scaler. Diese ermöglichen zwar, auf Kapazitätsengpässe und Lastschwankungen zu reagieren, doch die erreichte Quality-of-Service (QoS) kann dadurch mit hohen Betriebskosten verbunden sein. Daher ermöglichen wir durch die Lastkontrollverfahren eine weitere Technik, mit der einerseits dynamisch auf Kapazitätsengpässe reagiert werden und andererseits die zur Verfügung stehende Kapazität eines Cloud Services effizient genutzt werden kann. Außerdem präsentieren wir Kopplungstechniken, die Auto-Scaling und Lastkontrollverfahren kombinieren. Bestehende Ansätze zur Rekonfiguration von Smart Devices konzentrieren sich auf Qualitäten wie Genauigkeit oder Energie-Effizienz und sind daher ungeeignet, um auf Kapazitätsengpässe zu reagieren.
Zusammenfassend liefert die Dissertation die folgenden Beiträge:
1. Untersuchung von Performance Metriken für Skalierentscheidungen: Wir haben Infrastuktur- und Anwendungsebenen-Metriken daraufhin evaluiert, wie geeignet sie für Skalierentscheidungen von Microservices sind, die variierende Charakteristiken aufweisen. Auf Basis der Ergebnisse kann ein Service Operator eine fundierte Entscheidung darüber treffen, welche Performance Metrik zur Skalierung eines bestimmten Microservices am geeignesten ist.
2. Design von QoS Kostenfunktionen für IoT-Anwendungen: Wir haben ein QoS Kostenmodell aufgestellt, dass das Wirken von Smart Device- und Cloud Service-Konfiguration auf die Qualitäten einer IoT-Anwendung erfasst. Auf Grundlage dieser Kostenmodelle kann die Konfiguration von IoT-Anwendungen zur Design Time optimiert werden. Des Weiteren können mit den Kostenfunktionen Laufzeitverfahren hinsichtlich ihrem Beitrag zur QoS für verschiedene Szenarien evaluiert werden.
3. Entwicklung von Lastkontrollverfahren für IoT-Anwendungen: Die präsentierten Verfahren bieten einen komplementären Mechanismus zu Auto-Scaling an, um bei Kapazitätsengpässen die QoS aufrechtzuerhalten. Hierbei wird die Gesamtlast auf dem Cloud Service durch Anpassungen der Nachrichtenrate der Smart Devices reduziert. Ein Service Operator hat hiermit die Möglichkeit, Kapazitätsengpässen über eine Degradierung der Datenqualität zu begegnen.
4. Kopplung von Lastkontrollverfahren mit Ressourcen-Provisionierung: Wir präsentieren regelbasierte Kopplungsmechanismen, die reaktiv Lastkontrollverfahren oder Auto-Scaler aktivieren und diese damit koppeln. Das ermöglicht, auf Kapazitätsengpässe über eine Kombination von Datenqualitätsreduzierungen und Ressourcekostenerhöhungen zu reagieren.
5. Design eines Frameworks zur Entwicklung selbst-adaptiver Systeme: Das selbst-adaptive Framework bietet ein Anwendungsmodell für IoT-Anwendungen und Konzepte für die Rekonfiguration von Microservices und Smart Devices an. Es kann in verschiedenen Cloud-Umgebungen aufgesetzt werden und beschleunigt die prototypische Entwicklung von Laufzeitverfahren.
Wir validierten die Ansätze anhand zweier Case Study Systeme unterschiedlicher Komplexität. Das erste Case Study System besteht aus einem Cloud Service, welcher über eine IoT Plattform Nachrichten von virtuellen Smart Devices verarbeitet. Mit diesem System haben wir für unterschiedliche Anwendungsszenarien die Charakteristiken der vorgestellten Lastkontrollverfahren analysiert, um diese gegen Auto-Scaling und einer Kopplung der Ansätze zu vergleichen. Hierbei stellte sich heraus, dass die Lastkontrollverfahren ähnlich effizient wie Auto-Scaler Überlastszenarien addressieren können und sich die QoS in einem vergleichbaren Bereich bewegt. Im Schnitt erreichten die Lastkontrollverfahren in den untersuchten Szenarien etwa 50 % geringere QoS Gesamtkosten. Es zeigte sich auch, dass sowohl Auto-Scaling als auch die Lastkontrollverfahren in bestimmten Anwendungsszenarien deutliche Nachteile haben, so z. B. wenn die Datengenauigkeit oder Ressourcenkosten im Vordergrund stehen. Es hat sich gezeigt, dass eine Kopplung hierbei immer vorteilhaft ist, um die QoS beizubehalten. Im zweiten Case Study System haben wir eine intelligente Heizungslösung der Robert Bosch GmbH implementiert, um die Ansätze an einem komplexeren System zu validieren. Auch hier zeigte sich, dass eine Kombination von Lastkontrolle und Auto-Scaling am vorteilhaftesten ist und zu einer hohen Datenqualität bei geringen Ressourcenkosten beiträgt.
Die Ergebnisse zeigen, dass die vorgestellten Lastkontrollverfahren geeignet sind, die QoS von IoT Anwendungen zu verbessern. Es bietet einem Service Operator damit ein weiteres Werkzeug für das Laufzeitmanagement von IoT Anwendungen, dass einen zum Auto-Scaling komplementären Mechanismus verwendet. Das hier vorgestellte Framework zur Entwicklung selbst-adaptiver IoT Systeme haben wir zur empirischen Beantwortung der Forschungsfragen instanziiert und damit dessen Eignung demonstriert. Wir zeigen außerdem eine exemplarische Verwendung der vorgestellten Kostenfunktionen für verschiedene Anwendungsszenarien und binden diese im Zuge der Validierung in einem Optimierungs-Framework ein.
Abstract (englisch):
This thesis contributes to designing and operating IoT applications by introducing Quality-of-Service (QoS) cost functions and time-driven flow control approaches.
IoT applications perceive the environment via sensors of smart devices in order to analyze the environment or interact with it. Smart devices are limited in terms of processing and storage capabilities. Therefore, many IoT applications connect the smart devices to elastic and scalable cloud services via IoT platforms. The load on the cloud service is induced by the connected smart devices, which continuously transfer messages containing data about the environmental state. ... mehrThe resource configuration of the cloud service influences its capacity. Therefore, a service operator, who operates an IoT application, is faced with the challenge of configuring the smart devices and the cloud service in a manner, which achieves a high data quality at low operational costs.
To support the service operator at design time, we model cost functions for data qualities, which are influenced by the interplay of smart device and cloud service configurations. These cost functions enable a service operator to search for a cost minimal configuration for specific scenarios. Existing approaches for optimizing applications at design time focus on traditional software architectures and therefore do not provide necessary concepts to cost model qualities of IoT applications.
We also support the service operator with flow control approaches that cope with capacity shortages of cloud services by reducing the message rate of smart devices in a controlled manner. While this can have a negative impact on the accuracy of measurements, it stabilizes processing delays and ensures, that the IoT application remains available in severe overload scenarios. Existing runtime approaches focus on an automatic resource provisioning of cloud services by auto-scalers. Whereas they enable to cope with capacity shortages and load variations by levering the elasticity of the cloud environment, the achieved QoS can be associated with high operating costs. In contrast, the presented flow control approaches reduce the load on the cloud service and probe their capacity. Therefore, they enable to efficiently use the capacity of a cloud service and to cope with capacity shortages. Existing approaches adapting smart devices focus on qualities such as accuracy or energy efficiency and are therefore unsuitable to cope with overload scenarios.
In summary, the thesis contributes the following:
1. Evaluation of performance metrics for scaling decisions: We have evaluated infrastructure- and application-level metrics in regard to their suitability for scaling microservices with varying resource characteristics. Based on the results, a service operator can make an educated decision to select a suitable performance metric for an auto-scaler of a specific microservice.
2. Design of QoS cost functions for IoT applications: We present a cost model that captures the impact of smart device and resource configurations on the qualities of IoT applications. Based on these cost models, the configuration of IoT applications can be optimized at design time. Furthermore, the cost functions can be used to evaluate QoS contributions of runtime management approaches.
3. Design of flow control approaches for IoT applications: The presented approaches offer a complementary mechanism to auto-scaling to maintain the QoS in overload scenarios. The overall load on the cloud service is reduced by adjusting the message rate of the smart devices. This enables a service operator to counter a cloud services' capacity shortage by degrading data qualities.
4. Coupling of flow control approaches with auto-scaling: We present rule-based coupling mechanisms that activate flow control or auto-scalers in a reactive manner. The coupling aims improve the overall QoS conformance by managing capacity shortages and load variations with a combination of resource provisioning and data quality reductions.
5. Design of a framework for developing self-adaptive systems:The self-adaptive framework provides an application model for IoT applications and concepts for the reconfiguration of microservices and smart devices. It supports heterogeneous cloud environments and accelerates the prototypical development of runtime management approaches.
In order to empirically answer the research questions, we have instantiated the presented framework for self-adaptive IoT systems to implement and deploy flow control and auto-scaling approaches. For each case study system and application scenario, we have instantiated the cost functions and integrated them into an optimization framework to search for cost minimal runtime management configurations. We validated the approaches using two case study systems of varying complexity. The first case study system consists of a cloud service that processes messages from virtual smart devices via an IoT platform. With this system we analyzed the characteristics of the presented flow control approaches in different application scenarios and compared them to auto-scaling and a coupling of the approaches. The results showed, that the flow control approaches can address overload scenarios as efficiently as auto-scaling and that the emerging QoS is in a comparable range. On average, the flow control approaches achieved about 50 % lower total QoS costs in the investigated scenarios. Both auto-scaling and flow control had significant disadvantages in certain application scenarios, e.g. when data accuracy or resource costs are the primary concern. In all cases, a coupling had resulted in lower QoS costs. In the second case study we implemented an intelligent heating solution from the Robert Bosch GmbH to validate the approaches on a multi-service IoT application. Again, a combination of flow control and auto-scaling has resulted in a high data quality at low resource costs. Overall, the results showed that a runtime management with the presented flow control approaches is beneficial for the QoS of IoT applications.