Skip to main content

Zephyrus2: On the Fly Deployment Optimization Using SMT and CP Technologies

  • Conference paper
  • First Online:
Dependable Software Engineering: Theories, Tools, and Applications (SETTA 2016)

Abstract

Modern cloud applications consist of software components deployed on multiple virtual machines. Deploying such applications is error prone and requires detailed system expertise. The deployment optimization problem is about how to configure and deploy applications correctly while at the same time minimizing resource cost on the cloud. This problem is addressed by tools such as Zephyrus, which take a declarative specification of the components and their configuration requirements as input and propose an optimal deployment. This paper presents Zephyrus2, a new tool which addresses deployment optimization by exploiting modern SMT and CP technologies to handle larger and more complex deployment scenarios. Compared to Zephyrus, Zephyrus2 can solve problems involving hundreds of components to be deployed on hundreds of virtual machines in a matter of seconds instead of minutes. This significant speed-up, combined with an improved specification format, enables Zephyrus2 to interactively support on the fly decision making.

Supported by the EU project FP7-644298 HyVar: Scalable Hybrid Variability for Distributed, Evolving Software Systems, by the DAAD project SMT4ABS and by the CDZ project CAP.

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 39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight 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

Notes

  1. 1.

    For the interested reader, an example of the encoding in MiniZinc is reported in [1].

  2. 2.

    MiniSearch is a very recent framework, only available in a beta version.

  3. 3.

    The MiniZinc model, available from [34], was submitted to the MiniZinc Challenge 2016.

