Developing Self-Adaptive Microservice Systems: Challenges and Directions

A self-adaptive system can dynamically monitor and adapt its behavior to preserve and enhance its quality attributes under uncertain operating conditions. This article identifies key challenges for the development of microservice applications as self-adaptive systems, using a cloud-based intelligent video-surveillance application as a motivating example. It also suggests potential new directions for addressing most of the identified challenges by leveraging existing microservice practices and technologies.

[1]  Jeffrey O. Kephart,et al.  The Vision of Autonomic Computing , 2003, Computer.

[2]  Liming Zhu,et al.  DevOps - A Software Architect's Perspective , 2015, SEI series in software engineering.

[3]  Hani Jamjoom,et al.  App-Bisect: Autonomous Healing for Microservice-Based Apps , 2015, HotCloud.

[4]  Niall Murphy,et al.  Site Reliability Engineering: How Google Runs Production Systems , 2016 .

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

[6]  Ruud C. M. de Rooij,et al.  Chaos Engineering , 2017, IEEE Software.

[7]  Gojko Adzic,et al.  Serverless computing: economic and architectural impact , 2017, ESEC/SIGSOFT FSE.

[8]  Ivan Lanese,et al.  Microservices: A Language-Based Approach , 2017, Present and Ulterior Software Engineering.

[9]  Thomas Vogel,et al.  Control Strategies for Self-Adaptive Software Systems , 2017, ACM Trans. Auton. Adapt. Syst..

[10]  Claus Pahl,et al.  Performance Engineering for Microservices: Research Challenges and Directions , 2017, ICPE Companion.

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

[12]  Rogério de Lemos,et al.  Robustness-Driven Resilience Evaluation of Self-Adaptive Software Systems , 2017, IEEE Transactions on Dependable and Secure Computing.

[13]  Bradley R. Schmerl,et al.  Generality vs. reusability in architecture-based self-adaptation: the case for self-adaptive microservices , 2018, ECSA.

[14]  Claus Pahl,et al.  Microservices: The Journey So Far and Challenges Ahead , 2018, IEEE Softw..

[15]  Jun Sun,et al.  Latent error prediction and fault localization for microservice applications by learning from system trace logs , 2019, ESEC/SIGSOFT FSE.

[16]  AWS Lambda , 2019, Machine Learning in the AWS Cloud.

[17]  Ivan Beschastnikh,et al.  Improving microservice-based applications with runtime placement adaptation , 2019, Journal of Internet Services and Applications.

[18]  Sam Newman,et al.  Monolith to Microservices: Evolutionary Patterns to Transform Your Monolith , 2019 .

[19]  Sufyan bin Uzayr GitHub , 2022, Mastering Git.

[20]  Sean Whitesell,et al.  Testing Microservices , 2022, Pro Microservices in .NET 6.