Abstract
Following previous work on the automated deployment of component-based applications, we present a formal model specifically tailored for reasoning on the deployment of microservice architectures. The first result that we present is a formal proof of decidability of the problem of synthesizing optimal deployment plans for microservice architectures, a problem which was proved to be undecidable for generic component-based applications. Then, given that such proof translates the deployment problem into a constraint satisfaction problem, we present the implementation of a tool that, by exploiting state-of-the-art constraint solvers, can be used to actually synthesize optimal deployment plans. We evaluate the applicability of our tool on a realistic microservice architecture taken from the literature.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
E. Ábrahám, F. Corzilius, E.B. Johnsen, G. Kremer, J. Mauro, Zephyrus2: on the fly deployment optimization using SMT and CP technologies, in SETTA. LNCS, vol. 9984, pp. 229–245 (2016)
Amazon: Amazon Cloudwatch. https://aws.amazon.com/cloudwatch/. Accessed January 2019
Amazon: AWS Auto Scaling. https://aws.amazon.com/autoscaling/. Accessed January 2019
D. Ancona, V. Bono, M. Bravetti, J. Campos, G. Castagna, P. Deniélou, S.J. Gay, N. Gesbert, E. Giachino, R. Hu, E.B. Johnsen, F. Martins, V. Mascardi, F. Montesi, R. Neykova, N. Ng, L. Padovani, V.T. Vasconcelos, N. Yoshida, Behavioral types in programming languages. Found. Trends Program. Lang. 3(2–3), 95–230 (2016)
ANTLR (ANother Tool for Language Recognition). http://www.antlr.org/. Accessed January 2019
Apache: Apache MESOS. http://mesos.apache.org/. Accessed January 2019
J.C.M. Baeten, M. Bravetti, A ground-complete axiomatisation of finite-state processes in a generic process algebra. Math. Struct. Comput. Sci. 18(6), 1057–1089 (2008)
A. Bergmayr, U. Breitenbücher, N. Ferry, A. Rossini, A. Solberg, M. Wimmer, G. Kappel, F. Leymann, A systematic review of cloud modeling languages. Assoc. Comput. Mach. Comput. Surv. 51(1), 22:1–22:38 (2018)
F. Boyer, O. Gruber, D. Pous, Robust reconfigurations of component assemblies, in ICSE (IEEE Computer Society, Piscataway, 2013), pp. 13–22
M. Bravetti, Reduction semantics in Markovian process algebra. J. Log. Algebr. Meth. Program. 96, 41–64 (2018)
M. Bravetti, G. Zavattaro, On the expressive power of process interruption and compensation. Math. Struct. Comput. Sci. 19(3), 565–599 (2009)
M. Bravetti, S. Gilmore, C. Guidi, M. Tribastone, Replicating web services for scalability, in TGC. LNCS, vol. 4912 (Springer, Berlin, 2008), pp. 204–221
M. Bravetti, I. Lanese, G. Zavattaro, Contract-driven implementation of choreographies, in Trustworthy Global Computing, 4th International Symposium, TGC 2008, Barcelona, Spain, November 3–4, 2008, Revised Selected Papers. Lecture Notes in Computer Science, eds. by Kaklamanis, C., Nielson, F., vol. 5474 (Springer, Berlin, 2009), pp. 1–18
M. Bravetti, M. Carbone, G. Zavattaro, Undecidability of asynchronous session subtyping. Inf. Comput. 256, 300–320 (2017)
M. Bravetti, M. Carbone, G. Zavattaro, On the boundary between decidability and undecidability of asynchronous session subtyping. Theor. Comput. Sci. 722, 19–51 (2018)
M. Bravetti, S. Giallorenzo, J. Mauro, I. Talevi, G. Zavattaro, Code repository for the email processing example. https://github.com/IacopoTalevi/SmartDeploy-ABS-ExampleCode. Accessed January 2019
M. Bravetti, S. Giallorenzo, J. Mauro, I. Talevi, G. Zavattaro, Optimal and Automated Deployment for Microservices, in FASE (2019)
M. Bravetti, S. Giallorenzo, J. Mauro, I. Talevi, G. Zavattaro, Optimal and automated deployment for microservices (2019). https://arxiv.org/abs/1901.09782. Technical Report
A. Brogi, A. Canciani, J. Soldani, Modelling and analysing cloud application management, in ESOCC. LNCS, vol. 9306 (Springer, Berlin, 2015), pp. 19–33
M. Chardet, H. Coullon, D. Pertin, C. Pérez, Madeus: a formal deployment model, in HPCS (IEEE, Piscataway, 2018), pp. 724–731
Chuffed Team: The CP Solver. https://github.com/geoffchu/chuffed. Accessed January 2019
F.S. de Boer, M. Bravetti, M.D. Lee, G. Zavattaro, A petri net based modeling of active objects and futures. Fund. Inform. 159(3), 197–256 (2018)
S. de Gouw, J. Mauro, B. Nobakht, G. Zavattaro, Declarative elasticity in ABS, in ESOCC. LNCS, vol. 9846 (Springer, Berlin, 2016), pp. 118–134
R. Di Cosmo, S. Zacchiroli, G. Zavattaro, Towards a formal component model for the cloud, in SEFM 2012. LNCS, vol. 7504 (2012)
R. Di Cosmo, M. Lienhardt, R. Treinen, S. Zacchiroli, J. Zwolakowski, A. Eiche, A. Agahi, Automated synthesis and deployment of cloud applications, in ASE (2014)
R. Di Cosmo, J. Mauro, S. Zacchiroli, G. Zavattaro, Aeolus: a component model for the cloud. Inf. Comput. 239, 100–121 (2014)
R. Di Cosmo, M. Lienhardt, J. Mauro, S. Zacchiroli, G. Zavattaro, J. Zwolakowski, Automatic application deployment in the cloud: from practice to theory and back (invited paper), in CONCUR. LIPIcs, vol. 42, (Schloss Dagstuhl-Leibniz-Zentrum fuer Informatik, 2015), pp. 1–16
Docker: Docker Compose Documentation. https://docs.docker.com/compose/. Accessed January 2019
Docker: Docker Swarm. https://docs.docker.com/engine/swarm/. Accessed January 2019
N. Dragoni, S. Giallorenzo, A. Lluch-Lafuente, M. Mazzara, F. Montesi, R. Mustafin, L. Safina, Microservices: yesterday, today, and tomorrow, in PAUSE (Springer, Berlin, 2017), pp. 195–216
F. Durán, G. Salaün, Robust and reliable reconfiguration of cloud applications. J. Syst. Softw. 122, 524–537 (2016)
I. Feinerer, Efficient large-scale configuration via integer linear programming. AI EDAM 27(1), 37–49 (2013)
J. Fischer, R. Majumdar, S. Esmaeilsabzali, Engage: a deployment management system, in: PLDI (2012)
K. Fromm, Thinking Serverless! How New Approaches Address Modern Data Processing Needs. https://read.acloud.guru/thinking-serverless-how-new-approaches-address-modern-data-processing-needs-part-1-af6a158a3af1. Accessed January 2019
GECODE: An Open, Free, Efficient Constraint Solving Toolkit. http://www.gecode.org. Accessed January 2019
Google: Optimization Tools. https://developers.google.com/optimization/. Accessed January 2019
R. Hat, Ansible. https://www.ansible.com/. Accessed January 2019
J.A. Hewson, P. Anderson, A.D. Gordon, A declarative approach to automated configuration, in LISA (2012)
K. Hightower, B.Burns, J. Beda, Kubernetes: Up and Running Dive into the Future of Infrastructure, 1st edn. (O’Reilly Media, Inc., Sebastopol, 2017)
J. Humble, D. Farley, Continuous Delivery: Reliable Software Releases Through Build, Test, and Deployment Automation (Addison-Wesley Professional, Upper Saddle River, 2010)
E.B. Johnsen, R. Hähnle, J. Schäfer, R. Schlatte, M. Steffen, ABS: a core language for abstract behavioral specification, in FMCO (2010)
L. Kanies, Puppet: Next-generation configuration management. ;login: the USENIX Magazine 31(1) (2006)
J. Mauro, Zephyrus2 code repository. https://bitbucket.org/jacopomauro/zephyrus2
J. Mauro, G. Zavattaro, On the complexity of reconfiguration in systems with legacy components, in MFCS. LNCS, vol. 9234 (Springer, Berlin, 2015), pp. 382–393
D. Merkel, Docker: lightweight Linux containers for consistent development and deployment. Linux J. 2014(239), 2 (2014)
N. Nethercote, P.J. Stuckey, R. Becket, S. Brand, G.J. Duck, G. Tack, MiniZinc: towards a standard CP modelling language, in CP (2007), pp. 529–543. http://dl.acm.org/citation.cfm?id=1771668.1771709
Opscode: Chef. https://www.chef.io/chef/. Accessed January 2019
Puppet Labs: Marionette Collective. http://docs.puppetlabs.com/mcollective/. Accessed January 2019
Acknowledgement
The research was partly supported by the H2020-MSCA-RISE project ID 778233 “Behavioural Application Program Interfaces (BEHAPI).”
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2020 Springer Nature Switzerland AG
About this chapter
Cite this chapter
Bravetti, M., Giallorenzo, S., Mauro, J., Talevi, I., Zavattaro, G. (2020). A Formal Approach to Microservice Architecture Deployment. In: Bucchiarone, A., et al. Microservices. Springer, Cham. https://doi.org/10.1007/978-3-030-31646-4_8
Download citation
DOI: https://doi.org/10.1007/978-3-030-31646-4_8
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-31645-7
Online ISBN: 978-3-030-31646-4
eBook Packages: Computer ScienceComputer Science (R0)