References

  1. Ábrahám, E., Corzilius, F., Johnsen, E.B., Kremer, G., Mauro, J.: Zephyrus2: On the Fly deployment optimization using SMT and CP technologies. Technical report, University of Oslo (2016)

    Google Scholar 

  2. Amadini, R., Gabbrielli, M., Mauro, J.: SUNNY: a lazy portfolio approach for constraint solving. TPLP 14(4–5), 509–524 (2014)

    MATH  Google Scholar 

  3. Amadini, R., Gabbrielli, M., Mauro, J.: A multicore tool for constraint solving. In IJCAI, pp. 232–238, 2015

    Google Scholar 

  4. Amazon: AWS CloudFormation. http://aws.amazon.com/cloudformation/

  5. Barrett, C., Fontaine, P., Tinelli, C.: The SMT-LIB Standard Version 2.6 (2015)

    Google Scholar 

  6. Barroso, L.A., Clidaras, J., Hölzle, U.: The Datacenter as a Computer: An Introduction to the Design of Warehouse-Scale Machines. Morgan and Claypool Publishers, San Rafael (2013)

    Google Scholar 

  7. Bjørner, N., Phan, A.-D., Fleckenstein, L.: \(\nu \)Z - an optimizing SMT solver. In TACAS, pp. 194–199, 2015

    Google Scholar 

  8. Bofill, M., Palahí, M., Suy, J., Villaret, M.: Solving constraint satisfaction problems with SAT modulo theories. Constraints 17(3), 273–303 (2012)

    Article  MathSciNet  MATH  Google Scholar 

  9. Burgess, M.: A site configuration engine. Comput. Syst. 8(2), 309–337 (1995)

    MathSciNet  Google Scholar 

  10. Cambazard, H., Mehta, D., O’Sullivan, B., Simonis, H.: Bin packing with linear usage costs - an application to energy management in data centres. In: CP, pp. 47–62 (2013)

    Google Scholar 

  11. Catan, M., et al.: Aeolus: mastering the complexity of cloud application deployment. In: Lau, K.-K., Lamersdorf, W., Pimentel, E. (eds.) ESOCC 2013. LNCS, vol. 8135, pp. 1–3. Springer, Heidelberg (2013). doi:10.1007/978-3-642-40651-5_1

    Chapter  Google Scholar 

  12. CenturyLink: Cloud Blueprints. https://www.centurylinkcloud.com/blueprints/

  13. Chuffed: The CP solver. https://github.com/geoffchu/chuffed

  14. Coffman Jr., E.G., Garey, M.R., Johnson, D.S.: Approximation algorithms for bin packing: a survey. In: Approximation Algorithms for NP-hard Problems, pp. 46–93 (1997)

    Google Scholar 

  15. Cosmo, R., Eiche, A., Mauro, J., Zacchiroli, S., Zavattaro, G., Zwolakowski, J.: Automatic deployment of services in the cloud with aeolus blender. In: Barros, A., Grigori, D., Narendra, N.C., Dam, H.K. (eds.) ICSOC 2015. LNCS, vol. 9435, pp. 397–411. Springer, Heidelberg (2015). doi:10.1007/978-3-662-48616-0_28

    Chapter  Google Scholar 

  16. Cosmo, R.D., Lienhardt, M., Mauro, J., Zacchiroli, S., Zavattaro, G., Zwolakowski, J.: Automatic application deployment in the cloud: from practice to theory and back. In: CONCUR, pp. 1–16 (2015)

    Google Scholar 

  17. Cosmo, R.D., Lienhardt, M., Treinen, R., Zacchiroli, S., Zwolakowski, J., Eiche, A., Agahi, A.: Automated synthesis and deployment of cloud applications. In: ASE, pp. 211–222 (2014)

    Google Scholar 

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

    Article  MathSciNet  MATH  Google Scholar 

  19. Gouw, S., Lienhardt, M., Mauro, J., Nobakht, B., Zavattaro, G.: On the integration of automatic deployment into the ABS modeling language. In: Dustdar, S., Leymann, F., Villari, M. (eds.) ESOCC 2015. LNCS, vol. 9306, pp. 49–64. Springer, Heidelberg (2015). doi:10.1007/978-3-319-24072-5_4

    Chapter  Google Scholar 

  20. Gouw, S., Mauro, J., Nobakht, B., Zavattaro, G.: Declarative elasticity in ABS. In: Aiello, M., Johnsen, E.B., Dustdar, S., Georgievski, I. (eds.) ESOCC 2016. LNCS, vol. 9846, pp. 118–134. Springer, Heidelberg (2016). doi:10.1007/978-3-319-44482-6_8

    Chapter  Google Scholar 

  21. Moura, L., Bjørner, N.: Z3: an efficient SMT solver. In: Ramakrishnan, C.R., Rehof, J. (eds.) TACAS 2008. LNCS, vol. 4963, pp. 337–340. Springer, Heidelberg (2008). doi:10.1007/978-3-540-78800-3_24

    Chapter  Google Scholar 

  22. Docker Inc.: Docker. https://www.docker.com/

  23. Fischer, J., Majumdar, R., Esmaeilsabzali, S.: Engage: a deployment management system. In: PLDI, pp. 263–274 (2012)

    Google Scholar 

  24. Flexiant: Bento Boxes. http://www.flexiant.com/2012/12/03/application-provisioning/

  25. Frey, S., Fittkau, F., Hasselbring, W.: Search-based genetic optimization for deployment and reconfiguration of software in the cloud. In: ICSE, pp. 512–521 (2013)

    Google Scholar 

  26. Gabbrielli, M., Giallorenzo, S., Guidi, C., Mauro, J., Montesi, F.: Self-reconfiguring microservices. In: Ábrahám, E., Bonsangue, M., Johnsen, E.B. (eds.) Theory and Practice of Formal Methods. LNCS, vol. 9660, pp. 194–210. Springer, Heidelberg (2016). doi:10.1007/978-3-319-30734-3_14

    Chapter  Google Scholar 

  27. GECODE: An open, free, efficient constraint solving toolkit. http://www.gecode.org

  28. Google: Optimization tools. https://developers.google.com/optimization/

  29. Hermenier, F., Demassey, S., Lorca, X.: Bin repacking scheduling in virtualized datacenters. In: Lee, J. (ed.) CP 2011. LNCS, vol. 6876, pp. 27–41. Springer, Heidelberg (2011). doi:10.1007/978-3-642-23786-7_5

    Chapter  Google Scholar 

  30. Hewson, J.A., Anderson, P., Gordon, A.D.: A declarative approach to automated configuration. In: LISA, pp. 51–66 (2012)

    Google Scholar 

  31. Juju: DevOps Distilled. https://jujucharms.com/

  32. Kanies, L.: Puppet: next-generation configuration management. Login: the USENIX Mag. 31(1), 19–25 (2006)

    Google Scholar 

  33. Malapert, A., Régin, J., Parpaillon, J.: The package server location problem. In: ICORES, pp. 193–204 (2013)

    Google Scholar 

  34. Mauro, J.: Zephyrus2. https://bitbucket.org/jacopomauro/zephyrus2/src

  35. Mi, H., Wang, H., Yin, G., Zhou, Y., xi Shi, D., Yuan, L.: Online self-reconfiguration with performance guarantee for energy-efficient large-scale cloud computing data centers. In: SCC, pp. 514–521 (2010)

    Google Scholar 

  36. Michel, L., Shvartsman, A.A., Sonderegger, E.L., Hentenryck, P.V.: Load balancing and almost symmetries for RAMBO quorum hosting. In: CP, pp. 598–612 (2010)

    Google Scholar 

  37. Michel, L., Hentenryck, P., Sonderegger, E., Shvartsman, A., Moraal, M.: Bandwidth-limited optimal deployment of eventually-serializable data services. In: Hoeve, W.-J., Hooker, J.N. (eds.) CPAIOR 2009. LNCS, vol. 5547, pp. 193–207. Springer, Heidelberg (2009). doi:10.1007/978-3-642-01929-6_15

    Chapter  Google Scholar 

  38. Narain, S., Levin, G., Malik, S., Kaul, V.: Declarative infrastructure configuration synthesis and debugging. J. Netw. Syst. Manage. 16(3), 235–258 (2008)

    Article  Google Scholar 

  39. Nethercote, N., Stuckey, P.J., Becket, R., Brand, S., Duck, G.J., Tack, G.: MiniZinc: towards a standard CP modelling language. In: Bessière, C. (ed.) CP 2007. LNCS, vol. 4741, pp. 529–543. Springer, Heidelberg (2007). doi:10.1007/978-3-540-74970-7_38

    Chapter  Google Scholar 

  40. NICTA: MiniZinc Challenge 2015. http://www.minizinc.org/challenge2015/results2015.html

  41. OASIS: Topology and orchestration specification for cloud applications (TOSCA) version 1.0.http://docs.oasis-open.org/tosca/TOSCA/v1.0/cs01/TOSCA-v1.0-cs01.html

  42. Opscode: Chef. https://www.chef.io/chef/

  43. Puppet Labs: Marionette collective. http://docs.puppetlabs.com/mcollective/

  44. Quinton, C., Pleuss, A., Berre, D.L., Duchien, L., Botterweck, G.: Consistency checking for the evolution of cardinality-based feature models. In: SPLC, pp. 122–131 (2014)

    Google Scholar 

  45. Régin, J., Rezgui, M.: Discussion about constraint programming bin packing models. In: AI for Data Center Management and Cloud, Computing, pp. 21–23 (2011)

    Google Scholar 

  46. Rendl, A., Guns, T., Stuckey, P.J., Tack, G.: MiniSearch: a solver-independent meta-search language for minizinc. In: Pesant, G. (ed.) CP 2015. LNCS, vol. 9255, pp. 376–392. Springer, Heidelberg (2015). doi:10.1007/978-3-319-23219-5_27

    Google Scholar 

  47. Rossi, F., van Beek, P., Walsh, T. (eds.): Handbook of Constraint Programming. Elsevier, Amsterdam (2006)

    MATH  Google Scholar 

  48. Stuckey, P.J., Banda, M.G., Maher, M., Marriott, K., Slaney, J., Somogyi, Z., Wallace, M., Walsh, T.: The G12 project: mapping solver independent models to efficient solutions. In: Gabbrielli, M., Gupta, G. (eds.) ICLP 2005. LNCS, vol. 3668, pp. 9–13. Springer, Heidelberg (2005). doi:10.1007/11562931_3

    Chapter  Google Scholar 

  49. Tran, P.N., Casucci, L., Timm-Giel, A.: Optimal mapping of virtual networks considering reactive reconfiguration. In: CLOUDNET, pp. 35–40 (2012)

    Google Scholar 

  50. Zwolakowski, J.: A Formal Approach to Distributed Application Synthesis and deployment automation. Ph.D. thesis, Université Paris Diderot Paris 7 (2015)

    Google Scholar 

Download references

Acknowledgements

We would like to thank Andreas Schutt from NICTA (National ICT of Australia) for proposing a search annotation for the deployment problem when submitting Zephyrus2 instances to the MiniZinc Challenge 2016.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Jacopo Mauro .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2016 Springer International Publishing AG

About this paper

Cite this paper

Ábrahám, E., Corzilius, F., Johnsen, E.B., Kremer, G., Mauro, J. (2016). Zephyrus2: On the Fly Deployment Optimization Using SMT and CP Technologies. In: Fränzle, M., Kapur, D., Zhan, N. (eds) Dependable Software Engineering: Theories, Tools, and Applications. SETTA 2016. Lecture Notes in Computer Science(), vol 9984. Springer, Cham. https://doi.org/10.1007/978-3-319-47677-3_15

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-47677-3_15

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-47676-6

  • Online ISBN: 978-3-319-47677-3

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics