Gianluca Filippone, Marco Autili, F. Rossi, Massimo Tivoli
{"title":"Migration of Monoliths through the Synthesis of Microservices using Combinatorial Optimization","authors":"Gianluca Filippone, Marco Autili, F. Rossi, Massimo Tivoli","doi":"10.1109/ISSREW53611.2021.00056","DOIUrl":null,"url":null,"abstract":"Microservices are an emerging architectural style that is gaining a growing interest from companies and research. They are small, distributed, autonomous and loosely coupled services that are deployed independently and work together by communicating through lightweight protocols. Microservices are easy to update, scale, deploy, and reduce the time-to-market thanks to continuous delivery and DevOps. Several existing systems, in contrast, are difficult to maintain, evolve, and scale. For these reasons, microservices are the ideal candidates for the refactoring and modernization of long-lived monolithic systems. However, the migration process is a complex, time-consuming and error-prone task that needs the support of appropriate tools to assist software designers and programmers from the extraction of a proper architecture to the implementation of the novel microservices. This paper proposes a possible solution for the automated decomposition of a monolithic system into microservices, which exploits combinatorial optimization techniques to manage the decomposition. Our proposal covers the whole decomposition process, from the microservice architecture definition to the generation of the code of the microservices and their APIs, in order to assist developers and ensure by construction the correct behavior of the refactored system.","PeriodicalId":385392,"journal":{"name":"2021 IEEE International Symposium on Software Reliability Engineering Workshops (ISSREW)","volume":"1 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2021-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"4","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"2021 IEEE International Symposium on Software Reliability Engineering Workshops (ISSREW)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/ISSREW53611.2021.00056","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 4
Abstract
Microservices are an emerging architectural style that is gaining a growing interest from companies and research. They are small, distributed, autonomous and loosely coupled services that are deployed independently and work together by communicating through lightweight protocols. Microservices are easy to update, scale, deploy, and reduce the time-to-market thanks to continuous delivery and DevOps. Several existing systems, in contrast, are difficult to maintain, evolve, and scale. For these reasons, microservices are the ideal candidates for the refactoring and modernization of long-lived monolithic systems. However, the migration process is a complex, time-consuming and error-prone task that needs the support of appropriate tools to assist software designers and programmers from the extraction of a proper architecture to the implementation of the novel microservices. This paper proposes a possible solution for the automated decomposition of a monolithic system into microservices, which exploits combinatorial optimization techniques to manage the decomposition. Our proposal covers the whole decomposition process, from the microservice architecture definition to the generation of the code of the microservices and their APIs, in order to assist developers and ensure by construction the correct behavior of the refactored system.