8 research outputs found

    ATOM: model-driven autoscaling for microservices

    Get PDF
    Microservices based architectures are increasinglywidespread in the cloud software industry. Still, there is ashortage of auto-scaling methods designed to leverage the uniquefeatures of these architectures, such as the ability to indepen-dently scale a subset of microservices, as well as the ease ofmonitoring their state and reciprocal calls.We propose to address this shortage with ATOM, a model-driven autoscaling controller for microservices. ATOM instanti-ates and solves at run-time a layered queueing network model ofthe application. Computational optimization is used to dynami-cally control the number of replicas for each microservice and itsassociated container CPU share, overall achieving a fine-grainedcontrol of the application capacity at run-time.Experimental results indicate that for heavy workloads ATOMoffers around 30%-37% higher throughput than baseline model-agnostic controllers based on simple static rules. We also find thatmodel-driven reasoning reduces the number of actions needed toscale the system as it reduces the number of bottleneck shiftsthat we observe with model-agnostic controllers

    Reactive Microservices - An Experiment

    Get PDF
    Os microserviços são geralmente adotados quando a escalabilidade e flexibilidade de uma aplicação são essenciais para o seu sucesso. Apesar disto, as dependências entre serviços transmitidos através de protocolos síncronos, resultam numa única falha que pode afetar múltiplos microserviços. A adoção da capacidade de resposta numa arquitetura baseada em microserviços, através da reatividade, pode facilitar e minimizar a proliferação de erros entre serviços e na comunicação entre eles, ao dar prioridade à capacidade de resposta e à resiliência de um serviço. Esta dissertação fornece uma visão geral do estado da arte dos microserviços reativos, estruturada através de um processo de mapeamento sistemático, onde são analisados os seus atributos de qualidade mais importantes, os seus erros mais comuns, as métricas mais adequadas para a sua avaliação, e as frameworks mais relevantes. Com a informação recolhida, é apresentado o valor deste trabalho, onde a decisão do projeto e a framework a utilizar são tomadas, através da técnica de preferência de ordem por semelhança com a solução ideal e o processo de hierarquia analítica, respetivamente. Em seguida, é realizada a análise e o desenho da solução, para o respetivo projeto, onde se destacam as alterações arquiteturais necessárias para o converter num projeto de microserviços reativo. Em seguida, descreve-se a implementação da solução, começando pela configuração do projeto necessária para agilizar o processo de desenvolvimento, seguida dos principais detalhes de implementação utilizados para assegurar a reatividade e como a framework apoia e simplifica a sua implementação, finalizada pela configuração das ferramentas de métricas no projeto para apoiar os testes e a avaliação da solução. Em seguida, a validação da solução é investigada e executada com base na abordagem Goals, Questions, Metrics (GQM), para estruturar a sua análise relativamente à manutenção, escalabilidade, desempenho, testabilidade, disponibilidade, monitorabilidade e segurança, finalizada pela conclusão do trabalho global realizado, onde são listadas as contribuições, ameaças à validade e possíveis trabalhos futuros.Microservices are generally adopted when the scalability and flexibility of an application are essential to its success. Despite this, dependencies between services transmitted through synchronous protocols result in one failure, potentially affecting multiple microservices. The adoption of responsiveness in a microservices-based architecture, through reactivity, can facilitate and minimize the proliferation of errors between services and in the communication between them by prioritizing the responsiveness and resilience of a service. This dissertation provides an overview of the reactive microservices state of the art, structured through a systematic mapping process, where its most important quality attributes, pitfalls, metrics, and most relevant frameworks are analysed. With the gathered information, the value of this work is presented, where the project and framework decision are made through the technique of order preference by similarity to the ideal solution and the analytic hierarchy process, respectively. Then, the analysis and design of the solution are idealized for the respective project, where the necessary architectural changes are highlighted to convert it to a reactive microservices project. Next, the solution implementation is described, starting with the necessary project setup to speed up the development process, followed by the key implementation details employed to ensure reactivity and how the framework streamlines its implementation, finalized by the metrics tools setup in the project to support the testing and evaluation of the solution. Then, the solution validation is traced and executed based on the Goals, Questions, Metrics (GQM) approach to structure its analysis regarding maintainability, scalability, performance, testability, availability, monitorability, and security, finalized by the conclusion of the overall work done, where the contributions, threats to validity and possible future work are listed

    QoS-Based Optimization of Runtime Management of Sensing Cloud Applications

    Get PDF
    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. Die 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

    Modeling and Simulation of Message-Driven Self-Adaptive Systems

    Get PDF
    Dynamische, sich selbst rekonfigurierende Systeme nutzen Nachrichtenwarteschlangen als gängige Methode zum Erreichen von Entkopplung zwischen Sendern und Empfängern. Das Vorhersagen der Qualität von Systemen zur Entwurfszeit ist wesentlich, da Änderungen in späteren Phasen der Entwicklung sehr viel aufwändiger und teurer sind. Momentan gibt es keine Methode, Nachrichtenwarteschlangen auf architekturellem Level darzustellen und deren Qualitätseinfluss auf Systeme vorherzusagen. Existierende Ansätze modellieren Warteschlangen nicht explizit sondern abstrahieren sie. Warteschlangeneffekte sowie Details der Nachrichten-Infrastruktur wie zum Beispiel Flusskontrolle werden nicht beachtet. Diese Arbeit schlägt ein Meta-Modell vor, das eine solche Repräsentation ermöglicht, und eine Simulations-Schnittstelle zwischen einer Simulation einer komponentenbasierten Architekturbeschreibungssprache und einer Nachrichtenaustausch-Simulation. Das Meta-Modell wurde als Erweiterung des Palladio Komponentenmodells realisiert. Die Schnittstelle wurde implementiert für den Palladio-Simulator SimuLizar und eine von RabbitMQ inspirierte Simulation, die dem AMQP 0.9.1 Protokoll folgt. Dies ermöglicht architekturelle Repräsentation von Nachrichtenaustausch und das Vorhersagen von Qualitätsattributen von nachrichtengetriebenen, selbst-adaptiven Systemen. Die Evaluation anhand einer Fallstudie zeigt die Anwendbarkeit des Ansatzes und seine Vorhersagegenauigkeit für Punkt-zu-Punkt-Kommunikation. Außerdem konnten andere qualitätsbezogene Metriken, wie etwa Nachrichtenwarteschlangenlänge, Ein- und Ausgangsraten von Nachrichtenwarteschlangen, sowie Speicherverbrauch korrekt vorhergesagt werden. Das ermöglicht tiefere Einsichten in die Qualität eines Systems. Wir argumentieren weiterhin, dass der Ansatz in dieser Arbeit selbst-adaptive nachrichtengetriebene Systeme, die sich basierend auf verschiedenen Metriken rekonfigurieren, simulieren kann

    Harmonização de desempenho, tolerância a falhas e escalabilidade em arquiteturas de microsserviços orientadas a eventos

    Get PDF
    Uma arquitetura de microsserviços é composta por diferentes serviços independentes, que possuem as suas próprias camadas conseguindo comunicar entre si. Os mecanismos de comunicação síncrona utilizados neste tipo de arquitetura conduzem ao aumento da latência e ao risco da existência de timeouts. Sabendo-se da possível ocorrência de falhas mecanismos de controlo sobre o estado do sistema são recomendados. Complementarmente, a escalabilidade deve de estar presente consoante as necessidades. Este tipo de arquitetura combinada com abordagens orientadas a eventos pode-se revelar uma alternativa razoável quando se possui requisitos de desempenho, tolerância a falhas e escalabilidade. Uma visão geral do estado de arte das arquiteturas de microsserviços orientadas a eventos é realizada, com recurso a uma revisão sistemática da literatura. Aqui são exploradas as preocupações, desafios, topologias, tecnologias e métricas a considerar aquando da exploração da temática das arquiteturas de microsserviços orientadas a eventos. Após a recolha de informação, uma análise de valor sobre o valor deste projeto de tese é construída, com recurso ao processo de inovação New Concept Development (NCD). Alcançando-se a ideia mais relevante de explorar, apoiada pela aplicação do método Analytic Hierarchy Process (AHP), ou seja, o desenvolvimento de dois protótipos de microsserviços orientados a eventos arquitecturalmente distintos. O primeiro aplicando a topologia mediadora e o segundo aplicando o modelo ator. Escolhida a ideia mais relevante de se explorar é realizada a análise e a conceção da solução. Abordando-se o problema de negócio de estacionamento de veículos, bem como são construídos os processos de engenharia de requisitos e de análise funcional com recurso ao método Quality Function Deployment (QFD). Depois evidencia-se as alterações arquiteturais a realizar às aplicações típicas da empresa, para que estas contemplem as abordagens referentes à aplicação da topologia mediadora e do modelo ator. Posteriormente, a implementação dos protótipos correspondentes é realizada, começando-se pela definição das dependências principais de cada protótipo, depois os detalhes de implementação mais relevantes dos mesmos são expressos. O processo de implementação é concluído com a realização de testes, assegurando a qualidade dos protótipos alcançados. Ulteriormente, a avaliação dos protótipos desenvolvidos é suportada segundo certas métricas, alcançadas com base na abordagem Goal, Questions, Metrics (GQM), permitindo avaliar o desempenho, a escalabilidade, a disponibilidade e a monitorabilidade de cada protótipo. Os resultados atingidos permitiram comparar os diferentes protótipos, sendo o protótipo baseado na topologia mediadora aquele que melhor harmoniza desempenho, disponibilidade, monitorabilidade e escalabilidade. Por fim, as conclusões do trabalho de mestrado são expressas, onde se apresentam os resultados atingidos, as contribuições, ameaças e pontos de trabalho futuro.A microservices architecture is composed of different independent services, which have their own layers and can communicate with each other. The synchronous communication mechanisms used in this type of architecture lead to increased latency and the risk of timeouts. Knowing the possible occurrence of failures, control mechanisms over the state of the system are recommended. In addition, scalability must be present depending on the needs. This type of architecture combined with event-driven approaches can prove to be a reasonable alternative when performance, fault tolerance and scalability requirements are met. An overview of the state of the art of event-driven microservices architectures is performed, using a systematic literature review. Here, the concerns, challenges, topologies, technologies and metrics to consider when exploring the topic of event-driven microservices architectures are explored. After collecting information, a value analysis on the value of this thesis project is built, using the New Concept Development (NCD) innovation process. Reaching the most relevant idea to explore, supported by the application of the Analytic Hierarchy Process (AHP) method, that is, the development of two different prototypes using event-driven microservices. The first applying the mediator topology and the second applying the actor model. Having chosen the most relevant idea to be explored, the analysis and design of the solution is carried out. Addressing the business problem of parking vehicles, requirements engineering and functional analysis processes are built using the Quality Function Deployment (QFD) method. Afterwards, the architectural changes to be made to the company’s typical applications are highlighted, so that they include the approaches related to the application of the mediator topology and the actor model. Subsequently, the implementation of the corresponding prototypes is carried out, starting with the definition of the main dependencies of each prototype, then the most relevant implementation details of each prototype are expressed. The implementation process concludes with testing, ensuring the quality of the prototypes achieved. Next, the evaluation of the developed prototypes is supported according to certain metrics, achieved based on the Goal, Questions, Metrics (GQM) approach, allowing to evaluate the performance, scalability, availability and monitorability of each prototype. The achieved results allowed comparing the different prototypes, being the protype based on mediator topology the one that best harmonizes performance, availability, monitorability and scalability. Finally, the conclusions of the master’s work are expressed, where the results achieved, contributions, threats and points for future work are presented

    IoT-enabled water distribution systems - a comparative technological review

    Get PDF
    Water distribution systems are one of the critical infrastructures and major assets of the water utility in a nation. The infrastructure of the distribution systems consists of resources, treatment plants, reservoirs, distribution lines, and consumers. A sustainable water distribution network management has to take care of accessibility, quality, quantity, and reliability of water. As water is becoming a depleting resource for the coming decades, the regulation and accounting of the water in terms of the above four parameters is a critical task. There have been many efforts towards the establishment of a monitoring and controlling framework, capable of automating various stages of the water distribution processes. The current trending technologies such as Information and Communication Technologies (ICT), Internet of Things (IoT), and Artificial Intelligence (AI) have the potential to track this spatially varying network to collect, process, and analyze the water distribution network attributes and events. In this work, we investigate the role and scope of the IoT technologies in different stages of the water distribution systems. Our survey covers the state-of-the-art monitoring and control systems for the water distribution networks, and the status of IoT architectures for water distribution networks. We explore the existing water distribution systems, providing the necessary background information on the current status. This work also presents an IoT Architecture for Intelligent Water Networks - IoTA4IWNet, for real-time monitoring and control of water distribution networks. We believe that to build a robust water distribution network, these components need to be designed and implemented effectively

    Efficient Security Algorithm for Provisioning Constrained Internet of Things (IoT) Devices

    Get PDF
    Addressing the security concerns of constrained Internet of Things (IoT) devices, such as client- side encryption and secure provisioning remains a work in progress. IoT devices characterized by low power and processing capabilities do not exactly fit into the provisions of existing security schemes, as classical security algorithms are built on complex cryptographic functions that are too complex for constrained IoT devices. Consequently, the option for constrained IoT devices lies in either developing new security schemes or modifying existing ones as lightweight. This work presents an improved version of the Advanced Encryption Standard (AES) known as the Efficient Security Algorithm for Power-constrained IoT devices, which addressed some of the security concerns of constrained Internet of Things (IoT) devices, such as client-side encryption and secure provisioning. With cloud computing being the key enabler for the massive provisioning of IoT devices, encryption of data generated by IoT devices before onward transmission to cloud platforms of choice is being advocated via client-side encryption. However, coping with trade-offs remain a notable challenge with Lightweight algorithms, making the innovation of cheaper secu- rity schemes without compromise to security a high desirable in the secure provisioning of IoT devices. A cryptanalytic overview of the consequence of complexity reduction with mathematical justification, while using a Secure Element (ATECC608A) as a trade-off is given. The extent of constraint of a typical IoT device is investigated by comparing the Laptop/SAMG55 implemen- tations of the Efficient algorithm for constrained IoT devices. An analysis of the implementation and comparison of the Algorithm to lightweight algorithms is given. Based on experimentation results, resource constrain impacts a 657% increase in the encryption completion time on the IoT device in comparison to the laptop implementation; of the Efficient algorithm for Constrained IoT devices, which is 0.9 times cheaper than CLEFIA and 35% cheaper than the AES in terms of the encryption completion times, compared to current results in literature at 26%, and with a 93% of avalanche effect rate, well above a recommended 50% in literature. The algorithm is utilised for client-side encryption to provision the device onto AWS IoT core
    corecore