Ensuring and Assessing Architecture Conformance to Microservice Decomposition Patterns

Microservice-based software architecture design has been widely discussed, and best practices have been published as architecture design patterns. However, conformance to those patterns is hard to ensure and assess automatically, leading to problems such as architectural drift and erosion, especially in the context of continued software evolution or large-scale microservice systems. In addition, not much in the component and connector architecture models is specific (only) to the microservices approach, whereas other aspects really specific to that approach, such as independent deployment of microservices, are usually modeled in other views or not at all. We suggest a set of constraints to check and metrics to assess architecture conformance to microservice patterns. In comparison to expert judgment derived from the patterns, a subset of these constraints and metrics shows a good relative performance and potential for automation.

[1]  Frank Leymann,et al.  Reusable Architectural Decision Models for Enterprise Application Development , 2007, QoSA.

[2]  Roxana Geambasu,et al.  Synapse: a microservices architecture for heterogeneous-database web applications , 2015, EuroSys.

[3]  Hernán Astudillo,et al.  A pattern language for scalable microservices-based systems , 2018, ECSA.

[4]  Guosun Zeng,et al.  Microservices Architecture Based Cloudware Deployment Platform for Service Computing , 2016, 2016 IEEE Symposium on Service-Oriented System Engineering (SOSE).

[5]  Uwe Zdun A DSL toolkit for deferring architectural decisions in DSL-based software design , 2010, Inf. Softw. Technol..

[6]  Cesare Pautasso,et al.  Why is the web loosely coupled?: a multi-faceted metric for service design , 2009, WWW '09.

[7]  Daniel T. Larose,et al.  Discovering Knowledge in Data: An Introduction to Data Mining , 2005 .

[8]  Ricardo Terra,et al.  Static Architecture-Conformance Checking: An Illustrative Overview , 2010, IEEE Software.

[9]  Rick Kazman,et al.  A Software Architecture Reconstruction Method , 1999, WICSA.

[10]  Arie van Deursen,et al.  Symphony: view-driven software architecture reconstruction , 2004, Proceedings. Fourth Working IEEE/IFIP Conference on Software Architecture (WICSA 2004).

[11]  Ricardo Terra,et al.  Towards a Technique for Extracting Microservices from Monolithic Enterprise Systems , 2016, ArXiv.

[12]  Michael Le,et al.  Container and Microservice Driven Design for Cloud Infrastructure DevOps , 2016, 2016 IEEE International Conference on Cloud Engineering (IC2E).

[13]  Cesare Pautasso,et al.  Microservices in Practice, Part 1: Reality Check and Service Design , 2017, IEEE Software.

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

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

[16]  Matthias Jarke,et al.  Community Application Editor: Collaborative Near Real-Time Modeling and Composition of Microservice-based Web Applications , 2016, Modellierung.

[17]  Bobby Woolf,et al.  Enterprise Integration Patterns , 2003 .

[18]  Sam Newman,et al.  Building microservices - designing fine-grained systems, 1st Edition , 2015 .

[19]  Olaf Zimmermann,et al.  Microservices tenets , 2017, Computer Science - Research and Development.

[20]  Alexander L. Wolf,et al.  Acm Sigsoft Software Engineering Notes Vol 17 No 4 Foundations for the Study of Software Architecture , 2022 .

[21]  Frederick C. Harris,et al.  Microservice-based architecture for the NRDC , 2015, 2015 IEEE 13th International Conference on Industrial Informatics (INDIN).

[22]  Nane Kratzke,et al.  About Microservices, Containers and their Underestimated Impact on Network Performance , 2015, IEEE CLOUD 2015.

[23]  Uwe Zdun,et al.  Semi-automated architectural abstraction specifications for supporting software evolution , 2014, Sci. Comput. Program..

[24]  Schahram Dustdar,et al.  An End-to-End Approach for QoS-Aware Service Composition , 2009, 2009 IEEE International Enterprise Distributed Object Computing Conference.