Guiding microservices decomposition through performance and modularity analysis

Gustavo Frederico Temple Pedrosa · 2025

A realização deste trabalho só foi possível graças ao apoio e incentivo de muitas pessoas, às quais registro aqui minha profunda gratidão.Em primeiro lugar, agradeço a Deus, por ter tornado possível cada passo desta caminhada.À minha família, em especial à minha esposa Mayani e ao meu filho Rafael, pelo amor incondicional, paciência, compreensão e incentivo constantes, mesmo diante das minhas ausências e preocupações.Ao meu orientador, Prof. Dr. Breno Bernard Nicolau de França, pela orientação segura, paciência, dedicação e por compartilhar seus conhecimentos de forma generosa, contribuindo não apenas para o desenvolvimento deste trabalho, mas também para minha formação pessoal e profissional.Agradeço também ao meu coorientador, Prof. Dr. Bruno Barbieri de Pontes Cafeo, por seu valioso apoio e contribuições.Aos membros da banca examinadora, Prof. Dr. Wesley Klewerton Guêz Assunção e Prof. Dr. Edson Borin, pela disponibilidade e pelas valiosas sugestões que enriqueceram significativamente a qualidade final desta dissertação.Aos professores do Programa de Pós-Graduação em Ciência da Computação da UNI-CAMP, que, com suas aulas e discussões, ampliaram meus horizontes e enriqueceram minha trajetória acadêmica e profissional.Minha gratidão se estende a todos os funcionários da Universidade Estadual de Campinas.Em especial aos do Instituto de Computação, cujo trabalho diário garante a infraestrutura e o suporte necessários à nossa formação, e também aos trabalhadores dos restaurantes universitários, que com seu serviço dedicado garantem nosso bem-estar.Aos meus colegas do laboratório LASER, pela convivência, pelas discussões enriquecedoras e pelo ambiente de colaboração que foi vital para o avanço deste trabalho.Aos colegas de turma e amigos conquistados ao longo do mestrado, pelo companheirismo, pelas conversas, pelo apoio mútuo nos momentos de desafio e pelas alegrias compartilhadas.Registro também minha profunda gratidão à comunidade global de software livre e de código aberto.Em particular, agradeço aos mantenedores dos projetos Spinnaker e Choerodon, cujas plataformas foram a base dos estudos.Agradeço também aos mantenedores do Async-Profiler, uma ferramenta que se mostrou fundamental para a análise de desempenho detalhada que viabilizou esta pesquisa.O trabalho de todos demonstra o poder do conhecimento compartilhado e acessível.A todos que, de alguma forma, contribuíram para a realização desta dissertação, o meu mais sincero agradecimento. ResumoCONTEXTO: A evolução dos existentes sistemas baseados em microsserviços apresenta desafios significativos, particularmente no refinamento da granularidade dos serviços.As práticas de decomposição predominantes sofrem com suporte metodológico insuficiente e negligenciam o desempenho, resultando em arquiteturas abaixo do ideal com desperdício de recursos computacionais.Essa falta de orientação com foco no desempenho contribui para decisões subjetivas em relação à granularidade dos microsserviços, correndo o risco de criar microsserviços superdimensionados que prejudicam a manutenibilidade a longo prazo.OBJETIVO: Este estudo apresenta o Granify, um método inovador para refinar a granularidade dos microsserviços, orientado por requisitos dinâmicos de desempenho e, subsequentemente, por atributos estáticos, como acoplamento e coesão.O Granify fornece orientações baseadas em evidências para identificar e decompor microsserviços individuais, garantindo desempenho e modularidade.MÉTODO: Nossa abordagem de pesquisa abrange uma revisão bibliográfica e análise de lacunas, o desenvolvimento de um método para orientar a decomposição de microsserviço para microsserviço combinando análise dinâmica para identificar recursos de alto desempenho com análise estática subsequente para aprimorar a coesão e reduzir o acoplamento entre serviços pós-decomposição, e um estudo de viabilidade e avaliação de cinco microsserviços em duas aplicações industriais de código aberto.RESULTADOS: Resultados empíricos indicam que a decomposição de funcionalidades com alto consumo de recursos produz microsserviços com métricas aprimoradas, como Strict Service Implementation Cohesion e Lack of Message-level Cohesion, além de Afferent e Efferent Coupling reduzido, permitindo o tratamento eficiente de solicitações e do uso de recursos computacionais, além de reduzir o tempo de resposta em até 65%.CONCLUSÃO: O estudo conclui que o Granify oferece um método eficaz e sistemático para refinar a granularidade de microsserviços.Ao integrar métricas dinâmicas de desempenho como principal fator de decomposição e utilizar a análise estática como uma salvaguarda quantitativa para evitar a degradação da qualidade estrutural, o Granify capacita os desenvolvedores a tomarem decisões baseadas em evidências, melhorando tanto a eficiência no uso de recursos quanto a manutenibilidade do sistema.

Read the paper · More papers on PaperTik