An Approach to Extract the Architecture of Microservice-Based Software Systems

Microservices decouple network-accessible system components to support independent development, deployment, and scalability. The architecture of microservice-based software systems is typically not de?ned upfront but emerges by dynamically assembling services to systems. This makes it hard to extract component relations from static sources since component relationships may only become evident at runtime. Existing systems focus either on the static structure of service relations, neglecting runtime properties, or on (short-term) monitoring of runtime properties to detect errors. We present an approach to extract and analyze the architecture of a microservice-based software system based on a combination of static service information with infrastructure-related and aggregated runtime information.

[1]  Rainer Weinreich,et al.  A Dashboard for Microservice Monitoring and Management , 2017, 2017 IEEE International Conference on Software Architecture Workshops (ICSAW).

[2]  Andy Singleton,et al.  The Economics of Microservices , 2016, IEEE Cloud Computing.

[3]  Charlene O'Hanlon,et al.  A Conversation with Werner Vogels , 2006, ACM Queue.

[4]  Ludovico Iovino,et al.  Towards Recovering the Software Architecture of Microservice-Based Systems , 2017, 2017 IEEE International Conference on Software Architecture Workshops (ICSAW).

[5]  Ludovico Iovino,et al.  MicroART: A Software Architecture Recovery Tool for Maintaining Microservice-Based Systems , 2017, 2017 IEEE International Conference on Software Architecture Workshops (ICSAW).

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

[7]  Donald Beaver,et al.  Dapper, a Large-Scale Distributed Systems Tracing Infrastructure , 2010 .

[8]  Cesare Pautasso,et al.  RESTful web services: principles, patterns, emerging technologies , 2010, WWW '10.

[9]  Eoin Woods Software Architecture in a Changing World , 2016, IEEE Software.

[10]  M. E. Conway HOW DO COMMITTEES INVENT , 1967 .

[11]  Rainer Weinreich,et al.  Extracting and Facilitating Architecture in Service-Oriented Software Systems , 2012, 2012 Joint Working IEEE/IFIP Conference on Software Architecture and European Conference on Software Architecture.

[12]  Anja Walter Software Architecture Documentation For Developers A Survey , 2016 .

[13]  Evans,et al.  Domain-driven design , 2003 .

[14]  Rainer Weinreich,et al.  Making the Case for Centralized Software Architecture Management , 2016, SWQD.

[15]  Nenad Medvidovic,et al.  A comparative analysis of software architecture recovery techniques , 2013, 2013 28th IEEE/ACM International Conference on Automated Software Engineering (ASE).

[16]  Rainer Weinreich,et al.  Microservices in a Small Development Organization - An Industrial Experience Report , 2017, ECSA.

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

[18]  Catherine Stringfellow,et al.  Comparison of software architecture reverse engineering methods , 2006, Inf. Softw. Technol..

[19]  Rainer Weinreich,et al.  Towards supporting the software architecture life cycle , 2012, J. Syst. Softw..

[20]  Rainer Weinreich,et al.  Service Development and Architecture Management for an Enterprise SOA , 2014, ECSA.

[21]  Rodrigo Fonseca,et al.  Pivot tracing , 2018, USENIX ATC.

[22]  Cesare Pautasso,et al.  RESTful Web Services: Principles, Patterns and Emerging Technologies , 2013 .