Litcius/Paper detail

A Multi-Criteria Strategy for Redesigning Legacy Features as Microservices: An Industrial Case Study

Wesley K. G. Assunção, Thelma Elita Colanzi, Luiz Carlos de Sá Carvalho, Juliana Alves Pereira, Alessandro Garcia, Maria Júlia de Lima, Carlos Lucena

202135 citationsDOI

Abstract

Microservices are small and autonomous services that communicate through lightweight protocols. Companies have often been adopting microservices to incrementally redesign legacy systems as part of a modernization process. Microservices promote better reuse and customization of existing features while increasing business capabilities, if appropriate design decisions are made. There are some partially-automated approaches supporting the re-design of legacy features into microservices. However, they fail in covering two key aspects: (i) provide an architectural design of the features being redesigned, and (ii) simultaneously support relevant criteria, e.g., feature modularization and decrease of network communication overhead. Also, these two aspects tend to be poorly discussed along industrial case studies. To fulfill these gaps, we propose a redesign strategy to support the re-engineering of features legacy code as microservices. This strategy covers key possibly-conflicting criteria on microservice-based architectures. We employ search-based optimization to deal with such conflicting criteria. The output of the strategy is a set of redesign candidates of legacy features as microservices. We reflect upon the benefits and drawbacks of the proposed strategy through an industrial case study. In particular, we perform an in-depth analysis of the resulting microservice candidates, and a discussion about their potential for customization and reuse. The reflections/discussions are also supported by observations of developers involved in the process.

Topics & Concepts

MicroservicesComputer scienceReuseSoftware engineeringLegacy systemCodebasePersonalizationKey (lock)Process (computing)Architectural styleArchitectureWorld Wide WebSource codeSoftwareProgramming languageEngineeringOperating systemCloud computingVisual artsArtWaste managementSoftware System Performance and ReliabilityAdvanced Software Engineering MethodologiesCloud Computing and Resource Management