The μTOSCA toolchain: Mining, analyzing, and refactoring microservice‐based architectures. (5th April 2021) - Soldani, Jacopo; Muntoni, Giuseppe; Neri, Davide; Brogi, Antonio
Summary: Exploiting microservices to architect enterprise applications is becoming commonplace. This makes it crucial to provide some support for designing and analyzing microservice‐based applications, for example, for understanding whether a microservice‐based application adheres to the main design principles of microservices and for choosing how to refactor it when this is not the case. To provide such support, in this article we present the μ TOSCA toolchain. More precisely, we first introduce the μ TOSCA model to represent the architecture of microservice‐based applications with the OASIS standard TOSCA. We then describe a technique to automatically mine the architecture of a microservice‐based application and represent it with μ TOSCA, given the Kubernetes deployment of the application. We also present a methodology to analyze the μ TOSCA representation of a microservice‐based architecture to systematically identify the architectural smells potentially affecting the corresponding application and to resolve them. Finally, we present two prototype tools, μ Miner and μ Freshener, implementing our mining solution and the support for identifying and resolving architectural smells in microservice‐based applications, respectively. We then assess —by discussing some case studies— how effectively μ Miner, μ Freshener, and the μ TOSCA toolchain can support researchers and practitioners working with microservices.