Continuous Architecting with Microservices and DevOps: A Systematic Mapping Study

Context: Several companies are migrating their information systems into the Cloud. Microservices and DevOps are two of the most common adopted technologies. However, there is still a lack of understanding how to adopt a microservice-based architectural style and which tools and technique to use in a continuous architecting pipeline. Objective: We aim at characterizing the different microservice architectural style principles and patterns in order to map existing tools and techniques adopted in the context of DevOps. Methodology: We conducted a Systematic Mapping Study identifying the goal and the research questions, the bibliographic sources, the search strings, and the selection criteria to retrieve the most relevant papers. Results: We identified several agreed microservice architectural principles and patterns widely adopted and reported in 23 case studies, together with a summary of the advantages, disadvantages, and lessons learned for each pattern from the case studies. Finally, we mapped the existing microservices-specific techniques in order to understand how to continuously deliver value in a DevOps pipeline. We depicted the current research, reporting gaps and trends. Conclusion: Different patterns emerge for different migration, orchestration, storage and deployment settings. The results also show the lack of empirical work on microservices-specific techniques, especially for the release phase in DevOps.

[1]  Davide Taibi,et al.  On the Definition of Microservice Bad Smells , 2018, IEEE Software.

[2]  Tom Killalea The hidden dividends of microservices , 2016, Commun. ACM.

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

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

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

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

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

[9]  Pearl Brereton,et al.  A systematic review of systematic review process research in software engineering , 2013, Inf. Softw. Technol..

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

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

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

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

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

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

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

[17]  Claus Pahl,et al.  Pattern‐based multi‐cloud architecture migration , 2017, Softw. Pract. Exp..

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

[19]  Giovanni Toffetti Carughi,et al.  An architecture for self-managing microservices , 2015, AIMC '15.

[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]  Liming Zhu,et al.  DevOps - A Software Architect's Perspective , 2015, SEI series in software engineering.

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

[27]  Rory O'Connor,et al.  Exploring the impact of situational context: a case study of a software development process for a microservices architecture , 2016, ICSSP.

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

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

[30]  Davide Taibi,et al.  From Monolithic Systems to Microservices: A Decomposition Framework based on Process Mining , 2019, CLOSER.

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

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

[33]  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.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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