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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
Á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)
Amadini, R., Gabbrielli, M., Mauro, J.: SUNNY: a lazy portfolio approach for constraint solving. TPLP 14(4–5), 509–524 (2014)
Amadini, R., Gabbrielli, M., Mauro, J.: A multicore tool for constraint solving. In IJCAI, pp. 232–238, 2015
Amazon: AWS CloudFormation. http://aws.amazon.com/cloudformation/
Barrett, C., Fontaine, P., Tinelli, C.: The SMT-LIB Standard Version 2.6 (2015)
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)
Bjørner, N., Phan, A.-D., Fleckenstein, L.: \(\nu \)Z - an optimizing SMT solver. In TACAS, pp. 194–199, 2015
Bofill, M., Palahí, M., Suy, J., Villaret, M.: Solving constraint satisfaction problems with SAT modulo theories. Constraints 17(3), 273–303 (2012)
Burgess, M.: A site configuration engine. Comput. Syst. 8(2), 309–337 (1995)
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)
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
CenturyLink: Cloud Blueprints. https://www.centurylinkcloud.com/blueprints/
Chuffed: The CP solver. https://github.com/geoffchu/chuffed
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)
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
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)
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)
Cosmo, R.D., Mauro, J., Zacchiroli, S., Zavattaro, G.: Aeolus: a component model for the cloud. Inf. Comput. 239, 100–121 (2014)
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
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
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
Docker Inc.: Docker. https://www.docker.com/
Fischer, J., Majumdar, R., Esmaeilsabzali, S.: Engage: a deployment management system. In: PLDI, pp. 263–274 (2012)
Flexiant: Bento Boxes. http://www.flexiant.com/2012/12/03/application-provisioning/
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)
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
GECODE: An open, free, efficient constraint solving toolkit. http://www.gecode.org
Google: Optimization tools. https://developers.google.com/optimization/
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
Hewson, J.A., Anderson, P., Gordon, A.D.: A declarative approach to automated configuration. In: LISA, pp. 51–66 (2012)
Juju: DevOps Distilled. https://jujucharms.com/
Kanies, L.: Puppet: next-generation configuration management. Login: the USENIX Mag. 31(1), 19–25 (2006)
Malapert, A., Régin, J., Parpaillon, J.: The package server location problem. In: ICORES, pp. 193–204 (2013)
Mauro, J.: Zephyrus2. https://bitbucket.org/jacopomauro/zephyrus2/src
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)
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)
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
Narain, S., Levin, G., Malik, S., Kaul, V.: Declarative infrastructure configuration synthesis and debugging. J. Netw. Syst. Manage. 16(3), 235–258 (2008)
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
NICTA: MiniZinc Challenge 2015. http://www.minizinc.org/challenge2015/results2015.html
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
Opscode: Chef. https://www.chef.io/chef/
Puppet Labs: Marionette collective. http://docs.puppetlabs.com/mcollective/
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)
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)
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
Rossi, F., van Beek, P., Walsh, T. (eds.): Handbook of Constraint Programming. Elsevier, Amsterdam (2006)
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
Tran, P.N., Casucci, L., Timm-Giel, A.: Optimal mapping of virtual networks considering reactive reconfiguration. In: CLOUDNET, pp. 35–40 (2012)
Zwolakowski, J.: A Formal Approach to Distributed Application Synthesis and deployment automation. Ph.D. thesis, Université Paris Diderot Paris 7 (2015)
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
Corresponding author
Editor information
Editors and Affiliations
Rights 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)