Beethoven: an event-driven lightweight platform for microservice orchestration - Barbosa, Davi Monteiro (2018)
A arquitetura monolítica tradicional é construída como uma unidade lógica única que agrega vários serviços para fornecer funcionalidades de negócios. No entanto, a arquitetura monolítica pode apresentar as seguintes desvantagens: (i) dificuldade de compreender e modificar ao longo do tempo; (ii) dimensionamento ineficiente dos recursos computacionais; e (iii) dificuldade em aplicar pequenas modificações. Neste domínio, a arquitetura de microservices propõe uma solução para dimensionar recursos computacionais de forma eficiente e resolver outros problemas presentes na arquitetura monolítica. Embora a arquitetura de microservices ofereça inúmeros benefícios, há custos associados à sua adoção, como desafios para executar processos de negócios distribuídos entre diferentes microservices. Neste contexto, apesar de existir abordagens recentes para a composição de microservices, como Medley e Microflows, essas soluções possuem limitações em lidar com a localização dinâmica de microservices, pois exigem um registro prévio dos microservices necessários para realizar composições. Além disso, essas soluções não estão disponíveis tanto para a indústria quanto para a academia. Para preencher essa lacuna, esta dissertação propõe Beethoven, uma plataforma leve para composição de microservices que é composta de uma arquitetura de referência e uma DSL de orquestração baseada em processos de negócios declarativos. A arquitetura de referência segue uma abordagem orientada a eventos e foi instanciada usando o modelo de atores e o ecossistema fornecidos pelo Spring Cloud Netflix. Para demonstrar a viabilidade da plataforma de Beethoven, foram desenvolvidas duas aplicações de exemplo. Além disso, para investigar a avaliação de desempenho da plataforma, um quasi-experimento controlado foi conduzido. Todos os artefatos produzidos como parte dessa dissertação estão disponíveis no GitHub. Palavras-chave: Arquitetura Orientada a Eventos. Arquitetura de Referência. Composição de Microservice. Orquestração.