MV4MS: A Spring Cloud based Framework for the Co-Deployment of Multi-Version Microservices

Lei Liu,Xiang He,Zhiying Tu,Zhongjie Wang
DOI: https://doi.org/10.1109/SCC49832.2020.00033
2020-01-01
Abstract:Agile development and the loose coupling of microservices, make continuous delivery/deployment of large, complex service systems become much easier. The microservices are upgraded and released independently and have their own independent version trees. For compatibility, multiple versions of one microservice are to be deployed in the same system to offer slightly different functionalities to different users simultaneously. However, loosely-coupling does not mean multiple microservices keep absolutely independent but there are more or less dependencies among them, and such dependencies occur not only on functionalities but also on the version issue, too. Existing microservice frameworks have no enough capability for multi-version co-deployment and the corresponding version-oriented dependency management. In this paper, a Spring Cloud based framework called MV4MS is introduced for this challenge. It extracts version information from source codes of microservices, builds version dependencies, packs and deploys requisite versions of microservices, and routes user requests to desired versions at run-time. Architecture of MV4MS and detailed design of its components are elaborately introduced. Experiments are conducted in AWS cloud environment, and results show that our framework could reduce the complexity of multi-version microservice co-deployment and ensure the correctness of routing between multi-version microservice.
What problem does this paper attempt to address?