Infrastructure as Code (IaC) is a process that enables developers to provision and manage infrastructure resources through code rather than manually intervening. This paradigm has grown in popularity in recent years as it addresses the issue of inconsistency, which occurs when different people want to use the same configuration on different machines, a problem that cloud computing struggles to address. However, several impediments to IaC adoption exist, including a dispersed field of technologies and a lack of support within existing tools. SODALITE, a European project, aims to address these issues by providing an end-to-end solution for the deployment of a complex application. In this context, Ansible DSL, an abstraction of Ansible, and Ansible editor, a text editor, have been implemented to aid in the operationalization of the cloud application. The contribution of this thesis is to extend the features of the Ansible editor in multiple directions. More specifically, we integrate disparate information sources into the Ansible editor to provide a large spectrum of information to the developers and enable direct access to preexisting, reusable elements, such as Ansible content, and TOSCA models. In this way, the Ansible editor exploits the nested information to provide semantic suggestions, validation mechanisms and code smell detection utilities to the developers, that ensure the quality of the Ansible scripts and lower the development costs. Our second contribution is the seamless integration of the various phases of an application's deployment procedure into a single approach. More specifically, we enable smooth continuity between resource provisioning, which in SODALITE is performed by executing a deployment model written in the TOSCA language, and the creation and configuration of software layers on top of the provisioned resources, which in SODALITE is performed through the execution of Ansible scripts. Overall, our approach enhances an already innovative development environment with features not available in other tools on the market, thereby moving the IaC paradigm one step closer to adoption.

Infrastructure as Code (IaC) è un processo che consente agli sviluppatori di fornire e gestire le risorse dell'infrastruttura tramite codice anziché intervenire manualmente. Questo paradigma è diventato popolare negli ultimi anni poiché affronta il problema dell'incoerenza, che si verifica quando persone diverse vogliono utilizzare la stessa configurazione su macchine diverse, un problema che il cloud computing fatica ad affrontare. Tuttavia, esistono diversi ostacoli all'adozione dell'IaC, tra cui un campo di tecnologie disperso e la mancanza di supporto all'interno degli strumenti esistenti. SODALITE, un progetto europeo, mira ad affrontare questi problemi fornendo una soluzione end-to-end per l'implementazione di un'applicazione complessa. In questo contesto, Ansible DSL, un'astrazione di Ansible, e Ansible editor, un editor di testo, sono stati implementati per facilitare l'operazionalizzazione dell'applicazione cloud. Il contributo di questa tesi è di estendere le caratteristiche dell'editor Ansible in più direzioni. Più specificamente, integriamo diverse fonti di informazioni nell'editor Ansible per fornire un ampio spettro di informazioni agli sviluppatori e consentire l'accesso diretto a elementi preesistenti e riutilizzabili, come i contenuti Ansible e i modelli TOSCA. In questo modo, l'editor di Ansible sfrutta le informazioni nidificate per fornire agli sviluppatori suggerimenti semantici, meccanismi di convalida e utilità di rilevamento dell'odore del codice, che garantiscono la qualità degli script Ansible e riducono i costi di sviluppo. Il nostro secondo contributo è la perfetta integrazione delle varie fasi della procedura di distribuzione di un'applicazione in un unico approccio. Più specificamente, consentiamo una continuità regolare tra il provisioning delle risorse, che in SODALITE viene eseguito eseguendo un modello di distribuzione scritto nel linguaggio TOSCA, e la creazione e configurazione di livelli software in aggiunta alle risorse fornite, che in SODALITE viene eseguita attraverso l'esecuzione di script Ansible. Nel complesso, il nostro approccio migliora un ambiente di sviluppo già innovativo con funzionalità non disponibili in altri strumenti sul mercato, avvicinando così il paradigma IaC all'adozione.

Supporting the development of infrastructure as code using Ansible : a smart IDE integrating external sources

Bachras, Michail
2020/2021

Abstract

