The Infrastructure as Code (IaC) paradigm is gaining attention, because of the advantages that its adoption brings when defining certain kinds of operation, such as configuring the deployment of an application. However, there are still a number of challenges that are preventing a full unleash of all the potential of this approach. In particular, we focus on the Ansible IaC language, for which we observe a lack of an IDE that provides the developers with the necessary high-quality support that they need. The goal of our work is to address this issue and provide the necessary support for the usage of Ansible, to help pushing its adoption. First, we take inspiration from previous works based on Model-Driven approaches and we design an Ansible meta-model, that could be used in the future for providing semantic-based support. While doing so, we introduce a new level of abstraction that logically groups certain elements of the language based on their purpose. Then, we propose an Ansible Domain Specific Language (DSL), based on the Ansible meta-model previously designed, and we bring in it the new level of abstraction introduced to allow the users to better organize their code. We also create an Ansible Editor to use our Ansible DSL, which provides the developers with suggestions and continuous feedback. Furthermore, we observe that using TOSCA and Ansible together represents a powerful combination, and we were not able to find an IDE that gives an adequate level of suggestions for their integrated usage. To address this, we implement this kind of support in our Ansible Editor as well, to make this integration more effective. We bring our innovation into SODALITE, a European project that aims at supporting the deployment of heterogeneous applications. Overall, our work represents a step in the right direction in supporting the adoption of the IaC paradigm, and we believe that both planned and potential future extensions can bring to further useful results.

Il paradigma Infrastructure as Code (IaC) sta guadagnando attenzione, grazie ai vantaggi che la sua adozione porta quando bisogna definire certi tipi di operazione, come la configurazione del deployment di un'applicazione. Tuttavia, ci sono ancora una serie di sfide che impediscono il completo manifestarsi di tutte le potenzialità di questo approccio. In particolare, concentriamo la nostra attenzione sul linguaggio infrastrutturale Ansible, per il quale osserviamo la mancanza di un IDE che fornisca ai developers il necessario supporto di alta qualità di cui necessitano. Lo scopo del nostro lavoro è affrontare questo problema e fornire il supporto necessario all'utilizzo di Ansible, con l'obbiettivo di favorirne l'adozione. In primo luogo, prendiamo ispirazione da precedenti ricerche basate su approcci Model-Driven e progettiamo un meta-modello di Ansible, che potrà essere usato in futuro per offrire un supporto semantic-based. Nel fare questo, introduciamo un nuovo livello di astrazione che raggruppa logicamente certi elementi del linguaggio, in base al loro scopo. In seguito, proponiamo un Ansible Domain Specific Language (DSL), basato sul meta-modello di Ansible precedentemente progettato, e vi portiamo il nuovo livello di astrazione introdotto per permettere agli utenti di organizzare meglio il loro codice. Implementiamo inoltre un Ansible Editor che permetta di usare l'Ansible DSL, e che fornisca ai developers suggerimenti e feedback continui. Inoltre, osserviamo che usare TOSCA e Ansible insieme rappresenta una combinazione potente, e non siamo stati in grado di trovare un IDE che fornisse un adeguato livello di supporto per il loro utilizzo integrato. Per risolvere questo problema, implementiamo anche questo tipo di supporto nel nostro Ansible Editor, rendendo così l'integrazione più efficace. Portiamo la nostra innovazione in SODALITE, un progetto europeo che mira a supportare il deployment di applicazioni eterogenee. Nel complesso, il nostro lavoro rappresenta un passo nella giusta direzione nel supportare l'adozione del paradigma IaC, e crediamo che le estensioni future, tanto quelle pianificate quanto quelle possibili, possano portare a ulteriori risultati utili.

Providing high-quality support for Ansible development. An application to the SODALITE project

IMPERIALI, EMILIO
2019/2020

Abstract

