In the modern software landscape, cloud computing has emerged as the go-to hosting solution for enterprise applications, providing customers with virtually unlimited access to computing, storage, and networking resources. These resources, managed by cloud providers and accessible through the Internet, are best leveraged through the DevOps methodology. DevOps integrates development and operations into a cohesive workflow composed of many distinct phases: development, provisioning, deployment, monitoring, and more. Infrastructure as Code (IaC) and DevOps tools work in tandem to ensure solution reliability, traceability, and replicability. The DevOps Modeling Language (DOML) is an all-in-one solution that enables the definition of both application components and their underlying infrastructure in a single model, mapping components to infrastructural elements. DOML is a model-based language built on the Eclipse Modeling Framework. DOML models are translated into IaC through the Infrastructural Code Generator (ICG). Microservices have become the architecture of choice for cloud applications. Using micro-services, the application's features are broken down into small, containerized features. The use of small, isolated services is the main advantage of the architecture, speeding up development and testing and simplifying deployment and version management. However, this approach results in the use of a large number of containers, even for small applications, making the container's lifecycle management very complex. For this reason, Container Orchestrators, platforms that manage the state and lifecycle of multiple containers, have become fundamental for any cloud application. Kubernetes, the leading container orchestration platform, is widely adopted in the cloud due to its powerful abstractions, replication capabilities, and scaling features. This thesis extends DOML through the DOML-E extension mechanism, introducing Kubernetes support in the form of AWS Elastic Kubernetes Service (EKS), and accordingly extends the Infrastructural Code Generator. The result is DOML-K8s, a version of DOML capable of defining Kubernetes clusters and deploying applications on them. Key contributions include the development of DOML-K8s, the validation of DOML-E, and the extension and validation of the ICG. The thesis rigorously tests DOML-K8s through real-world examples, demonstrating its ability to create and deploy complex and scalable applications. Finally, it assesses the capabilities of DOML-K8s and discusses potential future developments for the language.
Nel panorama software moderno, il cloud computing è emerso come la soluzione di hosting preferita per le applicazioni aziendali, offrendo ai clienti un accesso virtualmente illimitato a risorse di calcolo, archiviazione e rete. Queste risorse, gestite dai provider cloud e accessibili tramite Internet, sono sfruttate al meglio tramite la metodologia DevOps. DevOps integra development e operation in un flusso di lavoro coeso composto da fasi distinte: development, provisioning, deployment, monitoring e altro. Gli strumenti Infrastructure as Code (IaC) e DevOps lavorano in tandem per garantire affidabilità, tracciabilità e replicabilità delle soluzioni. Il DevOps Modeling Language (DOML) è uno strumento di DevOps all-in-one che consente la definizione sia dei componenti dell'applicazione che della loro infrastruttura sottostante in un singolo modello, mappando i componenti agli elementi infrastrutturali. DOML è un linguaggio model-based costruito sull'Eclipse Modeling Framework. I modelli DOML vengono tradotti in IaC tramite un parser Template-Based noto come Infrastructural Code Generator (ICG). I microservizi sono diventati l'architettura preferita per le applicazioni cloud. Utilizzando i microservizi, le funzionalità dell'applicazione vengono suddivise in piccoli servizi containerizzati. L'uso di servizi isolati rappresenta il vantaggio principale dell'architettura, velocizzando lo sviluppo e il testing, e semplifica il deployment e la gestione delle versioni. Tuttavia, questo approccio comporta l'uso di un gran numero di container, anche per piccole applicazioni, rendendo molto complessa la gestione del ciclo di vita dei contianer. Per questo motivo, i Container Orchestrator, piattaforme che gestiscono lo stato e il ciclo di vita di più containers, sono diventati fondamentali per qualsiasi applicazione cloud. Kubernetes, la principale piattaforma di orchestrazione dei container, è ampiamente adottata nel cloud grazie all'alto livello di astrazione e alle potenti capacità di replicazione e di scalabilità. Questa tesi estende DOML tramite il meccanismo di estensione DOML-E, introducendo il supporto per Kubernetes sotto forma di AWS Elastic Kubernetes Service (EKS), e di conseguenza estende l'Infrastructural Code Generator. Il risultato è DOML-K8s, una versione di DOML in grado di definire cluster Kubernetes e deployare applicazioni su di essi. I contributi chiave includono lo sviluppo di DOML-K8s, la validazione di DOML-E e l'estensione e la validazione dell'ICG. La tesi testa rigorosamente DOML-K8s attraverso esempi del mondo reale, dimostrando la sua capacità di creare applicazioni complesse e scalabili. Infine, valuta le capacità di DOML-K8s e discute i potenziali sviluppi futuri per il linguaggio.
Extending DevOps modeling language to support Kubernetes
Pirrotta, Andrea
2024/2025
Abstract
In the modern software landscape, cloud computing has emerged as the go-to hosting solution for enterprise applications, providing customers with virtually unlimited access to computing, storage, and networking resources. These resources, managed by cloud providers and accessible through the Internet, are best leveraged through the DevOps methodology. DevOps integrates development and operations into a cohesive workflow composed of many distinct phases: development, provisioning, deployment, monitoring, and more. Infrastructure as Code (IaC) and DevOps tools work in tandem to ensure solution reliability, traceability, and replicability. The DevOps Modeling Language (DOML) is an all-in-one solution that enables the definition of both application components and their underlying infrastructure in a single model, mapping components to infrastructural elements. DOML is a model-based language built on the Eclipse Modeling Framework. DOML models are translated into IaC through the Infrastructural Code Generator (ICG). Microservices have become the architecture of choice for cloud applications. Using micro-services, the application's features are broken down into small, containerized features. The use of small, isolated services is the main advantage of the architecture, speeding up development and testing and simplifying deployment and version management. However, this approach results in the use of a large number of containers, even for small applications, making the container's lifecycle management very complex. For this reason, Container Orchestrators, platforms that manage the state and lifecycle of multiple containers, have become fundamental for any cloud application. Kubernetes, the leading container orchestration platform, is widely adopted in the cloud due to its powerful abstractions, replication capabilities, and scaling features. This thesis extends DOML through the DOML-E extension mechanism, introducing Kubernetes support in the form of AWS Elastic Kubernetes Service (EKS), and accordingly extends the Infrastructural Code Generator. The result is DOML-K8s, a version of DOML capable of defining Kubernetes clusters and deploying applications on them. Key contributions include the development of DOML-K8s, the validation of DOML-E, and the extension and validation of the ICG. The thesis rigorously tests DOML-K8s through real-world examples, demonstrating its ability to create and deploy complex and scalable applications. Finally, it assesses the capabilities of DOML-K8s and discusses potential future developments for the language.File | Dimensione | Formato | |
---|---|---|---|
Extending_DevOps_Modeling_Language_to_support_Kubernetes.pdf
accessibile in internet per tutti
Descrizione: Tesi
Dimensione
3.82 MB
Formato
Adobe PDF
|
3.82 MB | Adobe PDF | Visualizza/Apri |
Extending_DevOps_Modeling_Language_to_support_Kubernetes__Executive_Summary.pdf
accessibile in internet per tutti
Descrizione: Executive Summary
Dimensione
709.69 kB
Formato
Adobe PDF
|
709.69 kB | 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/234677