Contextual understanding of microservice architecture: current and future directions

Current industry trends in enterprise architectures indicate movement from Service-Oriented Architecture (SOA) to Microservices. By understanding the key differences between these two approaches and their features, we can design a more effective Microservice architecture by avoiding SOA pitfalls. To do this, we must know why this shift is happening and how key SOA functionality is addressed by key features of the Microservice-based system. Unfortunately, Microservices do not address all SOA shortcomings. In addition, Microservices introduce new challenges. This work provides a detailed analysis of the differences between these two architectures and their features. Next, we describe both research and industry perspectives on the strengths and weaknesses of both architectural directions. Finally, we perform a systematic mapping study related to Microservice research, identifying interest and challenges in multiple categories from a range of recent research.

[1]  Andreas Polze,et al.  Highly-Available Applications on Unreliable Infrastructure: Microservice Architectures in Practice , 2017, 2017 IEEE International Conference on Software Quality, Reliability and Security Companion (QRS-C).

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

[3]  Holger Knoche,et al.  Sustaining Runtime Performance while Incrementally Modernizing Transactional Monolithic Software towards Microservices , 2016, ICPE.

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

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

[6]  Michael J. Donahoo,et al.  On energy impact of web user interface approaches , 2016, Cluster Computing.

[7]  Maha Khemaja,et al.  Domain driven design and provision of micro-services to build emerging learning systems , 2016, TEEM.

[8]  Flora Amato,et al.  S-InTime: A social cloud analytical service oriented system , 2018, Future Gener. Comput. Syst..

[9]  Stefan Wagner,et al.  Towards a practical maintainability quality model for service-and microservice-based systems , 2017, ECSA.

[10]  Michael J. Donahoo,et al.  Disambiguation and Comparison of SOA, Microservices and Self-Contained Systems , 2017, RACS.

[11]  Aleksi Partanen,et al.  Microservices vs. Service-oriented architecture , 2018 .

[12]  Ossi Taipale,et al.  Microservices validation: Mjolnirr platform case study , 2015, 2015 38th International Convention on Information and Communication Technology, Electronics and Microelectronics (MIPRO).

[13]  Karine Zeitouni,et al.  Real-Time HazMat Environmental Information System: A micro-service based architecture , 2017, ANT/SEIT.

[14]  Yunus Emre Selçuk,et al.  Policy enforcement upon software based on microservice architecture , 2017, 2017 IEEE 15th International Conference on Software Engineering Research, Management and Applications (SERA).

[15]  Sonia Fahmy,et al.  Contain-ed: An NFV Micro-Service System for Containing e2e Latency , 2017, CCRV.

[16]  Doug Sherman,et al.  PipelineX: a feature animation pipeline on microservices , 2017 .

[17]  Xiaolei Dong,et al.  Security and Privacy for Cloud-Based IoT: Challenges , 2017, IEEE Communications Magazine.

[18]  Scott Shenker,et al.  Verification in the Age of Microservices , 2017, HotOS.

[19]  Claus Pahl,et al.  Performance Engineering for Microservices: Research Challenges and Directions , 2017, ICPE Companion.

[20]  Omar Bouattane,et al.  A new efficient distributed computing middleware based on cloud micro-services for HPC , 2016, 2016 5th International Conference on Multimedia Computing and Systems (ICMCS).

[21]  Pethuru Raj Chapter Seven - The Hadoop Ecosystem Technologies and Tools , 2018, Adv. Comput..

[22]  Deep Medhi,et al.  A Secure Microservice Framework for IoT , 2017, 2017 IEEE Symposium on Service-Oriented System Engineering (SOSE).

[23]  Antonio Puliafito,et al.  An XRI naming system for dynamic and federated clouds: a performance analysis , 2011, Journal of Internet Services and Applications.

[24]  Paola Salomoni,et al.  I want to ride my bicycle: A microservice-based use case for a MaaS architecture , 2017, 2017 IEEE Symposium on Computers and Communications (ISCC).

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

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