The Infrastructure as Code (IaC) paradigm is gaining attention, because of the advantages that its adoption brings when defining certain kinds of operation, such as configuring the deployment of an application. However, there are still a number of challenges that are preventing a full unleash of all the potential of this approach. In particular, we focus on the Ansible IaC language, for which we observe a lack of an IDE that provides the developers with the necessary high-quality support that they need. The goal of our work is to address this issue and provide the necessary support for the usage of Ansible, to help pushing its adoption. First, we take inspiration from previous works based on Model-Driven approaches and we design an Ansible meta-model, that could be used in the future for providing semantic-based support. While doing so, we introduce a new level of abstraction that logically groups certain elements of the language based on their purpose. Then, we propose an Ansible Domain Specific Language (DSL), based on the Ansible meta-model previously designed, and we bring in it the new level of abstraction introduced to allow the users to better organize their code. We also create an Ansible Editor to use our Ansible DSL, which provides the developers with suggestions and continuous feedback. Furthermore, we observe that using TOSCA and Ansible together represents a powerful combination, and we were not able to find an IDE that gives an adequate level of suggestions for their integrated usage. To address this, we implement this kind of support in our Ansible Editor as well, to make this integration more effective. We bring our innovation into SODALITE, a European project that aims at supporting the deployment of heterogeneous applications. Overall, our work represents a step in the right direction in supporting the adoption of the IaC paradigm, and we believe that both planned and potential future extensions can bring to further useful results.
ING - Scuola di Ingegneria Industriale e dell'Informazione
28-apr-2021
2019/2020
Il paradigma Infrastructure as Code (IaC) sta guadagnando attenzione, grazie ai vantaggi che la sua adozione porta quando bisogna definire certi tipi di operazione, come la configurazione del deployment di un'applicazione. Tuttavia, ci sono ancora una serie di sfide che impediscono il completo manifestarsi di tutte le potenzialità di questo approccio. In particolare, concentriamo la nostra attenzione sul linguaggio infrastrutturale Ansible, per il quale osserviamo la mancanza di un IDE che fornisca ai developers il necessario supporto di alta qualità di cui necessitano. Lo scopo del nostro lavoro è affrontare questo problema e fornire il supporto necessario all'utilizzo di Ansible, con l'obbiettivo di favorirne l'adozione. In primo luogo, prendiamo ispirazione da precedenti ricerche basate su approcci Model-Driven e progettiamo un meta-modello di Ansible, che potrà essere usato in futuro per offrire un supporto semantic-based. Nel fare questo, introduciamo un nuovo livello di astrazione che raggruppa logicamente certi elementi del linguaggio, in base al loro scopo. In seguito, proponiamo un Ansible Domain Specific Language (DSL), basato sul meta-modello di Ansible precedentemente progettato, e vi portiamo il nuovo livello di astrazione introdotto per permettere agli utenti di organizzare meglio il loro codice. Implementiamo inoltre un Ansible Editor che permetta di usare l'Ansible DSL, e che fornisca ai developers suggerimenti e feedback continui. Inoltre, osserviamo che usare TOSCA e Ansible insieme rappresenta una combinazione potente, e non siamo stati in grado di trovare un IDE che fornisse un adeguato livello di supporto per il loro utilizzo integrato. Per risolvere questo problema, implementiamo anche questo tipo di supporto nel nostro Ansible Editor, rendendo così l'integrazione più efficace. Portiamo la nostra innovazione in SODALITE, un progetto europeo che mira a supportare il deployment di applicazioni eterogenee. Nel complesso, il nostro lavoro rappresenta un passo nella giusta direzione nel supportare l'adozione del paradigma IaC, e crediamo che le estensioni future, tanto quelle pianificate quanto quelle possibili, possano portare a ulteriori risultati utili.
File allegati
File Dimensione Formato  
2021_04_Imperiali.pdf

accessibile in internet solo dagli utenti autorizzati

Descrizione: Text of the Thesis
Dimensione 2.39 MB
Formato Adobe PDF
2.39 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/175744