Gianluca Filippone, Marco Autili, F. Rossi, Massimo Tivoli
{"title":"通过组合优化的微服务综合实现单体迁移","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":"{\"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}","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}
Migration of Monoliths through the Synthesis of Microservices using Combinatorial Optimization
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.