{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,3,17]],"date-time":"2026-03-17T23:21:49Z","timestamp":1773789709982,"version":"3.50.1"},"publisher-location":"Cham","reference-count":31,"publisher":"Springer Nature Switzerland","isbn-type":[{"value":"9783031345593","type":"print"},{"value":"9783031345609","type":"electronic"}],"license":[{"start":{"date-parts":[[2023,1,1]],"date-time":"2023-01-01T00:00:00Z","timestamp":1672531200000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0"},{"start":{"date-parts":[[2023,6,8]],"date-time":"2023-06-08T00:00:00Z","timestamp":1686182400000},"content-version":"vor","delay-in-days":158,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0"}],"content-domain":{"domain":["link.springer.com"],"crossmark-restriction":false},"short-container-title":[],"published-print":{"date-parts":[[2023]]},"abstract":"<jats:title>Abstract<\/jats:title>\n          <jats:p>One of the main DevOps practices is the automation of resource provisioning and deployment of complex software. This automation is enabled by the explicit definition of <jats:italic>Infrastructure-as-Code<\/jats:italic> (IaC), i.e., a set of scripts, often written in different modelling languages, which defines the infrastructure and applications to be deployed.<\/jats:p>\n          <jats:p>We introduce the DevOps Modelling Language (DOML), a new Cloud modelling language for infrastructure deployments. DOML is a modelling approach that can be mapped into multiple IaC languages, addressing infrastructure provisioning, application deployment and configuration at once. The idea behind DOML is to use a single modelling paradigm which can help to reduce the need of deep technical expertise in using different specialised IaC languages.<\/jats:p>\n          <jats:p>We present the DOML\u2019s principles and discuss the related work on IaC languages. We demonstrate the DOML advantages for the end-user in comparison with state-of-the-art IaC languages such as Ansible, Terraform, and Cloudify, and show its effectiveness through an example.<\/jats:p>","DOI":"10.1007\/978-3-031-34560-9_18","type":"book-chapter","created":{"date-parts":[[2023,6,7]],"date-time":"2023-06-07T01:05:06Z","timestamp":1686099906000},"page":"297-313","update-policy":"https:\/\/doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":6,"title":["DOML: A New Modelling Approach to Infrastructure-as-Code"],"prefix":"10.1007","author":[{"ORCID":"https:\/\/orcid.org\/0000-0001-7742-9233","authenticated-orcid":false,"given":"Michele","family":"Chiari","sequence":"first","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0003-4065-5557","authenticated-orcid":false,"given":"Bin","family":"Xiang","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0001-5397-3808","authenticated-orcid":false,"given":"Galia Novakova","family":"Nedeltcheva","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0003-3422-5171","authenticated-orcid":false,"given":"Elisabetta","family":"Di Nitto","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-8709-522X","authenticated-orcid":false,"given":"Lorenzo","family":"Blasi","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Debora","family":"Benedetto","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Laurentiu","family":"Niculut","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"297","published-online":{"date-parts":[[2023,6,8]]},"reference":[{"key":"18_CR1","unstructured":"Aho, A.V., Lam, M.S., Sethi, R., Ullman, J.D.: Compilers: Principles, Techniques, & Tools. Pearson Education India, Noida (2007)"},{"key":"18_CR2","unstructured":"Amazon Web Services Inc: AWS EC2 (2022). https:\/\/aws.amazon.com\/ec2\/"},{"key":"18_CR3","unstructured":"Apache software foundation: the apache velocity project (2022). https:\/\/velocity.apache.org\/"},{"key":"18_CR4","doi-asserted-by":"crossref","unstructured":"Artac, M., Borov\u0161ak, T., Di Nitto, E., Guerriero, M., Perez-Palacin, D., Tamburri, D.A.: Infrastructure-as-Code for data-intensive architectures: a model-driven development approach. In: Proceedings ICSA 2018, pp. 156\u2013165 (2018)","DOI":"10.1109\/ICSA.2018.00025"},{"key":"18_CR5","doi-asserted-by":"publisher","unstructured":"Bergmayr, A., et al.: A systematic review of cloud modeling languages. ACM Comput. Surv. 51(1) (2018). https:\/\/doi.org\/10.1145\/3150227","DOI":"10.1145\/3150227"},{"key":"18_CR6","doi-asserted-by":"publisher","unstructured":"Rebou\u00e7as de Carvalho, L., Favacho de Ara\u00fajo, A.P.: Performance comparison of terraform and cloudify as multicloud orchestrators. In: Proceedings CCGRID 2020, pp. 380\u2013389. IEEE (2020). https:\/\/doi.org\/10.1109\/CCGrid49817.2020.00-55","DOI":"10.1109\/CCGrid49817.2020.00-55"},{"key":"18_CR7","doi-asserted-by":"publisher","unstructured":"Chared, Z., Tyszberowicz, S.S.: Projective template-based code generation. In: CAiSE Forum, pp. 81\u201387 (2013) https:\/\/doi.org\/10.1109\/ACIT-CSII-BCD.2016.023","DOI":"10.1109\/ACIT-CSII-BCD.2016.023"},{"key":"18_CR8","unstructured":"Chef: Chef infra: powerful policy-based configuration management system software (2022). https:\/\/www.chef.io\/products\/chef-infra"},{"key":"18_CR9","unstructured":"CNCF: Kubernetes (2022). https:\/\/kubernetes.io\/"},{"key":"18_CR10","doi-asserted-by":"crossref","unstructured":"Colantoni, A., Berardinelli, L., Wimmer, M.: DevOpsML: towards modeling DevOps processes and platforms. In: Proceedings. MODELS 2020, ACM (2020)","DOI":"10.1145\/3417990.3420203"},{"key":"18_CR11","unstructured":"Docker: docker (2022). https:\/\/www.docker.com\/"},{"key":"18_CR12","unstructured":"Eclipse foundation: acceleo home page (2022). https:\/\/www.eclipse.org\/acceleo\/"},{"key":"18_CR13","unstructured":"Eclipse foundation: eclipse modeling framework (EMF) (2022). https:\/\/www.eclipse.org\/modeling\/emf\/"},{"key":"18_CR14","unstructured":"Eclipse foundation: Xtext (2022). https:\/\/www.eclipse.org\/Xtext\/"},{"key":"18_CR15","unstructured":"F5 Inc: nginx (2022). https:\/\/www.nginx.com\/"},{"key":"18_CR16","unstructured":"HashiCorp Inc: Terraform documentation (2022). https:\/\/www.terraform.io\/docs"},{"key":"18_CR17","doi-asserted-by":"crossref","unstructured":"Luhunu, L., Syriani, E.: Comparison of the expressiveness and performance of template-based code generation tools. In: Proceedings SLE 2017, pp. 206\u2013216. ACM (2017)","DOI":"10.1145\/3136014.3136021"},{"key":"18_CR18","unstructured":"Miell, I., Sayers, A.: Docker in Practice. Simon and Schuster, New York (2019)"},{"key":"18_CR19","unstructured":"Pagel, M., et al.: PyEcore\/PyEcore: a Python(NIC) implementation of EMF\/Ecore (Eclipse Modeling Framework) (2022). https:\/\/github.com\/pyecore\/pyecore"},{"key":"18_CR20","unstructured":"Morris, K.: Infrastructure as Code. O\u2019Reilly Media, Sebastopol (2016)"},{"key":"18_CR21","unstructured":"OASIS standard: topology and orchestration specification for cloud applications version 1.0 (2013)"},{"key":"18_CR22","unstructured":"Puppet Inc: puppet (2022). https:\/\/puppet.com\/"},{"key":"18_CR23","unstructured":"Red Hat Inc: ansible documentation (2022). https:\/\/docs.ansible.com\/"},{"issue":"5","key":"18_CR24","doi-asserted-by":"publisher","first-page":"19","DOI":"10.1109\/MS.2003.1231146","volume":"20","author":"B Selic","year":"2003","unstructured":"Selic, B.: The pragmatics of model-driven development. IEEE Softw. 20(5), 19\u201325 (2003)","journal-title":"IEEE Softw."},{"key":"18_CR25","unstructured":"SODALITE Consortium: SODALITE: software defined application infrastructures management and engineering (2022). https:\/\/sodalite.eu\/"},{"key":"18_CR26","unstructured":"The OpenStack project: OpenStack (2022). https:\/\/www.openstack.org\/"},{"key":"18_CR27","unstructured":"The pallets project: Jinja (2022). https:\/\/jinja.palletsprojects.com\/"},{"key":"18_CR28","unstructured":"The PIACERE Project: IaC artefacts repository (2022). https:\/\/github.com\/michiari\/DOML-case-study"},{"key":"18_CR29","unstructured":"The PIACERE project: PIACERE DevSecOps modelling language (DOML) (2022). https:\/\/www.piacere-doml.deib.polimi.it\/"},{"key":"18_CR30","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"294","DOI":"10.1007\/978-3-030-45989-5_26","volume-title":"Service-Oriented Computing","author":"M Wurster","year":"2020","unstructured":"Wurster, M., et al.: The EDMM modeling and transformation system. In: Yangui, S., et al. (eds.) ICSOC 2019. LNCS, vol. 12019, pp. 294\u2013298. Springer, Cham (2020). https:\/\/doi.org\/10.1007\/978-3-030-45989-5_26"},{"key":"18_CR31","doi-asserted-by":"publisher","unstructured":"Xiang, B., Di Nitto, E., Nedeltcheva, G.N.: Deliverable D3.2 PIACERE abstractions, DOML and DOML-E - v2 (2023). https:\/\/doi.org\/10.5281\/zenodo.7645687","DOI":"10.5281\/zenodo.7645687"}],"container-title":["Lecture Notes in Computer Science","Advanced Information Systems Engineering"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1007\/978-3-031-34560-9_18","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,9,5]],"date-time":"2025-09-05T17:43:55Z","timestamp":1757094235000},"score":1,"resource":{"primary":{"URL":"https:\/\/link.springer.com\/10.1007\/978-3-031-34560-9_18"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2023]]},"ISBN":["9783031345593","9783031345609"],"references-count":31,"URL":"https:\/\/doi.org\/10.1007\/978-3-031-34560-9_18","relation":{},"ISSN":["0302-9743","1611-3349"],"issn-type":[{"value":"0302-9743","type":"print"},{"value":"1611-3349","type":"electronic"}],"subject":[],"published":{"date-parts":[[2023]]},"assertion":[{"value":"8 June 2023","order":1,"name":"first_online","label":"First Online","group":{"name":"ChapterHistory","label":"Chapter History"}},{"value":"CAiSE","order":1,"name":"conference_acronym","label":"Conference Acronym","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"International Conference on Advanced Information Systems Engineering","order":2,"name":"conference_name","label":"Conference Name","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"Zaragoza","order":3,"name":"conference_city","label":"Conference City","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"Spain","order":4,"name":"conference_country","label":"Conference Country","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"2023","order":5,"name":"conference_year","label":"Conference Year","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"12 June 2023","order":7,"name":"conference_start_date","label":"Conference Start Date","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"16 June 2023","order":8,"name":"conference_end_date","label":"Conference End Date","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"35","order":9,"name":"conference_number","label":"Conference Number","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"caise2023","order":10,"name":"conference_id","label":"Conference ID","group":{"name":"ConferenceInfo","label":"Conference Information"}}]}}