Generality vs. reusability in architecture-based self-adaptation: the case for self-adaptive microservices

Why is it so difficult to build self-adaptive systems by reusing existing self-adaptation services and frameworks? In this paper, we argue that one possible explanation is that there is a fundamental mismatch between the adaptation needs of modern software systems, and the architectural models and adaptation mechanisms supported by current self-adaptation solutions. We identify and discuss the main reasons leading to this problem by looking into a number of representative self-adaptation solutions that have been proposed in recent years, including open source frameworks and cloud-based services, from two perspectives: generality, i.e., their ability to support a variety of architectural models and adaptation mechanisms, and reusability, i.e., their ability to be reused without requiring substantial effort from software developers. We then make the case that recent industry progress toward microservices and their enabling technologies can open the way to the development of more general and reusable self-adaptation solutions.

[1]  Rogério de Lemos,et al.  Software Engineering for Self-Adaptive Systems [outcome of a Dagstuhl Seminar] , 2009, Software Engineering for Self-Adaptive Systems.

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

[3]  Danny Weyns,et al.  Engineering Self-Adaptive Software Systems – An Organized Tour , 2018, 2018 IEEE 3rd International Workshops on Foundations and Applications of Self* Systems (FAS*W).

[4]  Danny Weyns,et al.  ActivFORMS: A Runtime Environment for Architecture-Based Adaptation with Guarantees , 2017, 2017 IEEE International Conference on Software Architecture Workshops (ICSAW).

[5]  Bradley R. Schmerl,et al.  Incorporating architecture-based self-adaptation into an adaptive industrial software system , 2016, J. Syst. Softw..

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

[7]  Wouter Joosen,et al.  K8-Scalar: A Workbench to Compare Autoscalers for Container-Orchestrated Database Clusters , 2018, 2018 IEEE/ACM 13th International Symposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS).

[8]  Jez Humble,et al.  Continuous Delivery: Reliable Software Releases Through Build, Test, and Deployment Automation , 2010 .

[9]  Danny Weyns,et al.  A systematic literature review on methods that handle multiple quality attributes in architecture-based self-adaptive systems , 2017, Inf. Softw. Technol..

[10]  Bradley R. Schmerl,et al.  Architecture-based self-protection: composing and reasoning about denial-of-service mitigations , 2014, HotSoS '14.

[11]  Mary Shaw,et al.  Software architecture - perspectives on an emerging discipline , 1996 .

[12]  Sam Malek,et al.  A Systematic Survey of Self-Protecting Software Systems , 2014, ACM Trans. Auton. Adapt. Syst..

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

[14]  Bradley R. Schmerl,et al.  Evaluating the effectiveness of the Rainbow self-adaptive system , 2009, 2009 ICSE Workshop on Software Engineering for Adaptive and Self-Managing Systems.

[15]  Mihaly Berekmeri,et al.  Control-Theoretical Software Adaptation: A Systematic Literature Review , 2017, IEEE Transactions on Software Engineering.

[16]  Danny Weyns,et al.  Claims and Evidence for Architecture-Based Self-adaptation: A Systematic Literature Review , 2013, ECSA.

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

[18]  William E. Riddle,et al.  Software technology maturation , 1985, ICSE '85.

[19]  Raffaela Mirandola,et al.  Uncertainties in the modeling of self-adaptive systems: a taxonomy and an example of availability evaluation , 2014, ICPE.

[20]  Bradley R. Schmerl,et al.  Architecture-based self-protecting software systems , 2013, QoSA '13.

[21]  Bradley R. Schmerl,et al.  Rainbow: architecture-based self-adaptation with reusable infrastructure , 2004, International Conference on Autonomic Computing, 2004. Proceedings..