Popis: |
Dissertação de Mestrado em Engenharia Informática apresentada à Faculdade de Ciências e Tecnologia Cloud computing has become so popular and widely adopted that plenty of applications, or parts of it, are hosted in a cloud environment. Furthermore, with emerging technologies like containers that improve the service offered by clouds, systems continue to grow and become larger, more fragmented, and more complex. That complexity requires constant monitoring and adaptation to keep up with demand, and maintain or improve performance without increasing costs unnecessarily.Also, if a system can self-adapt, management activity becomes easier as adaptations no longer require supervisors to manually perform them.Although there are some interesting monitoring solutions, they do not offer automation of the adaptability part. Thus, self-adaptive enabling tools become much more attractive as they offer automation of the whole systems management activity, from monitoring to adaptations. Among self-adaptive enabling tools, there are some disadvantages such as environmental restrictions to cloud providers, the inability to manage more than one system, and the nonexistence of a complete control loop capable of integrating with any type of system. TMA (Trustworthiness Monitoring & Assessment Framework) is a monitoring and management platform that implements a complete control loop capable of providing any system with self-adaptive capabilities. It dispatches adaptations on systems based on quality models, which are weighted trees of metrics representing the requirements of systems. Also, it can manage more than a single system.This work aims at developing a dashboard for TMA, focusing on functionalities related to systems monitoring such as the creation and management of charts, metrics values simulations, and the creation of metrics and quality models. To support this, TMA's API component had to be extended and the Analyze component automated. Additionally, features for managing adaptation rules were created so, TMA's Planning component had its architecture changed and its code extended and altered. The dashboard was implemented upon React's framework, using Semantic UI for styling, while the TMA components were reprogrammed in the same language they were written. The choice of development frameworks for the dashboard was based on multiple factors such as experience, responsiveness, and simplicity. Also, as Maintainability and Usability are attributes the product should have, React was chosen as it suits both properties. Furthermore, it is a trending technology, which means there is a lot of support that should ease the development activity. A computação em nuvem tornou-se tão popular e amplamente adoptada que muitas aplicações, ou partes delas, estão alojadas num ambiente cloud. Além disso, com tecnologias emergentes como os containers que melhoram o serviço oferecido pelas clouds, os sistemas continuam a crescer e a tornar-se maiores, mais fragmentados e mais complexos. Essa complexidade requer constante monitorização e adaptação para lidar com a carga, e manter ou melhorar o desempenho sem aumentar desnecessariamente os custos. Além disso, se um sistema se conseguir auto-adaptar, a tarefa de gestão é facilitada, uma vez que deixa de ser necessário que os supervisores executem as adaptações manualmente.Embora existam algumas soluções de monitorização interessantes, elas não oferecem automatização da parte da adaptação. Assim, ferramentas que permitem auto-adaptação tornam-se muito mais atractivas, uma vez que oferecem automatização de toda a actividade de gestão de sistemas, desde monitorização a adaptações. Entre estas ferramentas existem algumas desvantagens, tais como a restrição ambiental a fornecedores cloud, incapacidade de gerir mais do que um sistema e inexistência de um ciclo de controlo completo capaz de se integrar com qualquer tipo de sistema. O TMA (Trustworthiness Monitoring & Assessment Framework) é uma plataforma de monitorização e gestão que permite auto-adaptação em sistemas. Ele executa adaptações baseando-se em modelos de qualidade, que são árvores de métricas ponderadas que representam os requisitos dos sistemas. Além disso, o TMA pode gerir mais do que um único sistema. Neste trabalho foi desenvolvida uma dashboard para o TMA, focada em funcionalidades de monitorização de sistemas como a criação e gestão de gráficos, simulações de valores de métricas, e criação de métricas e modelos de qualidade. Para isso, a componente API do TMA teve de ser extendida e a componente Analyze de ser automatizada. Adicionalmente, funcionalidades para a gestão das regras de adaptaçãoforam criadas, por isso a arquitetura da componente Planning do TMA foi alterada e o seu código alargado e alterado. A dashboard foi implementada utilizando a framework React, e a framework Semantic UI para estilização, enquanto que as componentes do TMA foram reprogramadas na mesma linguagem em que foram escritas. A escolha das frameworks foi baseada em experiência, responsividade e simplicidade. Além disso, a manutenção e a usabilidade são atributos que o produto deve possuir, daí a escolha do React por ser adequado a ambos. Sobre isso, é uma tecnologia popular, o que significa que há muito suporte e, portanto, a actividade de desenvolvimento deverá ser facilitada. Outro - This work is partially supported by the project TalkConnect - Voice Architecture over Distributed Network (reference POCI-01-0247-FEDER-039676) financed by Fundo Europeu de Desenvolvimento Regional (FEDER) through COMPETE 2020, from Portugal 2020. |