Abstract:
|
Em aplicações de grande porte é essencial reduzir o acoplamento entre módulos. Dessa forma, é possível reduzir o impacto das alterações em componentes distintos, bem como aprimorá-los de forma independente. Assim, surgiu o conceito de microservices, apresentado como uma alternativa ao modelo tradicional, conhecido como aplicações monolíticas. O modelo tradicional é criticado devido à difícil manutenção e evolução, ocasionada pelo elevado grau de acoplamento entre os componentes (FOWLER-LEWIS, 2014).A arquitetura de microservices prevê a separação de uma aplicação em um conjunto de serviços de menor complexidade, cada qual executando de forma independente e utilizando protocolos simples para comunicação, como HTTP (FOWLER-LEWIS, 2014). O modelo vem sendo amplamente utilizado, principalmente pela facilidade na manutenção e evolução das aplicações. A adoção desse modelo de arquitetura acaba por transformar uma única aplicação monolítica em um conjunto de serviços (NEWMAN, 2015), que tende a crescer com a adição de novas funcionalidades.No âmbito de microservices, existe a necessidade de prover garantias de Qualidade de Serviço (QoS), em relação a requisitos não funcionais como: disponibilidade, confiança, segurança e desempenho (MANI-NAGARAJAN, 2002). Em se tratando especificamente do campo desempenho, é necessário conhecer a capacidade e o tempo de resposta de um serviço para que se possa avaliar melhorias e correções sob a perspectiva dessas métricas.A proposta do presente trabalho é definir um modelo arquitetural que possa automatizar os testes de desempenho dos serviços em um conjunto de microservices. O problema foi endereçado à arquitetura de microservices em virtude desta representar o contexto no qual o conhecimento da capacidade dos serviços é de extrema importância, sobretudo devido à dinamicidade que os8serviços possuem, sendo que novas mudanças e funcionalidades tendem a alterar a capacidade do serviço.Com base na arquitetura proposta foi desenvolvido um framework que implementa os conceitos propostos pela arquitetura. A avaliação do framework demonstrou que o mesmo pode ser utilizado sem qualquer prejuízo ao desempenho do serviço. |