Towards an approach to decompose monolithic systems in microservices
Abstract
The microservice architecture has been widely adopted in the development of software systems. While the development of new systems occurs naturally, adopting this new architectural style in legacy systems---whose task of migration can be costly, time-consuming, and financially expensive---is a challenging problem. Given this scenario, this article proposes a semi-automatic approach to assist software architects in the task of decomposing monolithic systems in microservices. A preliminary assessment brought promising results since, with few iterations, it obtained a concise set of microservices with greater cohesion (6.98%) and less coupling (5.9%).
Keywords:
Architecture, Microservices, Monolithic, Microservices decomposition
References
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.
Published
2020-10-19
How to Cite
BRASIL, Felipe Chateaubriand; TERRA, Ricardo.
Towards an approach to decompose monolithic systems in microservices. In: WORKSHOP ON SOFTWARE VISUALIZATION, EVOLUTION AND MAINTENANCE (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.
