{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,1,16]],"date-time":"2026-01-16T11:47:41Z","timestamp":1768564061591,"version":"3.49.0"},"publisher-location":"Cham","reference-count":39,"publisher":"Springer International Publishing","isbn-type":[{"value":"9783030167219","type":"print"},{"value":"9783030167226","type":"electronic"}],"license":[{"start":{"date-parts":[[2019,1,1]],"date-time":"2019-01-01T00:00:00Z","timestamp":1546300800000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0"}],"content-domain":{"domain":["link.springer.com"],"crossmark-restriction":false},"short-container-title":[],"published-print":{"date-parts":[[2019]]},"DOI":"10.1007\/978-3-030-16722-6_21","type":"book-chapter","created":{"date-parts":[[2019,4,4]],"date-time":"2019-04-04T02:01:08Z","timestamp":1554343268000},"page":"351-368","update-policy":"https:\/\/doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":20,"title":["Optimal and Automated Deployment for Microservices"],"prefix":"10.1007","author":[{"given":"Mario","family":"Bravetti","sequence":"first","affiliation":[]},{"given":"Saverio","family":"Giallorenzo","sequence":"additional","affiliation":[]},{"given":"Jacopo","family":"Mauro","sequence":"additional","affiliation":[]},{"given":"Iacopo","family":"Talevi","sequence":"additional","affiliation":[]},{"given":"Gianluigi","family":"Zavattaro","sequence":"additional","affiliation":[]}],"member":"297","published-online":{"date-parts":[[2019,4,4]]},"reference":[{"key":"21_CR1","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"229","DOI":"10.1007\/978-3-319-47677-3_15","volume-title":"Dependable Software Engineering: Theories, Tools, and Applications","author":"E \u00c1brah\u00e1m","year":"2016","unstructured":"\u00c1brah\u00e1m, E., Corzilius, F., Johnsen, E.B., Kremer, G., Mauro, J.: Zephyrus2: on the fly deployment optimization using SMT and CP technologies. In: Fr\u00e4nzle, M., Kapur, D., Zhan, N. (eds.) SETTA 2016. LNCS, vol. 9984, pp. 229\u2013245. Springer, Cham (2016). \n                      https:\/\/doi.org\/10.1007\/978-3-319-47677-3_15"},{"key":"21_CR2","unstructured":"Amazon: Amazon CloudWatch. \n                      https:\/\/aws.amazon.com\/cloudwatch\/\n                      \n                    . Accessed Jan 2019"},{"key":"21_CR3","unstructured":"Amazon: AWS auto scaling. \n                      https:\/\/aws.amazon.com\/autoscaling\/\n                      \n                    . Accessed Jan 2019"},{"key":"21_CR4","unstructured":"Apache: Apache Mesos. \n                      http:\/\/mesos.apache.org\/\n                      \n                    . Accessed Jan 2019"},{"issue":"1","key":"21_CR5","doi-asserted-by":"publisher","first-page":"22:1","DOI":"10.1145\/3150227","volume":"51","author":"A Bergmayr","year":"2018","unstructured":"Bergmayr, A., et al.: A systematic review of cloud modeling languages. ACM Comput. Surv. 51(1), 22:1\u201322:38 (2018)","journal-title":"ACM Comput. Surv."},{"key":"21_CR6","doi-asserted-by":"crossref","unstructured":"Boyer, F., Gruber, O., Pous, D.: Robust reconfigurations of component assemblies. In: ICSE, pp. 13\u201322. IEEE Computer Society (2013)","DOI":"10.1109\/ICSE.2013.6606547"},{"key":"21_CR7","unstructured":"Bravetti, M., Giallorenzo, S., Mauro, J., Talevi, I., Zavattaro, G.: Code repository for the email processing example. \n                      https:\/\/github.com\/IacopoTalevi\/SmartDeploy-ABS-ExampleCode\n                      \n                    . Accessed Jan 2019"},{"key":"21_CR8","unstructured":"Bravetti, M., Giallorenzo, S., Mauro, J., Talevi, I., Zavattaro, G.: Optimal and automated deployment for microservices. Technical Report (2019). \n                      https:\/\/arxiv.org\/abs\/1901.09782"},{"key":"21_CR9","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"204","DOI":"10.1007\/978-3-540-78663-4_15","volume-title":"Trustworthy Global Computing","author":"M Bravetti","year":"2008","unstructured":"Bravetti, M., Gilmore, S., Guidi, C., Tribastone, M.: Replicating web services for scalability. In: Barthe, G., Fournet, C. (eds.) TGC 2007. LNCS, vol. 4912, pp. 204\u2013221. Springer, Heidelberg (2008). \n                      https:\/\/doi.org\/10.1007\/978-3-540-78663-4_15"},{"key":"21_CR10","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"19","DOI":"10.1007\/978-3-319-24072-5_2","volume-title":"Service Oriented and Cloud Computing","author":"A Brogi","year":"2015","unstructured":"Brogi, A., Canciani, A., Soldani, J.: Modelling and analysing cloud application management. In: Dustdar, S., Leymann, F., Villari, M. (eds.) ESOCC 2015. LNCS, vol. 9306, pp. 19\u201333. Springer, Cham (2015). \n                      https:\/\/doi.org\/10.1007\/978-3-319-24072-5_2"},{"key":"21_CR11","doi-asserted-by":"crossref","unstructured":"Chardet, M., Coullon, H., Pertin, D., P\u00e9rez, C.: Madeus: a formal deployment model. In: HPCS, pp. 724\u2013731. IEEE (2018)","DOI":"10.1109\/HPCS.2018.00118"},{"key":"21_CR12","unstructured":"Chuffed Team: The CP solver. \n                      https:\/\/github.com\/geoffchu\/chuffed\n                      \n                    . Accessed Jan 2019"},{"key":"21_CR13","unstructured":"Di Cosmo, R., Lienhardt, M., Mauro, J., Zacchiroli, S., Zavattaro, G., Zwolakowski, J.: Automatic application deployment in the cloud: from practice to theory and back (invited paper). In: CONCUR. LIPIcs, vol. 42, pp. 1\u201316. Schloss Dagstuhl - Leibniz-Zentrum fuer Informatik (2015)"},{"key":"21_CR14","doi-asserted-by":"publisher","first-page":"100","DOI":"10.1016\/j.ic.2014.11.002","volume":"239","author":"R Cosmo Di","year":"2014","unstructured":"Di Cosmo, R., Mauro, J., Zacchiroli, S., Zavattaro, G.: Aeolus: a component model for the cloud. Inf. Comput. 239, 100\u2013121 (2014)","journal-title":"Inf. Comput."},{"key":"21_CR15","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"156","DOI":"10.1007\/978-3-642-33826-7_11","volume-title":"Software Engineering and Formal Methods","author":"R Cosmo Di","year":"2012","unstructured":"Di Cosmo, R., Zacchiroli, S., Zavattaro, G.: Towards a formal component model for the cloud. In: Eleftherakis, G., Hinchey, M., Holcombe, M. (eds.) SEFM 2012. LNCS, vol. 7504, pp. 156\u2013171. Springer, Heidelberg (2012). \n                      https:\/\/doi.org\/10.1007\/978-3-642-33826-7_11"},{"key":"21_CR16","unstructured":"Docker: Docker compose documentation. \n                      https:\/\/docs.docker.com\/compose\/\n                      \n                    . Accessed Jan 2019"},{"key":"21_CR17","unstructured":"Docker: Docker swarm. \n                      https:\/\/docs.docker.com\/engine\/swarm\/\n                      \n                    . Accessed Jan 2019"},{"key":"21_CR18","doi-asserted-by":"publisher","first-page":"195","DOI":"10.1007\/978-3-319-67425-4_12","volume-title":"Present and Ulterior Software Engineering","author":"N Dragoni","year":"2017","unstructured":"Dragoni, N., et al.: Microservices: yesterday, today, and tomorrow. In: Mazzara, M., Meyer, B. (eds.) Present and Ulterior Software Engineering, pp. 195\u2013216. Springer, Cham (2017). \n                      https:\/\/doi.org\/10.1007\/978-3-319-67425-4_12"},{"key":"21_CR19","doi-asserted-by":"publisher","first-page":"524","DOI":"10.1016\/j.jss.2015.09.020","volume":"122","author":"F Dur\u00e1n","year":"2016","unstructured":"Dur\u00e1n, F., Sala\u00fcn, G.: Robust and reliable reconfiguration of cloud applications. J. Syst. Softw. 122, 524\u2013537 (2016)","journal-title":"J. Syst. Softw."},{"issue":"1","key":"21_CR20","first-page":"37","volume":"27","author":"I Feinerer","year":"2013","unstructured":"Feinerer, I.: Efficient large-scale configuration via integer linear programming. AI EDAM 27(1), 37\u201349 (2013)","journal-title":"AI EDAM"},{"key":"21_CR21","doi-asserted-by":"crossref","unstructured":"Fischer, J., Majumdar, R., Esmaeilsabzali, S.: Engage: a deployment management system. In: PLDI (2012)","DOI":"10.1145\/2254064.2254096"},{"key":"21_CR22","unstructured":"Fromm, K.: Thinking Serverless! How New Approaches Address Modern Data Processing Needs. \n                      https:\/\/read.acloud.guru\/thinking-serverless-how-new-approaches-address-modern-data-processing-needs-part-1-af6a158a3af1\n                      \n                    . Accessed Jan 2019"},{"key":"21_CR23","unstructured":"GECODE: an open, free, efficient constraint solving toolkit. \n                      http:\/\/www.gecode.org\n                      \n                    . Accessed Jan 2019"},{"key":"21_CR24","unstructured":"Google: Optimization tools. \n                      https:\/\/developers.google.com\/optimization\/\n                      \n                    . Accessed Jan 2019"},{"key":"21_CR25","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"118","DOI":"10.1007\/978-3-319-44482-6_8","volume-title":"Service-Oriented and Cloud Computing","author":"S Gouw de","year":"2016","unstructured":"de 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\u2013134. Springer, Cham (2016). \n                      https:\/\/doi.org\/10.1007\/978-3-319-44482-6_8"},{"key":"21_CR26","unstructured":"Red Hat Ansible. \n                      https:\/\/www.ansible.com\/\n                      \n                    . Accessed Jan 2019"},{"key":"21_CR27","unstructured":"Hellerstein, J.M., et al.: Serverless computing: one step forward, two steps back. arXiv preprint \n                      arXiv:1812.03651\n                      \n                     (2018)"},{"key":"21_CR28","unstructured":"Hewson, J.A., Anderson, P., Gordon, A.D.: A declarative approach to automated configuration. In: LISA (2012)"},{"key":"21_CR29","volume-title":"Kubernetes: Up and Running Dive into the Future of Infrastructure","author":"K Hightower","year":"2017","unstructured":"Hightower, K., Burns, B., Beda, J.: Kubernetes: Up and Running Dive into the Future of Infrastructure, 1st edn. O\u2019Reilly Media, Inc., Sebastopol (2017)","edition":"1"},{"key":"21_CR30","volume-title":"Continuous Delivery: Reliable Software Releases Through Build, Test, and Deployment Automation","author":"J Humble","year":"2010","unstructured":"Humble, J., Farley, D.: Continuous Delivery: Reliable Software Releases Through Build, Test, and Deployment Automation. Addison-Wesley Professional, Boston (2010)"},{"key":"21_CR31","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"142","DOI":"10.1007\/978-3-642-25271-6_8","volume-title":"Formal Methods for Components and Objects","author":"EB Johnsen","year":"2011","unstructured":"Johnsen, E.B., H\u00e4hnle, R., Sch\u00e4fer, J., Schlatte, R., Steffen, M.: ABS: a core language for abstract behavioral specification. In: Aichernig, B.K., de Boer, F.S., Bonsangue, M.M. (eds.) FMCO 2010. LNCS, vol. 6957, pp. 142\u2013164. Springer, Heidelberg (2011). \n                      https:\/\/doi.org\/10.1007\/978-3-642-25271-6_8"},{"key":"21_CR32","unstructured":"Kanies, L.: Puppet: next-generation configuration management. ;login: USENIX Mag. 31(1), 19\u201325 (2006)"},{"key":"21_CR33","unstructured":"Mauro, J.: Smartdepl. \n                      https:\/\/github.com\/jacopoMauro\/abs_deployer\n                      \n                    . Accessed Jan 2019"},{"key":"21_CR34","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"382","DOI":"10.1007\/978-3-662-48057-1_30","volume-title":"Mathematical Foundations of Computer Science 2015","author":"J Mauro","year":"2015","unstructured":"Mauro, J., Zavattaro, G.: On the complexity of reconfiguration in systems with legacy components. In: Italiano, G.F., Pighizzini, G., Sannella, D.T. (eds.) MFCS 2015. LNCS, vol. 9234, pp. 382\u2013393. Springer, Heidelberg (2015). \n                      https:\/\/doi.org\/10.1007\/978-3-662-48057-1_30"},{"key":"21_CR35","unstructured":"Mccombs, S.: Outages? Downtime? \n                      https:\/\/sethmccombs.github.io\/work\/2018\/12\/03\/Outages.html\n                      \n                    . Accessed Jan 2019"},{"issue":"239","key":"21_CR36","first-page":"2","volume":"2014","author":"D Merkel","year":"2014","unstructured":"Merkel, D.: Docker: lightweight Linux containers for consistent development and deployment. Linux J. 2014(239), 2 (2014)","journal-title":"Linux J."},{"key":"21_CR37","unstructured":"Opscode: Chef. \n                      https:\/\/www.chef.io\/chef\/\n                      \n                    . Accessed Jan 2019"},{"key":"21_CR38","unstructured":"Puppet Labs: Marionette collective. \n                      http:\/\/docs.puppetlabs.com\/mcollective\/\n                      \n                    . Accessed Jan 2019"},{"key":"21_CR39","unstructured":"Woods, D.: On infrastructure at scale: a cascading failure of distributed systems. \n                      https:\/\/medium.com\/@daniel.p.woods\/on-infrastructure-at-scale-a-cascading-failure-of-distributed-systems-7cff2a3cd2df\n                      \n                    . Accessed Jan 2019"}],"container-title":["Lecture Notes in Computer Science","Fundamental Approaches to Software Engineering"],"original-title":[],"language":"en","link":[{"URL":"http:\/\/link.springer.com\/content\/pdf\/10.1007\/978-3-030-16722-6_21","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2019,5,20]],"date-time":"2019-05-20T09:13:35Z","timestamp":1558343615000},"score":1,"resource":{"primary":{"URL":"http:\/\/link.springer.com\/10.1007\/978-3-030-16722-6_21"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2019]]},"ISBN":["9783030167219","9783030167226"],"references-count":39,"URL":"https:\/\/doi.org\/10.1007\/978-3-030-16722-6_21","relation":{},"ISSN":["0302-9743","1611-3349"],"issn-type":[{"value":"0302-9743","type":"print"},{"value":"1611-3349","type":"electronic"}],"subject":[],"published":{"date-parts":[[2019]]},"assertion":[{"value":"4 April 2019","order":1,"name":"first_online","label":"First Online","group":{"name":"ChapterHistory","label":"Chapter History"}},{"value":"FASE","order":1,"name":"conference_acronym","label":"Conference Acronym","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"International Conference on Fundamental Approaches to Software Engineering","order":2,"name":"conference_name","label":"Conference Name","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"Prague","order":3,"name":"conference_city","label":"Conference City","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"Czech Republic","order":4,"name":"conference_country","label":"Conference Country","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"2019","order":5,"name":"conference_year","label":"Conference Year","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"9 April 2019","order":7,"name":"conference_start_date","label":"Conference Start Date","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"11 April 2019","order":8,"name":"conference_end_date","label":"Conference End Date","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"22","order":9,"name":"conference_number","label":"Conference Number","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"fase2019","order":10,"name":"conference_id","label":"Conference ID","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"https:\/\/www.etaps.org\/2019\/fase","order":11,"name":"conference_url","label":"Conference URL","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"Double-blind","order":1,"name":"type","label":"Type","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information"}},{"value":"EasyChair","order":2,"name":"conference_management_system","label":"Conference Management System","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information"}},{"value":"74","order":3,"name":"number_of_submissions_sent_for_review","label":"Number of Submissions Sent for Review","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information"}},{"value":"24","order":4,"name":"number_of_full_papers_accepted","label":"Number of Full Papers Accepted","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information"}},{"value":"0","order":5,"name":"number_of_short_papers_accepted","label":"Number of Short Papers Accepted","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information"}},{"value":"32% - The value is computed by the equation \"Number of Full Papers Accepted \/ Number of Submissions Sent for Review * 100\" and then rounded to a whole number.","order":6,"name":"acceptance_rate_of_full_papers","label":"Acceptance Rate of Full Papers","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information"}},{"value":"3","order":7,"name":"average_number_of_reviews_per_paper","label":"Average Number of Reviews per Paper","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information"}},{"value":"7","order":8,"name":"average_number_of_papers_per_reviewer","label":"Average Number of Papers per Reviewer","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information"}},{"value":"Yes","order":9,"name":"external_reviewers_involved","label":"External Reviewers Involved","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information"}}]}}