[27]  Christian Esposito,et al.  Security and privacy for cloud-based data management in the health network service chain: a microservice approach , 2017, IEEE Commun. Mag..

[28]  Ralf Klamma,et al.  A Microservice Approach for Near Real-Time Collaborative 3D Objects Annotation on the Web , 2015, ICWL.

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

[30]  Gábor Terstyánszky,et al.  MiCADO - Microservice-based Cloud Application-level Dynamic Orchestrator , 2017, Future Gener. Comput. Syst..

[31]  Alberto Lluch-Lafuente,et al.  Microservices: Yesterday, Today, and Tomorrow , 2016, Present and Ulterior Software Engineering.

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

[33]  Rainer Weinreich,et al.  Decision Guidance Models for Microservice Monitoring , 2017, 2017 IEEE International Conference on Software Architecture Workshops (ICSAW).

[34]  Annapaola Marconi,et al.  Automated synthesis of composite BPEL4WS Web services , 2005, IEEE International Conference on Web Services (ICWS'05).

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

[36]  Lóránt Farkas,et al.  Telecom strategies for service discovery in microservice environments , 2017, 2017 20th Conference on Innovations in Clouds, Internet and Networks (ICIN).

[37]  Kai Li,et al.  An Orchestration Based Cloud Auto-Healing Service Framework , 2017, 2017 IEEE International Conference on Edge Computing (EDGE).

[38]  Manuel Mazzara,et al.  Microservice-Based IoT for Smart Buildings , 2016, 2017 31st International Conference on Advanced Information Networking and Applications Workshops (WAINA).

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

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

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

[42]  Klara Nahrstedt,et al.  MONAD: Self-Adaptive Micro-Service Infrastructure for Heterogeneous Scientific Workflows , 2017, 2017 IEEE International Conference on Autonomic Computing (ICAC).

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

[44]  Michael J. Donahoo,et al.  On separation of platform-independent particles in user interfaces , 2015, Cluster Computing.

[45]  Yuqiong Sun,et al.  Security-as-a-Service for Microservices-Based Cloud Applications , 2015, 2015 IEEE 7th International Conference on Cloud Computing Technology and Science (CloudCom).

[46]  Boualem Benatallah,et al.  Web Service Composition , 2015 .

[47]  Mihhail Matskin,et al.  Composition of Semantic Web services using Linear Logic theorem proving , 2006, Inf. Syst..

[48]  Genaína Nunes Rodrigues,et al.  Dohko: an autonomic system for provision, configuration, and management of inter-cloud environments based on a software product line engineering method , 2017, Cluster Computing.

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

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

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

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

[53]  Kai Petersen,et al.  Guidelines for conducting systematic mapping studies in software engineering: An update , 2015, Inf. Softw. Technol..

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

[55]  Richard O. Sinnott,et al.  A performance comparison of container-based technologies for the Cloud , 2017, Future Gener. Comput. Syst..

[56]  Xinjian Qiang,et al.  Reflections on SOA and Microservices , 2016, 2016 4th International Conference on Enterprise Systems (ES).

[57]  Vaughn Vernon,et al.  Implementing Domain-Driven Design , 2013 .

[58]  Rami Bahsoon,et al.  Microservices and Their Design Trade-Offs: A Self-Adaptive Roadmap , 2016, 2016 IEEE International Conference on Services Computing (SCC).

[59]  Sabine Sachweh,et al.  MAGMA: build management-based generation of microservice infrastructures , 2017, ECSA.

[60]  Claus Pahl,et al.  Microservices in agile software development: a workshop-based study into issues, advantages, and disadvantages , 2017, XP Workshops.

[61]  Marco Jahn,et al.  Designing a Smart City Internet of Things Platform with Microservice Architecture , 2015, 2015 3rd International Conference on Future Internet of Things and Cloud.

[62]  Hyunsik Yang,et al.  ICN-based service discovery mechanism for microservice architecture , 2017, 2017 Ninth International Conference on Ubiquitous and Future Networks (ICUFN).

[63]  Augusto Ciuffoletti,et al.  Automated Deployment of a Microservice-based Monitoring Infrastructure , 2015, Cloud Forward.

[64]  Rainer Weinreich,et al.  Decision guidance models for microservices: service discovery and fault tolerance , 2017, ECBS.

[65]  Frank Siqueira,et al.  An architecture to automate performance tests on microservices , 2016, iiWAS.

[66]  Rubby Casallas,et al.  Cost comparison of running web applications in the cloud using monolithic, microservice, and AWS Lambda architectures , 2017, Service Oriented Computing and Applications.

[67]  Slinger Jansen,et al.  Workload-Based Clustering of Coherent Feature Sets in Microservice Architectures , 2017, 2017 IEEE International Conference on Software Architecture (ICSA).

[68]  Rami Bahsoon,et al.  Microservice Ambients: An Architectural Meta-Modelling Approach for Microservice Granularity , 2017, 2017 IEEE International Conference on Software Architecture (ICSA).

[69]  Mohsen Ahmadvand,et al.  Requirements Reconciliation for Scalable and Secure Microservice (De)composition , 2016, 2016 IEEE 24th International Requirements Engineering Conference Workshops (REW).

[70]  Xiao Liu,et al.  BigVM: A Multi-Layer-Microservice-Based Platform for Deploying SaaS , 2017, 2017 Fifth International Conference on Advanced Cloud and Big Data (CBD).

[71]  Luigi Lo Iacono,et al.  Guidelines for adopting frontend architectures and patterns in microservices-based systems , 2017, ESEC/SIGSOFT FSE.

[72]  Yale Yu,et al.  A microservice based reference architecture model in the context of enterprise architecture , 2016, 2016 IEEE Advanced Information Management, Communicates, Electronic and Automation Control Conference (IMCEC).

[73]  François Andry,et al.  Migrating Healthcare Applications to the Cloud through Containerization and Service Brokering , 2015, HEALTHINF.

[74]  Walid-Khaled Hidouci,et al.  Towards a more reliable and robust Cloud Meta-Operating System based on heterogeneous kernels: A novel approach based on containers and microservices , 2016, BDAW '16.

[75]  Fabrizio Montesi,et al.  Microservices: Yesterday, Today, and Tomorrow , 2017, Present and Ulterior Software Engineering.

[76]  Wilhelm Hasselbring,et al.  Microservice Architectures for Scalability, Agility and Reliability in E-Commerce , 2017, 2017 IEEE International Conference on Software Architecture Workshops (ICSAW).

[77]  Rubby Casallas,et al.  Infrastructure Cost Comparison of Running Web Applications in the Cloud Using AWS Lambda and Monolithic and Microservice Architectures , 2016, 2016 16th IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing (CCGrid).

[78]  Michael J. Donahoo,et al.  Survey on Concern Separation in Service Integration , 2016, SOFSEM.

[79]  Sabina Jeschke,et al.  Exploring Research Networks with Data Science: A Data-Driven Microservice Architecture for Synergy Detection , 2016, 2016 IEEE 4th International Conference on Future Internet of Things and Cloud Workshops (FiCloudW).

[80]  H. Zeiner,et al.  SeCoS: Web of Things platform based on a microservices architecture and support of time-awareness , 2016, Elektrotech. Informationstechnik.

[81]  Mohammed Samaka,et al.  Multi-objective scheduling of micro-services for optimal service function chains , 2017, 2017 IEEE International Conference on Communications (ICC).

[82]  Hong Zhu,et al.  CIDE: An Integrated Development Environment for Microservices , 2016, 2016 IEEE International Conference on Services Computing (SCC).

[83]  Jürgen Cito,et al.  Modelling and Managing Deployment Costs of Microservice-Based Cloud Applications , 2016, 2016 IEEE/ACM 9th International Conference on Utility and Cloud Computing (UCC).

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

[85]  René Peinl,et al.  Docker Cluster Management for the Cloud - Survey Results and Own Solution , 2016, Journal of Grid Computing.

[86]  Tuomas Aura,et al.  SynAPTIC: Secure and Persistent Connectivity for Containers , 2017, 2017 17th IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing (CCGRID).

[87]  Karel Cemus,et al.  Separation of concerns for distributed cross-platform context-aware user interfaces , 2017, Cluster Computing.

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

[89]  Antonella Longo,et al.  A Microservice-Based MOOL in Acoustics Addressing the Learning-at-Scale Scenario , 2017, 2017 IEEE 41st Annual Computer Software and Applications Conference (COMPSAC).

[90]  Muhammad Alam,et al.  Software defined P2P architecture for reliable vehicular communications , 2017, Pervasive Mob. Comput..

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

[92]  Albert Zündorf,et al.  Differences between Model-Driven Development of Service-Oriented and Microservice Architecture , 2017, 2017 IEEE International Conference on Software Architecture Workshops (ICSAW).

[93]  Marco Brambilla,et al.  Model-driven development of user interfaces for IoT systems via domain-specific components and patterns , 2017, Journal of Internet Services and Applications.

[94]  Paola Salomoni,et al.  Integrating Personalized and Accessible Itineraries in MaaS Ecosystems Through Microservices , 2018, Mob. Networks Appl..

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

[96]  Roland Petrasch Model-based engineering for microservice architectures using Enterprise Integration Patterns for inter-service communication , 2017, 2017 14th International Joint Conference on Computer Science and Software Engineering (JCSSE).

[97]  Xiaorong Zhu,et al.  The optimal macro control strategies of service providers and micro service selection of users: quantification model based on synergetics , 2018, Wirel. Networks.

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

[99]  Frank Leymann,et al.  API governance support through the structural analysis of REST APIs , 2018, Computer Science - Research and Development.

[100]  Nane Kratzke,et al.  Understanding cloud-native applications after 10 years of cloud computing - A systematic mapping study , 2017, J. Syst. Softw..

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

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

[103]  Shang-Pin Ma,et al.  Migrating Monolithic Mobile Application to Microservice Architecture: An Experiment Report , 2017, 2017 IEEE International Conference on AI & Mobile Services (AIMS).

[104]  Qiao Xiang,et al.  Towards Cloudware Paradigm for Cloud Computing , 2016, 2016 IEEE 9th International Conference on Cloud Computing (CLOUD).

[105]  Nick Cramer,et al.  Automatic Keyword Extraction from Individual Documents , 2010 .

[106]  André van Hoorn,et al.  Model-driven Generation of Microservice Architectures for Benchmarking Performance and Resilience Engineering Approaches , 2017, ICPE Companion.

[107]  Sonia Fahmy,et al.  An empirical case for container-driven fine-grained VNF resource flexing , 2016, 2016 IEEE Conference on Network Function Virtualization and Software Defined Networks (NFV-SDN).

[108]  Nicolai M. Josuttis,et al.  SOA in Practice , 2007 .

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

[110]  Felix Strohmeier,et al.  NIMBLE collaborative platform: Microservice architectural approach to federated IoT , 2017, 2017 Global Internet of Things Summit (GIoTS).

[111]  Silvia Menato,et al.  A Microservice-based Middleware for the Digital Factory , 2017 .

[112]  Vinícius Costa Villas Bôas Segura,et al.  Using Microservices and Software Product Line Engineering to Support Reuse of Evolving Multi-tenant SaaS , 2017, SPLC.

[113]  Emanuele Danovaro,et al.  From Lesson Learned to the Refactoring of the DRIHM Science Gateway for Hydro-meteorological Research , 2016, Journal of Grid Computing.

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

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

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

[117]  Liming Zhu,et al.  DevOps - A Software Architect's Perspective , 2015, SEI series in software engineering.