Architectural Patterns for Microservices: A Systematic Mapping Study

Microservices is an architectural style increasing in popularity. However, there is still a lack of understanding how to adopt a microservice-based architectural style. We aim at characterizing different microservice architectural style patterns and the principles that guide their definition. We conducted a systematic mapping study in order to identify reported usage of microservices and based on these use cases extract common patterns and principles. We present two key contributions. Firstly, we identified several agreed microservice architecture patterns that seem widely adopted and reported in the case studies identified. Secondly, we presented these as a catalogue in a common template format including a summary of the advantages, disadvantages, and lessons learned for each pattern from the case studies. We can conclude that different architecture patterns emerge for different migration, orchestration, storage and deployment settings for a set of agreed principles.

[1]  Piyush Harsh,et al.  CYCLOPS: A micro service based approach for dynamic rating, charging & billing for cloud , 2015, 2015 13th International Conference on Telecommunications (ConTEL).

[2]  Agis Papantoniou,et al.  An Ecosystem of User-facing Microservices Supported by Semantic Models , 2015, USEWOD-PROFILES@ESWC.

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

[4]  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).

[5]  Horst Lichter,et al.  Experience on a Microservice-Based Reference Architecture for Measurement Systems , 2014, 2014 21st Asia-Pacific Software Engineering Conference.

[6]  Igor Cavrak,et al.  Architecture of an interoperable IoT platform based on microservices , 2016, 2016 39th International Convention on Information and Communication Technology, Electronics and Microelectronics (MIPRO).

[7]  Rubby Casallas,et al.  Evaluating the monolithic and the microservice architecture pattern to deploy web applications in the cloud , 2015, 2015 10th Computing Colombian Conference (10CCC).

[8]  Dan Ionescu,et al.  A microservices architecture for collaborative document editing enhanced with face recognition , 2016, 2016 IEEE 11th International Symposium on Applied Computational Intelligence and Informatics (SACI).

[9]  Maurizio Gabbrielli,et al.  Self-Reconfiguring Microservices , 2016, Theory and Practice of Formal Methods.

[10]  Vyas Sekar,et al.  Gremlin: Systematic Resilience Testing of Microservices , 2016, 2016 IEEE 36th International Conference on Distributed Computing Systems (ICDCS).

[11]  Joseph McDonnell,et al.  DEVS Distributed Modeling Framework - A parallel DEVS implementation via microservices , 2016, 2016 Symposium on Theory of Modeling and Simulation (TMS-DEVS).

[12]  Claes Wohlin,et al.  Guidelines for snowballing in systematic literature studies and a replication in software engineering , 2014, EASE '14.

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

[14]  Pooyan Jamshidi,et al.  Migrating to Cloud-Native Architectures Using Microservices: An Experience Report , 2015, ESOCC Workshops.

[15]  Hong Zhu,et al.  CAOPLE: A Programming Language for Microservices SaaS , 2016, 2016 IEEE Symposium on Service-Oriented System Engineering (SOSE).

[16]  Dan Ionescu,et al.  A reference architecture for real-time microservice API consumption , 2016, CrossCloud@EuroSys.

[17]  Claus Pahl,et al.  Processes, Motivations, and Issues for Migrating to Microservices Architectures: An Empirical Investigation , 2017, IEEE Cloud Computing.

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

[19]  Dmitry Namiot,et al.  On micro-services architecture , 2014 .

[20]  Ali Anwar,et al.  Anatomy of Cloud Monitoring and Metering: A case study and open problems , 2015, APSys.

[21]  Olaf Zimmermann,et al.  Architectural Principles for Cloud Software , 2018, ACM Trans. Internet Techn..

[22]  Malgorzata Steinder,et al.  Docker Containers across Multiple Clouds and Data Centers , 2015, 2015 IEEE/ACM 8th International Conference on Utility and Cloud Computing (UCC).

[23]  Jyhjong Lin,et al.  Migrating web applications to clouds with microservice architectures , 2016, 2016 International Conference on Applied System Innovation (ICASI).

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

[25]  Malgorzata Steinder,et al.  Performance Evaluation of Microservices Architectures Using Containers , 2015, 2015 IEEE 14th International Symposium on Network Computing and Applications.

[26]  Divyanand Malavalli,et al.  Scalable microservice based architecture for enabling DMTF profiles , 2015, 2015 11th International Conference on Network and Service Management (CNSM).

[27]  Mazedur Rahman,et al.  A Reusable Automated Acceptance Testing Architecture for Microservices in Behavior-Driven Development , 2015, 2015 IEEE Symposium on Service-Oriented System Engineering.

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

[29]  Olaf Zimmermann,et al.  An architectural decision modeling framework for service-oriented architecture design , 2009 .

[30]  Karl Meinke,et al.  Learning-Based Testing of Distributed Microservice Architectures: Correctness and Fault Injection , 2015, SEFM Workshops.

[31]  Thomas Schuster,et al.  Microservice Based Tool Support for Business Process Modelling , 2015, 2015 IEEE 19th International Enterprise Distributed Object Computing Workshop.

[32]  Frank Leymann Native Cloud Applications - Why Virtual Machines, Images and Containers Miss the Point! , 2016, WEBIST.

[33]  Riccardo Rizzo,et al.  The Database-is-the-Service Pattern for Microservice Architectures , 2016, ITBAM.

[34]  Rory V. O'Connor,et al.  Exploring the Impact of Situational Context — A Case Study of a Software Development Process for a Microservices Architecture , 2016, 2016 IEEE/ACM International Conference on Software and System Processes (ICSSP).

[35]  Dmitry I. Savchenko,et al.  Microservices Validation: Methodology and Implementation , 2015 .

[36]  Antonio Brogi,et al.  Cloud Container Technologies: A State-of-the-Art Review , 2019, IEEE Transactions on Cloud Computing.

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

[38]  Pearl Brereton,et al.  Performing systematic literature reviews in software engineering , 2006, ICSE.

[39]  Roberto Di Cosmo,et al.  Automatic Deployment of Services in the Cloud with Aeolus Blender , 2015, ICSOC.

[40]  Peter Bak,et al.  Location and Context-Based Microservices for Mobile and Internet of Things Workloads , 2015, 2015 IEEE International Conference on Mobile Services.

[41]  David Jaramillo,et al.  Leveraging microservices architecture by using Docker technology , 2016, SoutheastCon 2016.

[42]  Carrie Arnold,et al.  Case Study: Microservice Evolution and Software Lifecycle of the XSEDE User Portal API , 2016, XSEDE.

[43]  Rick Kazman,et al.  Architectural Support for DevOps in a Neo-Metropolis BDaaS Platform , 2015, 2015 IEEE 34th Symposium on Reliable Distributed Systems Workshop (SRDSW).

[44]  Olaf Zimmermann,et al.  Service Cutter: A Systematic Approach to Service Decomposition , 2016, ESOCC.

[45]  Kai Petersen,et al.  Systematic Mapping Studies in Software Engineering , 2008, EASE.

[46]  Rion Dooley,et al.  Distributed Systems of Microservices Using Docker and Serfnode , 2015, 2015 7th International Workshop on Science Gateways.

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

[48]  Mohamed Cheriet,et al.  Micro Service Cloud Computing Pattern for Next Generation Networks , 2015, ArXiv.

[49]  Tom Killalea,et al.  The Hidden Dividends of Microservices , 2016, Commun. ACM.

[50]  Zehua Chen,et al.  A Service Framework for Parallel Test Execution on a Developer's Local Development Workstation , 2015, 2015 IEEE Symposium on Service-Oriented System Engineering.