Proposta de uma abordagem para decompor sistemas monolíticos em microsserviços
Resumo
A arquitetura de microsserviços vem sendo amplamente adotada no desenvolvimento de sistemas de software. Enquanto o desenvolvimento de novos sistemas ocorre de forma natural, adotar esse novo estilo arquitetural em sistemas legados -- cuja tarefa de migração pode ser custosa, demorada e financeiramente cara para se realizar -- é um problema desafiador. Diante desse cenário, este artigo propõe uma abordagem semi-automática para auxiliar arquitetos de software na tarefa de decomposição de sistemas monolíticos em microsserviços. Uma avaliação preliminar trouxe resultados promissores uma vez que, com poucas iterações, obteve um conjunto conciso de microsserviços com maior coesão (6,98%) e menor acoplamento (5,9%).
Palavras-chave:
Arquitetura, Microsserviços, Monolítico, Extração de microsserviços
Referências
Zhamak Dehghani. How to break a monolith into microservices, 2018. Acesso em: 14 maio 2020. Disponível em: https://martinfowler.com/articles/break-monolith-into-microservices.htm.
Stephane Ducasse and Damien Pollet. Software architecture reconstruction: A process-oriented taxonomy. IEEE Transactions on Software Engineering, 35(4):573–591, 2009.
Daniel Escobar, Diana Cárdenas, Rolando Amarillo, Eddie Castro, Kelly Garcés, Carlos Parra, and Rubby Casallas. Towards the understanding and evolution of monolithic applications as microservices. In XLII Latin American on Computing Conference (CLEI), pages 1–11, 2016.
Martin Fowler. Refactoring: improving the design of existing code. Addison-Wesley, Boston, 1999.
Martin Fowler and James Lewis. Microservices a definition of this new architectural term, March 2014. Acesso em: 23 março 2020. Disponível em: https://martinfowler.com/articles/microservices.html.
Paolo Di Francesco, Ivano Malavolta, and Patricia Lago. Research on architecting microservices: trends, focus, and potential for industrial adoption. In 1st International Conference on Software Architecture (ICSA), pages 21–30, 2017.
David Garlan, Felix Bachmann, James Ivers, Judith Stafford, Len Bass, Paul Clements, and Paulo Merson. Documenting Software Architectures: Views and Beyond. Addison-Wesley Professional, 2010.
Miika Kalske, Niko Mäkitalo, and Tommi Mikkonen. Challenges when moving from monolith to microservice architecture. In 18th International Conference on Web Engineering (ICWE), pages 32–47, 2018.
Alessandra Levcovitz, Ricardo Terra, and Marco Tulio Valente. Towards a technique for extracting microservices from monolithic enterprise systems. In III Workshop de Visualização, Evolução e Manutenção de Software (VEM), pages 97–104, 2015.
Leonardo Passos, Ricardo Terra, Marco Tulio Valente, Renato Diniz, and Nabor das Chagas Mendonca. Static architecture-conformance checking: An illustrative overview. IEEE Software, 27(5):82–89, 2010.
Aurora Ramírez, José Raúl Romero, and Sebastián Ventura. An approach for the evolutionary discovery of software architectures. Information Sciences, 305:234–255, 2015.
Stephane Ducasse and Damien Pollet. Software architecture reconstruction: A process-oriented taxonomy. IEEE Transactions on Software Engineering, 35(4):573–591, 2009.
Daniel Escobar, Diana Cárdenas, Rolando Amarillo, Eddie Castro, Kelly Garcés, Carlos Parra, and Rubby Casallas. Towards the understanding and evolution of monolithic applications as microservices. In XLII Latin American on Computing Conference (CLEI), pages 1–11, 2016.
Martin Fowler. Refactoring: improving the design of existing code. Addison-Wesley, Boston, 1999.
Martin Fowler and James Lewis. Microservices a definition of this new architectural term, March 2014. Acesso em: 23 março 2020. Disponível em: https://martinfowler.com/articles/microservices.html.
Paolo Di Francesco, Ivano Malavolta, and Patricia Lago. Research on architecting microservices: trends, focus, and potential for industrial adoption. In 1st International Conference on Software Architecture (ICSA), pages 21–30, 2017.
David Garlan, Felix Bachmann, James Ivers, Judith Stafford, Len Bass, Paul Clements, and Paulo Merson. Documenting Software Architectures: Views and Beyond. Addison-Wesley Professional, 2010.
Miika Kalske, Niko Mäkitalo, and Tommi Mikkonen. Challenges when moving from monolith to microservice architecture. In 18th International Conference on Web Engineering (ICWE), pages 32–47, 2018.
Alessandra Levcovitz, Ricardo Terra, and Marco Tulio Valente. Towards a technique for extracting microservices from monolithic enterprise systems. In III Workshop de Visualização, Evolução e Manutenção de Software (VEM), pages 97–104, 2015.
Leonardo Passos, Ricardo Terra, Marco Tulio Valente, Renato Diniz, and Nabor das Chagas Mendonca. Static architecture-conformance checking: An illustrative overview. IEEE Software, 27(5):82–89, 2010.
Aurora Ramírez, José Raúl Romero, and Sebastián Ventura. An approach for the evolutionary discovery of software architectures. Information Sciences, 305:234–255, 2015.
Publicado
19/10/2020
Como Citar
BRASIL, Felipe Chateaubriand; TERRA, Ricardo.
Proposta de uma abordagem para decompor sistemas monolíticos em microsserviços. In: WORKSHOP DE VISUALIZAÇÃO, EVOLUÇÃO E MANUTENÇÃO DE SOFTWARE (VEM), 8. , 2020, Evento Online.
Anais [...].
Porto Alegre: Sociedade Brasileira de Computação,
2020
.
p. 17-24.
DOI: https://doi.org/10.5753/vem.2020.14524.