Computing; DevOps; Automatic Deployment; Internet of Things
en
Abstract:
Mit der steigenden Popularität des Internet of Things sehen wir immer häufiger, dassversucht wird das traditionelle Cloud-Computing mit Ressourcen am Rande des Netzwerks(der Edge) zu verbinden. Dadurch wird es ermöglicht die unterschiedlichen Vor- undNachteile der beiden Plattformtypen auszunutzen. Allerdings bringt das Zusammenführender beiden Arten von Plattformen neue Herausforderungen, sowohl für Entwickler als auchfür das Betriebspersonal, mit sich, da es immer schwieriger wird festzulegen wie Services,basierend auf ihren nicht funktionalen - und Laufzeitanforderung, verteilt werden sollen,während die verfügbaren Ressourcen auf der Edge optimal ausgenutzt werden. Händisch zu entscheiden, wo jedes einzelne der Services laufen soll und diese dannhändisch zu verteilen, wird zu einer nicht bewältigbaren Aufgabe, im Speziellen wenn essich um eine große Anzahl an Services handelt, was oft der Fall ist wenn eine MicroserviceArchitektur zum Einsatz kommt. Weiters ist es notwendig, dass, wenn die Services einmalverteilt sind, ihr Laufzeit-Verhalten zu überwachen um eine Verschlechterung der Qualityof Service Parameter, sowohl der einzelnen Services, als auch des gesamten Systems,feststellen zu können. Dadurch wird es möglich entsprechend Handlungen zu setztenum die Verletzung von Service Level Agreements zu verhindern. Außerdem können diegesammelten Informationen verwendet werden um eine Optimierung von zukünftigenVerteilungsprozesse zu ermöglichen. In dieser Arbeit schlagen wir eine ganzheitliche Herangehensweise vor, die sowohl Entwicklerund als auch das Betriebspersonal bei der Entwicklung, dem Verteilen und demBetreiben von Applikationen, die einem Miscroservice Muster folgen, unterstützt. Umdies zu erreichen implementieren wir das Data-Driven Automatic Deployment Frameworkin einer prototypischen Umsetzung. Dieses erlaubt es Applikationen transparentauf Cloud- und Edge-Infrastruktur zu verteilen. Weiters stellt es einen einheitlichenÜberwachungsmechanismus für Services zur Verfügung, welcher einen Event-basiertenMechanismus zur Laufzeit Adaptierung ermöglicht.
de
With the growing popularity of the Internet of Things, we see a trend towards combiningtraditional cloud computing with resources available at the edge of the network. Thisway it becomes possible to exploit the complementary characteristics of both typesof platforms. However, unifying the two types of platforms poses new challenges todevelopers and operational staff alike, as it becomes increasingly harder to determinewhere services should run based on their non-functional- and runtime-requirements, whilesimultaneously utilizing the resources at hand in an optimal way. Manually deciding where each individual service should run, and rolling them outbecomes unfeasible, especially with a large number of individual services, which tends tobe the case in a microservice architecture. Furthermore, once the services are deployedinto production, it becomes necessary to monitor their runtime behavior to detect adeterioration of the individual services’ quality of service parameters as well as those ofthe system as a whole. Thereby, it becomes possible to take actions to prevent quality ofservice and service level agreement violations. Additionally, the collected informationcan be used to optimize future the deployment plans for the services. In this work we propose a holistic approach towards supporting developers and operationalstaff in creating and running applications that employ a microservice architecturalpattern. To realize this approach we prototypically implement a Data-Driven AutomaticDeployment framework which allows the transparent deployment of services onto cloudand edge hosts alike. Furthermore, it provides a uniform monitoring mechanism for theservices, which enables an event-based mechanism for runtime adaptation.