Infrastructure as Code (IaC) is a process that enables developers to provision and manage infrastructure resources through code rather than manually intervening. This paradigm has grown in popularity in recent years as it addresses the issue of inconsistency, which occurs when different people want to use the same configuration on different machines, a problem that cloud computing struggles to address. However, several impediments to IaC adoption exist, including a dispersed field of technologies and a lack of support within existing tools. SODALITE, a European project, aims to address these issues by providing an end-to-end solution for the deployment of a complex application. In this context, Ansible DSL, an abstraction of Ansible, and Ansible editor, a text editor, have been implemented to aid in the operationalization of the cloud application. The contribution of this thesis is to extend the features of the Ansible editor in multiple directions. More specifically, we integrate disparate information sources into the Ansible editor to provide a large spectrum of information to the developers and enable direct access to preexisting, reusable elements, such as Ansible content, and TOSCA models. In this way, the Ansible editor exploits the nested information to provide semantic suggestions, validation mechanisms and code smell detection utilities to the developers, that ensure the quality of the Ansible scripts and lower the development costs. Our second contribution is the seamless integration of the various phases of an application's deployment procedure into a single approach. More specifically, we enable smooth continuity between resource provisioning, which in SODALITE is performed by executing a deployment model written in the TOSCA language, and the creation and configuration of software layers on top of the provisioned resources, which in SODALITE is performed through the execution of Ansible scripts. Overall, our approach enhances an already innovative development environment with features not available in other tools on the market, thereby moving the IaC paradigm one step closer to adoption.
ING - Scuola di Ingegneria Industriale e dell'Informazione
28-apr-2022
2020/2021
Infrastructure as Code (IaC) è un processo che consente agli sviluppatori di fornire e gestire le risorse dell'infrastruttura tramite codice anziché intervenire manualmente. Questo paradigma è diventato popolare negli ultimi anni poiché affronta il problema dell'incoerenza, che si verifica quando persone diverse vogliono utilizzare la stessa configurazione su macchine diverse, un problema che il cloud computing fatica ad affrontare. Tuttavia, esistono diversi ostacoli all'adozione dell'IaC, tra cui un campo di tecnologie disperso e la mancanza di supporto all'interno degli strumenti esistenti. SODALITE, un progetto europeo, mira ad affrontare questi problemi fornendo una soluzione end-to-end per l'implementazione di un'applicazione complessa. In questo contesto, Ansible DSL, un'astrazione di Ansible, e Ansible editor, un editor di testo, sono stati implementati per facilitare l'operazionalizzazione dell'applicazione cloud. Il contributo di questa tesi è di estendere le caratteristiche dell'editor Ansible in più direzioni. Più specificamente, integriamo diverse fonti di informazioni nell'editor Ansible per fornire un ampio spettro di informazioni agli sviluppatori e consentire l'accesso diretto a elementi preesistenti e riutilizzabili, come i contenuti Ansible e i modelli TOSCA. In questo modo, l'editor di Ansible sfrutta le informazioni nidificate per fornire agli sviluppatori suggerimenti semantici, meccanismi di convalida e utilità di rilevamento dell'odore del codice, che garantiscono la qualità degli script Ansible e riducono i costi di sviluppo. Il nostro secondo contributo è la perfetta integrazione delle varie fasi della procedura di distribuzione di un'applicazione in un unico approccio. Più specificamente, consentiamo una continuità regolare tra il provisioning delle risorse, che in SODALITE viene eseguito eseguendo un modello di distribuzione scritto nel linguaggio TOSCA, e la creazione e configurazione di livelli software in aggiunta alle risorse fornite, che in SODALITE viene eseguita attraverso l'esecuzione di script Ansible. Nel complesso, il nostro approccio migliora un ambiente di sviluppo già innovativo con funzionalità non disponibili in altri strumenti sul mercato, avvicinando così il paradigma IaC all'adozione.
File allegati
File Dimensione Formato  
Executive_Summary_2022_04_Bachras.pdf

accessibile in internet per tutti

Descrizione: Executive summary of the thesis
Dimensione 399.86 kB
Formato Adobe PDF
399.86 kB Adobe PDF Visualizza/Apri
2022_04_Bachras.pdf

accessibile in internet per tutti

Descrizione: Text of the thesis
Dimensione 3.45 MB
Formato Adobe PDF
3.45 MB Adobe PDF Visualizza/Apri

I documenti in POLITesi sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/10589/186846