A Knowledge-based Approach for Guided Development of Infrastructure-as-Code
This program is tentative and subject to change.
Infrastructure as Code (IaC) uses versionable software code to define, deploy, and configure physical computational resources, software execution platforms, and applications. As a result, IaC enables the scalable management of complex computing environments while preventing environment drift. IaC frameworks typically offer specific languages such as the industrial Terraform, Ansible, Chef, or TOSCA—standing for Topology and Orchestration Specification for Cloud Applications—the OASIS (Organization for the Advancement of Structured Information Standards) open standard approach to IaC. Developing high-quality IaC for deploying and managing applications demands expertise and knowledge in specific IaC languages, infrastructure resources, resource providers, quality issues in IaC scripts, and so on. While several model-driven engineering (MDE) approaches have been proposed to simplify IaC development, they cannot capture and use expert knowledge to assist with modeling tasks and MDE processes by providing interactive recommendations. This paper presents a knowledge-based framework for guiding the model-driven development of IaC. We use TOSCA as the target IaC language as it is an open standard. We enable IaC and resource experts to share their IaC and resource-related knowledge with application operational experts to help simplify the development of application deployment models. We use an ontology to record the relevant deployment knowledge and ontology reasoning to implement modeling guidance capabilities such as TOSCA model auto-completion, code smell and error detection, and model element matchmaking. We show the flexibility of our methodology by applying it to three industrial applications, covering cloud, edge, and HPC (High-Performance Computing) domains. Moreover, we also assess the use acceptance of our approach and framework by conducting controlled experiments with expert and non-expert IaC users. The results indicate that our method can simplify IaC development by providing appropriate recommendations.
This program is tentative and subject to change.
Thu 9 OctDisplayed time zone: Eastern Time (US & Canada) change
11:00 - 12:30 | Session 6: Models in Software Engineering PipelinesResearch Papers / Journal-First at DCIH 102 Hybrid | ||
11:00 18mTalk | A Metamodel for Reengineering CI/CD PipelinesFT Research Papers Hugo da Gião University of Porto & HASLab/INESC TEC, Jácome Cunha Universidade do Porto, Rui Pereira HASLab/INESC TEC, André Flores Faculdade de Engenharia da Universidade do Porto, Vasco Amaral NOVA University Lisbon, Gregor Engels Paderborn University, Stefan Sauer Paderborn University | Software Innovation Campus Paderborn | ||
11:18 18mTalk | Deepening our Understanding on the use of Models and Code in Game Software Engineering: A Controlled Experiment in Unreal Engine Research Papers Jose Ignacio Trasobares SVIT Research Group, Universidad San Jorge, África Domingo SVIT Research Group, Universidad San Jorge, Jorge Echeverria SVIT Research Group, Universidad San Jorge, Lorena Arcega SVIT Research Group, Universidad San Jorge, Carlos Cetina | ||
11:36 18mTalk | Automating the Development of API-Based Generators Using Code Idioms Mining Journal-First DOI | ||
11:54 18mTalk | A Knowledge-based Approach for Guided Development of Infrastructure-as-Code Journal-First Zoe Vasileiou , Indika Kumara Tilburg University, Georgios Meditskos , Kamil Tokmakov , Dragan Radolovic , Jesus Gorronogoitia-Cruz , Elisabeta di Nitto Politecnico di Milano, Damian Andrew Tamburri University of Sannio - JADS/NXP Semiconductors, Willem-Jan van den Heuvel JADS/Tilburg University, Stefanos Vrochidis Centre for Research and Technology Hellas (CERTH-ITI) DOI | ||
12:12 18mTalk | Hand-Written Code Preservation in Model-to-Text Transformation using Intrinsic Redundancy Research Papers Ionut Predoaia University of York, Sultan Almutairi Shaqra University, Athanasios Zolotas Rolls-Royce, Antonio Garcia-Dominguez Department of Computer Science, University of York, Dimitris Kolovos University of York |