Optimal and Automated Deployment for Microservices

Microservices are highly modular and scalable Service Oriented Architectures. They underpin automated deployment practices like Continuous Deployment and Autoscaling. In this paper we formalize these practices and show that automated deployment-proven undecid-able in the general case-is algorithmically treatable for microservices. Our key assumption is that the configuration life-cycle of a microservice is split into two phases: (i) creation, which entails establishing initial connections with already available microservices, and (ii) subsequent bind-ing/unbinding with other microservices. To illustrate the applicability of our approach, we implement an automatic optimal deployment tool and compute deployment plans for a realistic microservice architecture, modeled in the Abstract Behavioral Specification (ABS) language.

[1]  Francisco Durán,et al.  Robust and reliable reconfiguration of cloud applications , 2016, J. Syst. Softw..

[2]  Stephen Gilmore,et al.  Replicating Web Services for Scalability , 2007, TGC.

[3]  Dirk Merkel,et al.  Docker: lightweight Linux containers for consistent development and deployment , 2014 .

[4]  Gerti Kappel,et al.  A Systematic Review of Cloud Modeling Languages , 2018, ACM Comput. Surv..

[5]  Roberto Di Cosmo,et al.  Automatic Application Deployment in the Cloud: from Practice to Theory and Back (Invited Paper) , 2015, CONCUR.

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

[7]  Fabienne Boyer,et al.  Robust reconfigurations of component assemblies , 2013, 2013 35th International Conference on Software Engineering (ICSE).

[8]  Antonio Brogi,et al.  Modelling and Analysing Cloud Application Management , 2015, ESOCC.

[9]  Jez Humble,et al.  Continuous Delivery: Reliable Software Releases Through Build, Test, and Deployment Automation , 2010 .

[10]  Hélène Coullon,et al.  Madeus: A Formal Deployment Model , 2018, 2018 International Conference on High Performance Computing & Simulation (HPCS).

[11]  Gianluigi Zavattaro,et al.  On the Complexity of Reconfiguration in Systems with Legacy Components , 2015, MFCS.

[12]  Roberto Di Cosmo,et al.  Aeolus: A component model for the cloud , 2014, Inf. Comput..

[13]  Brendan Burns,et al.  Kubernetes: Up and Running: Dive into the Future of Infrastructure , 2017 .

[14]  Gianluigi Zavattaro,et al.  Declarative Elasticity in ABS , 2016, ESOCC.

[15]  Luke Kanies Puppet: Next-Generation Configuration Management , 2006, login Usenix Mag..

[16]  Andrew D. Gordon,et al.  A Declarative Approach to Automated Configuration , 2012, LISA.

[17]  Einar Broch Johnsen,et al.  Zephyrus2: On the Fly Deployment Optimization Using SMT and CP Technologies , 2016, SETTA.

[18]  Joseph M. Hellerstein,et al.  Serverless Computing: One Step Forward, Two Steps Back , 2018, CIDR.

[19]  Ingo Feinerer,et al.  Efficient large-scale configuration via integer linear programming , 2013, Artificial Intelligence for Engineering Design, Analysis and Manufacturing.

[20]  Rupak Majumdar,et al.  Engage: a deployment management system , 2012, PLDI '12.

[21]  Reiner Hähnle,et al.  ABS: A Core Language for Abstract Behavioral Specification , 2010, FMCO.

[22]  Roberto Di Cosmo,et al.  Towards a Formal Component Model for the Cloud , 2012, SEFM.