Abstract
A microservice-based system is composed of a set of microservices that are developed and deployed independently for agile DevOps. Intensive and iterative adaptations/upgrades of microservices are essential for such systems to adapt to user requirement changes, and as a consequence, result in the phenomenon of “multi-version microservice coexistence” in a system. Besides traditional API-based functional dependencies between different microservices, there appear complicated dependencies between different versions of difference microservices. The complicated dependencies dramatically deteriorate the maintainability of microservice systems, especially when systems evolve to adapt to user requirement changes. To meet this challenge, a version dependency model is proposed for describing the complex dependencies between different versions of microservices, and a greedy-based optimization algorithm is developed for generating an optimal evolution plan. A programming framework (MF4MS) and cloud-edge based infrastructure (MI4MS) are implemented to facilitate microservice systems to automatically execute the evolution plan. Experiments show that the proposed approach performs well to cope with self-adaptation in the situation where complicated version dependencies exist.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
Aderaldo, C.M., Mendonça, N.C., Schmerl, B., Garlan, D.: Kubow: an architecture-based self-adaptation service for cloud native applications. In: Proceedings of the 13th European Conference on Software Architecture - Volume 2, ECSA 2019, pp. 42–45. Association for Computing Machinery (2019)
Akbulut, A., Perros, H.G.: Software versioning with microservices through the api gateway design pattern. In: 2019 9th International Conference on Advanced Computer Information Technologies (ACIT), pp. 289–292 (2019)
Gabbrielli, M., Giallorenzo, S., Guidi, C., Mauro, J., Montesi, F.: Self-reconfiguring microservices. In: Ábrahám, E., Bonsangue, M., Johnsen, E.B. (eds.) Theory and Practice of Formal Methods. LNCS, vol. 9660, pp. 194–210. Springer, Cham (2016). https://doi.org/10.1007/978-3-319-30734-3_14
Gaur, A., Scotney, B., Parr, G., McClean, S.: Smart city architecture and its applications based on iot. Procedia Comput. Sci. 52, 1089–1094 (2015)
Guerrero, C., Lera, I., Juiz, C.: Evaluation and efficiency comparison of evolutionary algorithms for service placement optimization in fog architectures. Future Gener. Comput. Syst. 97, 131–144 (2019)
Guerrero, C., Lera, I., Juiz, C.: A lightweight decentralized service placement policy for performance optimization in fog computing. J. Ambient Intell. Humaniz. Comput. 10, 2435–2452 (2019). https://doi.org/10.1007/s12652-018-0914-0
Kang, H., Le, M., Tao, S.: Container and microservice driven design for cloud infrastructure devops. In: 2016 IEEE International Conference on Cloud Engineering (IC2E), pp. 202–211. IEEE (2016)
Kephart, J.O., Chess, D.M.: The vision of autonomic computing. Computer 36(1), 41–50 (2003)
Kiss, T., et al.: MiCADO-microservice-based cloud application-level dynamic orchestrator. Future Gener. Comput. Syst. 94, 937–946 (2019)
Ma, S., Fan, C., Chuang, Y., Lee, W., Lee, S., Hsueh, N.: Using service dependency graph to analyze and test microservices. In: 2018 IEEE 42nd Annual Computer Software and Applications Conference (COMPSAC), vol. 02, pp. 81–86 (2018)
Ma, S., Liu, I., Chen, C., Lin, J., Hsueh, N.: Version-based microservice analysis, monitoring, and visualization. In: 2019 26th Asia-Pacific Software Engineering Conference (APSEC), pp. 165–172 (2019)
Paques, H., Liu, L., Pu, C.: Adaptation space: a design framework for adaptive web services. Int. J. Web Serv. Res. (IJWSR) 1(3), 1–24 (2004)
Rajagopalan, S., Jamjoom, H.: App-bisect: autonomous healing for microservice-based apps. In: 7th \(\{\)USENIX\(\}\) Workshop on Hot Topics in Cloud Computing (HotCloud 2015) (2015)
Sampaio, A.R., Rubin, J., Beschastnikh, I., Rosa, N.S.: Improving microservice-based applications with runtime placement adaptation. J. Internet Serv. Appl. 10(1), 4 (2019). https://doi.org/10.1186/s13174-019-0104-0
Satyanarayanan, M.: The emergence of edge computing. Computer 50(1), 30–39 (2017)
Wang, Y.: Towards service discovery and autonomic version management in self-healing microservices architecture. In: Proceedings of the 13th European Conference on Software Architecture - Volume 2, ECSA 2019, 9p. 63–66. Association for Computing Machinery, New York (2019)
Weyns, D.: Software engineering of self-adaptive systems: An organised tour and future challenges (2017)
Acknowledgement
Research in this paper is partially supported by the National Key Research and Development Program of China (No 2018YFB1402500), the National Science Foundation of China (61772155, 61832014, 61832004, 61802089, 61472106).
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2020 Springer Nature Switzerland AG
About this paper
Cite this paper
He, X., Tu, Z., Liu, L., Xu, X., Wang, Z. (2020). Optimal Evolution Planning and Execution for Multi-version Coexisting Microservice Systems. In: Kafeza, E., Benatallah, B., Martinelli, F., Hacid, H., Bouguettaya, A., Motahari, H. (eds) Service-Oriented Computing. ICSOC 2020. Lecture Notes in Computer Science(), vol 12571. Springer, Cham. https://doi.org/10.1007/978-3-030-65310-1_1
Download citation
DOI: https://doi.org/10.1007/978-3-030-65310-1_1
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-65309-5
Online ISBN: 978-3-030-65310-1
eBook Packages: Computer ScienceComputer Science (R0)