Skip to main content

A Formal Approach to Microservice Architecture Deployment

  • Chapter
  • First Online:
Microservices

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 129.00
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 169.00
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info
Hardcover Book
USD 169.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

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

    Google Scholar 

  2. Amazon: Amazon Cloudwatch. https://aws.amazon.com/cloudwatch/. Accessed January 2019

  3. Amazon: AWS Auto Scaling. https://aws.amazon.com/autoscaling/. Accessed January 2019

  4. 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)

    Article  Google Scholar 

  5. ANTLR (ANother Tool for Language Recognition). http://www.antlr.org/. Accessed January 2019

  6. Apache: Apache MESOS. http://mesos.apache.org/. Accessed January 2019

  7. 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)

    Article  MathSciNet  Google Scholar 

  8. 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)

    Article  Google Scholar 

  9. F. Boyer, O. Gruber, D. Pous, Robust reconfigurations of component assemblies, in ICSE (IEEE Computer Society, Piscataway, 2013), pp. 13–22

    Google Scholar 

  10. M. Bravetti, Reduction semantics in Markovian process algebra. J. Log. Algebr. Meth. Program. 96, 41–64 (2018)

    Article  MathSciNet  Google Scholar 

  11. M. Bravetti, G. Zavattaro, On the expressive power of process interruption and compensation. Math. Struct. Comput. Sci. 19(3), 565–599 (2009)

    Article  MathSciNet  Google Scholar 

  12. M. Bravetti, S. Gilmore, C. Guidi, M. Tribastone, Replicating web services for scalability, in TGC. LNCS, vol. 4912 (Springer, Berlin, 2008), pp. 204–221

    Google Scholar 

  13. 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

    Google Scholar 

  14. M. Bravetti, M. Carbone, G. Zavattaro, Undecidability of asynchronous session subtyping. Inf. Comput. 256, 300–320 (2017)

    Article  MathSciNet  Google Scholar 

  15. M. Bravetti, M. Carbone, G. Zavattaro, On the boundary between decidability and undecidability of asynchronous session subtyping. Theor. Comput. Sci. 722, 19–51 (2018)

    Article  MathSciNet  Google Scholar 

  16. 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

  17. M. Bravetti, S. Giallorenzo, J. Mauro, I. Talevi, G. Zavattaro, Optimal and Automated Deployment for Microservices, in FASE (2019)

    Google Scholar 

  18. 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

    Chapter  Google Scholar 

  19. A. Brogi, A. Canciani, J. Soldani, Modelling and analysing cloud application management, in ESOCC. LNCS, vol. 9306 (Springer, Berlin, 2015), pp. 19–33

    Chapter  Google Scholar 

  20. M. Chardet, H. Coullon, D. Pertin, C. Pérez, Madeus: a formal deployment model, in HPCS (IEEE, Piscataway, 2018), pp. 724–731

    Google Scholar 

  21. Chuffed Team: The CP Solver. https://github.com/geoffchu/chuffed. Accessed January 2019

  22. 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)

    Article  MathSciNet  Google Scholar 

  23. S. de Gouw, J. Mauro, B. Nobakht, G. Zavattaro, Declarative elasticity in ABS, in ESOCC. LNCS, vol. 9846 (Springer, Berlin, 2016), pp. 118–134

    Google Scholar 

  24. R. Di Cosmo, S. Zacchiroli, G. Zavattaro, Towards a formal component model for the cloud, in SEFM 2012. LNCS, vol. 7504 (2012)

    Google Scholar 

  25. 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)

    Google Scholar 

  26. R. Di Cosmo, J. Mauro, S. Zacchiroli, G. Zavattaro, Aeolus: a component model for the cloud. Inf. Comput. 239, 100–121 (2014)

    Article  MathSciNet  Google Scholar 

  27. 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

    Google Scholar 

  28. Docker: Docker Compose Documentation. https://docs.docker.com/compose/. Accessed January 2019

  29. Docker: Docker Swarm. https://docs.docker.com/engine/swarm/. Accessed January 2019

  30. 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

    Google Scholar 

  31. F. Durán, G. Salaün, Robust and reliable reconfiguration of cloud applications. J. Syst. Softw. 122, 524–537 (2016)

    Article  Google Scholar 

  32. I. Feinerer, Efficient large-scale configuration via integer linear programming. AI EDAM 27(1), 37–49 (2013)

    Google Scholar 

  33. J. Fischer, R. Majumdar, S. Esmaeilsabzali, Engage: a deployment management system, in: PLDI (2012)

    Article  Google Scholar 

  34. 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

  35. GECODE: An Open, Free, Efficient Constraint Solving Toolkit. http://www.gecode.org. Accessed January 2019

  36. Google: Optimization Tools. https://developers.google.com/optimization/. Accessed January 2019

  37. R. Hat, Ansible. https://www.ansible.com/. Accessed January 2019

  38. J.A. Hewson, P. Anderson, A.D. Gordon, A declarative approach to automated configuration, in LISA (2012)

    Google Scholar 

  39. K. Hightower, B.Burns, J. Beda, Kubernetes: Up and Running Dive into the Future of Infrastructure, 1st edn. (O’Reilly Media, Inc., Sebastopol, 2017)

    Google Scholar 

  40. J. Humble, D. Farley, Continuous Delivery: Reliable Software Releases Through Build, Test, and Deployment Automation (Addison-Wesley Professional, Upper Saddle River, 2010)

    Google Scholar 

  41. E.B. Johnsen, R. Hähnle, J. Schäfer, R. Schlatte, M. Steffen, ABS: a core language for abstract behavioral specification, in FMCO (2010)

    Google Scholar 

  42. L. Kanies, Puppet: Next-generation configuration management. ;login: the USENIX Magazine 31(1) (2006)

    Google Scholar 

  43. J. Mauro, Zephyrus2 code repository. https://bitbucket.org/jacopomauro/zephyrus2

  44. 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

    Chapter  Google Scholar 

  45. D. Merkel, Docker: lightweight Linux containers for consistent development and deployment. Linux J. 2014(239), 2 (2014)

    Google Scholar 

  46. 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

  47. Opscode: Chef. https://www.chef.io/chef/. Accessed January 2019

  48. Puppet Labs: Marionette Collective. http://docs.puppetlabs.com/mcollective/. Accessed January 2019

Download references

Acknowledgement

The research was partly supported by the H2020-MSCA-RISE project ID 778233 “Behavioural Application Program Interfaces (BEHAPI).”

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Mario Bravetti .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2020 Springer Nature Switzerland AG

About this chapter

Check for updates. Verify currency and authenticity via CrossMark

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)

Publish with us

Policies and ethics