An Empirical Study of Scalability Frameworks in Open Source Microservices-based Systems

Microservice-based systems (MBS) are distributed systems consistent of smaller components (possibly developed by separate teams using different technologies) that use lightweight mechanisms to communicate with each other. One of the main quality attributes that motivate MBS is scalability, and there are several available frameworks to face scalability challenges in MBS. However, there is still little empirical data about the architectural concerns of using these frameworks to support the scalability dimensions. This article builds upon a previous study that defined a pattern language for MBS scalability, and aims to identify and analyze which MBS frameworks are actually used in open source MBS projects to address the scalability dimensions. Results show that (1) nine common frameworks satisfy the scalability dimensions defined in the pattern language, (2) frameworks produce trade-offs among scalability dimensions, and (3) few frameworks address several scalability dimensions at once. Finally, we identify five reusable design decisions to address scalability requirements and propose them as microservices architectural tactics.

[1]  Paul Clements,et al.  Software architecture in practice , 1999, SEI series in software engineering.

[2]  Claus Pahl,et al.  Benchmark Requirements for Microservices Architecture Research , 2017, 2017 IEEE/ACM 1st International Workshop on Establishing the Community-Wide Infrastructure for Architecture-Based Software Engineering (ECASE).

[3]  Ralph E. Johnson,et al.  Frameworks = (components + patterns) , 1997, CACM.

[4]  Paris Avgeriou,et al.  An exploratory case study on reusing architecture decisions in software-intensive system projects , 2018, J. Syst. Softw..

[5]  Felipe Osses,et al.  Review of Architectural Patterns and Tactics for Microservices in Academic and Industrial Literature , 2018, IEEE Latin America Transactions.

[6]  Paolo Di Francesco Architecting Microservices , 2017, 2017 IEEE International Conference on Software Architecture Workshops (ICSAW).

[7]  Hernán Astudillo,et al.  Poster: Exploration of Academic and Industrial Evidence about Architectural Tactics and Patterns in Microservices , 2018, 2018 IEEE/ACM 40th International Conference on Software Engineering: Companion (ICSE-Companion).

[8]  Fabrizio Montesi,et al.  Circuit Breakers, Discovery, and API Gateways in Microservices , 2016, ArXiv.

[9]  Neil B. Harrison,et al.  How do architecture patterns and tactics interact? A model and annotation , 2010, J. Syst. Softw..

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

[11]  Martin Fowler,et al.  Patterns of Enterprise Application Architecture , 2002 .

[12]  John B. Goodenough,et al.  On System Scalability , 2006 .

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

[14]  Claus Pahl,et al.  Architectural Patterns for Microservices: A Systematic Mapping Study , 2018, CLOSER.

[15]  Ted G. Lewis Object oriented application frameworks , 1995 .

[16]  V. Basili Software modeling and measurement: the Goal/Question/Metric paradigm , 1992 .

[17]  Muhammad Ali Babar,et al.  Architectural Tactics for Big Data Cybersecurity Analytic Systems: A Review , 2018, ArXiv.

[18]  Grace A. Lewis,et al.  Architectural tactics for cyber-foraging: Results of a systematic literature review , 2015, J. Syst. Softw..

[19]  Xin Huang,et al.  A Map of Threats to Validity of Systematic Literature Reviews in Software Engineering , 2016, 2016 23rd Asia-Pacific Software Engineering Conference (APSEC).

[20]  Prashant Jain,et al.  Pattern Oriented Software Architecture: Patterns for Resource Management , 2007, 2007 Working IEEE/IFIP Conference on Software Architecture (WICSA'07).

[21]  Hernán Astudillo,et al.  Actual Use of Architectural Patterns in Microservices-Based Open Source Projects , 2018, 2018 25th Asia-Pacific Software Engineering Conference (APSEC).