Diagnóstico de falhas em arquiteturas baseadas em microsserviços - Souza, Vinicius José Silveira [UNIFESP] (2021)
A utilização do estilo de arquitetura baseada em microsserviços no desenvolvimento de aplicações na Web traz consigo diversas vantagens. Pode-se destacar a independência entre times de desenvolvimento, maior autonomia aos desenvolvedores, maior velocidade de desenvolvimento e escalabilidade. Por outro lado, a sua topologia de comunicação entre processos, fundamentada em ambientes distribuídos, também acarreta desafios relacionados à disponibilidade dos serviços. Dessa forma, resiliência e tolerância à falhas são requisitos essenciais a um sistema baseado em microsserviços, visando evitar a indisponibilidade de funcionalidades críticas ao negócio. Neste tipo de ambiente distribuído, falhas são mais prováveis. Além disso, é consenso que sistemas distribuídos sejam naturalmente mais complexos de serem analisados e compreendidos, quando comparados à sistemas monolíticos tradicionais, dificultando o diagnóstico de problemas e retardando eventuais correções. Diante deste cenário, esta dissertação de mestrado discute o desenvolvimento e aprimoramento de métodos que auxiliem no diagnóstico de falhas em arquiteturas baseadas em microsserviços. Tais métodos podem facilitar a busca pela causa raiz da falha e minimizar o tempo para correção, impactando diretamente na disponibilidade do sistema. Neste contexto, esta dissertação apresenta três principais contribuições. A primeira, é uma análise bibliográfica ampla, considerando os principais padrões de falhas, bem como as técnicas e métodos utilizados pela indústria e estudados pela academia para se obter confiabilidade neste tipo de arquitetura. A segunda contribuição é um arcabouço de software denominado microchaos juntamente com um ambiente de emulação, como iniciativa para suprir a carência atual de ferramentas e ambientes apropriados de experimentação de falhas em microsserviços. Tal arcabouço, juntamente com o ambiente, possibilitam o uso de microsserviços sintéticos flexíveis para reproduzir cenários reais de aplicações em produção, permitindo que falhas possam ser exercitadas exaustivamente e que novos métodos e técnicas de diagnósticos de falhas possam ser experimentalmente validados e avaliados. Por fim, o trabalho avalia um método de diagnóstico de falhas baseado em sistemas especialistas utilizando o ambiente proposto.