Software development has changed from Software as a Product, a finished product that is installed and runs in a computer using the local resources, to Software as a Service, a product usually accessed through a browser that uses remote resourced on the cloud and delivered by licenses with a monthly or yearly fee. The cloud requires infrastructure management and configuration to offer a service. This task was usually associated with system operators, but a software named Infrastructure as Code (IaC), which automates the creation, management, and configuration of full virtual infrastructures, filled the gap between developers and operators. However, there are still some gaps in terms of infrastructural code such as the differences among the configuration of the same infrastructure in different cloud providers. This difference makes it necessary to invest time and effort in migrating a cloud-based application. Besides, there are a lot of different tools for IaC but with different purposes within the DevOps environment. This project aims at providing a framework to enhance the creation of infrastructural code by means of abstract layers that hide the complexities and specificities of a given configuration. The abstraction of the specification for a cloud provider enables the portability of the entire infrastructure to a different cloud provider without modifying the source code. This project delivers a new Domain-specific Language (DSL) built on top of the TOSCA (Topology Orchestration Specification for Cloud Applications) standard along with an Integrated Development Environment (IDE) that to translate the code to several existing IaC tools such as Terraform and Cloudify. The framework provided guides the user through the creation of infrastructural code through suggestions and validations. The creation of infrastructural code approach is based on model-driven engineering by defining nodes and relationships among the components of the infrastructure through the DSL provided. This thesis is divided into three different phases: the design and implementation of the DSL language, the implementation of an IDE to guide the user, and the development of a metamodel through the DSL that is translated to executable infrastructural code.
Lo sviluppo del software è cambiato da Software as a Product, un prodotto finito che viene installato ed eseguito in un computer utilizzando le risorse locali, a Software as a Service, un prodotto di solito accessibile tramite un browser che utilizza risorse remote sul cloud e fornito da licenze con un canone mensile o annuale. Il cloud richiede la gestione e la configurazione dell'infrastruttura per offrire un servizio. Questo compito era solitamente associato agli operatori di sistema, ma un software chiamato Infrastructure as Code (IaC), che automatizza la creazione, la gestione e la configurazione d'infrastrutture virtuali complete, ha colmato il divario tra sviluppatori e operatori. Tuttavia, ci sono ancora alcune lacune in termini di codice infrastrutturale, come le differenze tra la configurazione della stessa infrastruttura in diversi fornitori di cloud. Questa differenza rende necessario investire tempo e sforzi nella migrazione di un'applicazione basata sul cloud. Inoltre, ci sono un sacco di strumenti diversi per IaC ma con scopi diversi all'interno dell'ambiente DevOps. Questo progetto mira a fornire un framework per migliorare la creazione di codice infrastrutturale per mezzo di livelli astratti che nascondono le complessità e le specificità di una data configurazione. L'astrazione delle specifiche di un fornitore di cloud permette la portabilità dell'intera infrastruttura a un diverso fornitore di cloud senza modificare il codice sorgente. Questo progetto fornisce un nuovo Domain-specific Language (DSL) costruito sopra lo standard TOSCA (Topology Orchestration Specification for Cloud Applications) insieme a un Integrated Development Environment (IDE) che traduce il codice in diversi strumenti IaC esistenti come Terraform e Cloudify. Il framework fornito guida l'utente attraverso la creazione di codice infrastrutturale attraverso suggerimenti e convalide. L'approccio alla creazione del codice infrastrutturale è basato sull'ingegneria guidata dal modello, definendo i nodi e le relazioni tra i componenti dell'infrastruttura attraverso il DSL fornito. Questa tesi è divisa in tre diverse fasi: la progettazione e l'implementazione del linguaggio DSL, l'implementazione di un IDE per guidare l'utente, e lo sviluppo di un metamodello attraverso il DSL che viene tradotto in codice infrastrutturale eseguibile.
Design and development of a framework to enhance the portability of cloud-based applications through model-driven engineering
Mendez Ayerbe, Tasio
2020/2021
Abstract
Software development has changed from Software as a Product, a finished product that is installed and runs in a computer using the local resources, to Software as a Service, a product usually accessed through a browser that uses remote resourced on the cloud and delivered by licenses with a monthly or yearly fee. The cloud requires infrastructure management and configuration to offer a service. This task was usually associated with system operators, but a software named Infrastructure as Code (IaC), which automates the creation, management, and configuration of full virtual infrastructures, filled the gap between developers and operators. However, there are still some gaps in terms of infrastructural code such as the differences among the configuration of the same infrastructure in different cloud providers. This difference makes it necessary to invest time and effort in migrating a cloud-based application. Besides, there are a lot of different tools for IaC but with different purposes within the DevOps environment. This project aims at providing a framework to enhance the creation of infrastructural code by means of abstract layers that hide the complexities and specificities of a given configuration. The abstraction of the specification for a cloud provider enables the portability of the entire infrastructure to a different cloud provider without modifying the source code. This project delivers a new Domain-specific Language (DSL) built on top of the TOSCA (Topology Orchestration Specification for Cloud Applications) standard along with an Integrated Development Environment (IDE) that to translate the code to several existing IaC tools such as Terraform and Cloudify. The framework provided guides the user through the creation of infrastructural code through suggestions and validations. The creation of infrastructural code approach is based on model-driven engineering by defining nodes and relationships among the components of the infrastructure through the DSL provided. This thesis is divided into three different phases: the design and implementation of the DSL language, the implementation of an IDE to guide the user, and the development of a metamodel through the DSL that is translated to executable infrastructural code.File | Dimensione | Formato | |
---|---|---|---|
2021_10_Mendez_Ayerbe.pdf
accessibile in internet per tutti
Dimensione
4.99 MB
Formato
Adobe PDF
|
4.99 MB | Adobe PDF | Visualizza/Apri |
I documenti in POLITesi sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.
https://hdl.handle.net/10589/179011