Pattern-based Modelling, Integration, and Deployment of Microservice Architectures

Microservice-based architectures (MSAs) gained momentum in industrial and research communities since finer-grained and more independent components foster reuse and reduce time to market. However, to come from the design of MSAs to running applications, substantial knowledge and technology-specific expertise in the deployment and integration of microservices is needed. In this paper, we propose a model-driven and pattern-based approach for composing microservices, which facilitates the transition from architectural models to running deployments. Using a unified modelling for MSAs, including both their integration based on Enterprise Integration Patterns (EIPs) and deployment aspects, our approach enables automatically generating the artefacts for deploying microservice compositions. This helps abstracting away the underlying infrastructure including container orchestration platforms and middleware layer for service integration. To validate the feasibility of our approach, we illustrate its prototypical implementation, with Kubernetes used as container orchestration system and OpenFaaS used for managing integration logic, and we present a case study.

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

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

[3]  Tomás Cerný,et al.  Aspect-oriented challenges in system integration with microservices, SOA and IoT , 2019, Enterp. Inf. Syst..

[4]  Martin Garriga,et al.  Towards a Taxonomy of Microservices Architectures , 2017, SEFM Workshops.

[5]  Antonio Brogi,et al.  The EDMM Modeling and Transformation System , 2019, ICSOC Workshops.

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

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

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

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

[10]  Lincoln S. Rocha,et al.  Beethoven: An Event-Driven Lightweight Platform for Microservice Orchestration , 2018, ECSA.

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

[12]  Michael J. Donahoo,et al.  Contextual understanding of microservice architecture: current and future directions , 2018, SIAP.

[13]  F. Leymann,et al.  de Leveraging Pattern Applications via Pattern Refinement , 2017 .

[14]  Silvia Mara Abrahão,et al.  Incremental Integration of Microservices in Cloud Applications , 2016, ISD.

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

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

[17]  Ivan Lanese,et al.  Microservices: A Language-Based Approach , 2017, Present and Ulterior Software Engineering.

[18]  Oliver Kopp,et al.  Cloud Data Patterns for Confidentiality , 2012, CLOSER.

[19]  Carlos Angel Iglesias,et al.  Microservices - Lightweight Service Descriptions for REST Architectural Style , 2010, ICAART.

[20]  Alfred Zimmermann,et al.  Towards Integrating Microservices with Adaptable Enterprise Architecture , 2016, 2016 IEEE 20th International Enterprise Distributed Object Computing Workshop (EDOCW).

[21]  Willem-Jan van den Heuvel,et al.  The pains and gains of microservices: A Systematic grey literature review , 2018, J. Syst. Softw..

[22]  Max Jacobson,et al.  A Pattern Language: Towns, Buildings, Construction , 1981 .

[23]  David Bernstein,et al.  Containers and Cloud: From LXC to Docker to Kubernetes , 2014, IEEE Cloud Computing.

[24]  Yérom-David Bromberg,et al.  Medley: An Event-Driven Lightweight Platform for Service Composition , 2016, ICWE.

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

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

[27]  Sam Newman,et al.  Building microservices - designing fine-grained systems, 1st Edition , 2015 .

[28]  Oliver Kopp,et al.  Declarative vs . Imperative : Two Modeling Patterns for the Automated Deployment of Applications , 2017 .

[29]  Gregor Hohpe,et al.  Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions , 2003 .

[30]  Antonio Brogi,et al.  Freshening the Air in Microservices: Resolving Architectural Smells via Refactoring , 2019, ICSOC Workshops.