A Multi-Level Self-Adaptation Approach For Microservice Systems

Microservice technology that emphasizes self-management and lightweight of software systems has received great interests in both academic and industry fields of software engineering. The highly self-contained components and the dynamic running instance of microservice architecture require more flexible and diverse self-adaptation at multiple levels, which poses challenges to existing self-adaptation technologies. This paper proposes a multi-level self-adaptation approach to enrich the self-adaptation capabilities of microservice architecture and technologies. In our approach, the self-adaptation of microservice system can occur at both microservice level and instance level to satisfy various self-adaptation requirements. Based on the abstract model of self-adaptive microservice systems, the operation primitives to accomplish self-adaptation at different levels are proposed. We also present a microservice self-adaptation description language MSDL to specify the self-adaptation logics at multiple levels and implement a supporting platform by extending Kubernetes. A case is developed to illustrate our approach and experiments are conducted to show its effectiveness and availability.

[1]  Pooyan Jamshidi,et al.  Microservices Architecture Enables DevOps: Migration to a Cloud-Native Architecture , 2016, IEEE Software.

[2]  Nour Ali,et al.  A Systematic Mapping Study in Microservice Architecture , 2016, 2016 IEEE 9th International Conference on Service-Oriented Computing and Applications (SOCA).

[3]  Claus Pahl,et al.  Microservices: A Systematic Mapping Study , 2016, CLOSER.

[4]  Kai-Yuan Cai,et al.  Adaptive Resource Allocation of Multiple Servers for Service-Based Systems in Cloud Computing , 2017, 2017 IEEE 41st Annual Computer Software and Applications Conference (COMPSAC).

[5]  Danny Weyns,et al.  Software Engineering of Self-Adaptive Systems: An Organised Tour and Future Challenges , 2017 .

[6]  Luca Florio Decentralized self-adaptation in large-scale distributed systems , 2015, ESEC/SIGSOFT FSE.

[7]  Patricia Lago,et al.  Research on Architecting Microservices: Trends, Focus, and Potential for Industrial Adoption , 2017, 2017 IEEE International Conference on Software Architecture (ICSA).

[8]  Nour Ali,et al.  Self-Adaptation to Mobile Resources in Service Oriented Architecture , 2015, 2015 IEEE International Conference on Mobile Services.

[9]  Rami Bahsoon,et al.  Microservices and Their Design Trade-Offs: A Self-Adaptive Roadmap , 2016, 2016 IEEE International Conference on Services Computing (SCC).

[10]  Ivan Lanese,et al.  Towards Microservices and Beyond: An incoming Paradigm Shift in Distributed Computing , 2016, ArXiv.

[11]  David Sinreich,et al.  An architectural blueprint for autonomic computing , 2006 .

[12]  Mazin S. Yousif,et al.  Microservices , 2016, IEEE Cloud Comput..

[13]  Wang Huaimin,et al.  Constructing Software with Self-Adaptability , 2013 .

[14]  David Garlan,et al.  Rainbow: architecture-based self-adaptation with reusable infrastructure , 2004 .

[15]  Alberto Sillitti,et al.  Microservices Science and Engineering , 2017, SEDA.

[16]  Antonella Longo,et al.  A Microservice-Based MOOL in Acoustics Addressing the Learning-at-Scale Scenario , 2017, 2017 IEEE 41st Annual Computer Software and Applications Conference (COMPSAC).

[17]  Fabrizio Montesi,et al.  Microservices: Yesterday, Today, and Tomorrow , 2017, Present and Ulterior Software Engineering.