Being able to make fast changes to a codebase and deploying them as quickly as possible, is a more and more important aspect of software development. For this reason, finding a way to setup the workflow in such a fashion that it allows fast contributions and great collaboration, is such an important feature of a well-structured project. Once these contributions have been made, they need to be deployed in order to be used: depending on the adopted framework, workflow and programming languages involved, this process may vary a lot. In this thesis, the goal is to create an automated deployment pipeline for a webMethods Integration Server, in order to distribute the code as fast as possible and require a low number of manual tasks to be performed. One of the main focuses of the this work is to keep the final solution simple to use, making it easy to understand and manage. Starting from the explanation of the tools involved and of the structure of the project, an analysis is then made on the state of the art, useful to understand which tools are necessary for the development of the new solution. The design and implementation then try to keep the solution simple and straightforward, mainly developing automation scripts that can prevent developers from wasting time doing those tasks themselves. Finally, using Jenkins as a CI/CD tool, a pipeline is developed, which can start automatically when a push is done inside the GitHub repository. In order to make this process replicable the thesis goes over the process of allowing a correct setup, explaining also the decisions made during the development. The final result is an easy-to-use pipeline, that starts from the merge of the required branches up to the deployment of the codebase into the target servers where the webMethods Integration Servers are running.

Essere in grado di fare cambi rapidi in una codebase e rilasciarli il più velocemente possibile, è un aspetto sempre più importante dello sviluppo software. Per questa ragione, cercare un modo per impostare il flusso di lavoro in modo che permetta contributi rapidi e una buona collaborazione, è una caratteristica importante di un progetto ben strutturato. Una volta che questi contributi sono stati effettuati, necessitano di essere rilasciati per poter essere usati: in bas al framework, flusso di lavoro e linguaggio di programmazione impiegato, questo processo può variare molto. In questa tesi, l'obiettivo è di creare una pipeline di rilascio automatico per un Integration Server di webMethods, in modo da distribuire velocemente il codice e richiedere l'esecuzione un basso numero di attività manuali. Uno degli obiettivi principali di questo lavoro è di mantenere la soluzione finale facile da utilizzare, rendendola semplice da capire e gestire. Partendo dalla spiegazione degli strumenti impiegati e della struttura del progetto, viene poi fatta un'analisi dello stato dell'arte, utile per capire quali strumenti siano necessari per lo sviluppo della nuova soluzione. Il design e l'implementazione cercano poi di mantenere la soluzione semplice e diretta, principalmente sviluppando script di automazione che permettano agli sviluppatori di evitare di perdere tempo svolgendo quelle attività. Infine, usando Jenkins come strumento per la CI/CD, è stata sviluppata una pipeline in grado di partire automaticamente quando viene fatta una push nella repository GitHub. Per rendere questo processo replicabile questa tesi mostra come effettuare una configurazione corretta, spiegando anche le decisione che sono state prese durante lo sviluppo. Il risultato finale è una pipeline semplice da usare, che inizia dalla merge dei branch richiesti e finisce con il rilascio del codice nei server dove sono in esecuzione gli Integration Server webMethods.

CI/CD - Automation of the Deployment Process in an Integration Server

Scandale, Francesco
2022/2023

Abstract

Being able to make fast changes to a codebase and deploying them as quickly as possible, is a more and more important aspect of software development. For this reason, finding a way to setup the workflow in such a fashion that it allows fast contributions and great collaboration, is such an important feature of a well-structured project. Once these contributions have been made, they need to be deployed in order to be used: depending on the adopted framework, workflow and programming languages involved, this process may vary a lot. In this thesis, the goal is to create an automated deployment pipeline for a webMethods Integration Server, in order to distribute the code as fast as possible and require a low number of manual tasks to be performed. One of the main focuses of the this work is to keep the final solution simple to use, making it easy to understand and manage. Starting from the explanation of the tools involved and of the structure of the project, an analysis is then made on the state of the art, useful to understand which tools are necessary for the development of the new solution. The design and implementation then try to keep the solution simple and straightforward, mainly developing automation scripts that can prevent developers from wasting time doing those tasks themselves. Finally, using Jenkins as a CI/CD tool, a pipeline is developed, which can start automatically when a push is done inside the GitHub repository. In order to make this process replicable the thesis goes over the process of allowing a correct setup, explaining also the decisions made during the development. The final result is an easy-to-use pipeline, that starts from the merge of the required branches up to the deployment of the codebase into the target servers where the webMethods Integration Servers are running.
ING - Scuola di Ingegneria Industriale e dell'Informazione
19-dic-2023
2022/2023
Essere in grado di fare cambi rapidi in una codebase e rilasciarli il più velocemente possibile, è un aspetto sempre più importante dello sviluppo software. Per questa ragione, cercare un modo per impostare il flusso di lavoro in modo che permetta contributi rapidi e una buona collaborazione, è una caratteristica importante di un progetto ben strutturato. Una volta che questi contributi sono stati effettuati, necessitano di essere rilasciati per poter essere usati: in bas al framework, flusso di lavoro e linguaggio di programmazione impiegato, questo processo può variare molto. In questa tesi, l'obiettivo è di creare una pipeline di rilascio automatico per un Integration Server di webMethods, in modo da distribuire velocemente il codice e richiedere l'esecuzione un basso numero di attività manuali. Uno degli obiettivi principali di questo lavoro è di mantenere la soluzione finale facile da utilizzare, rendendola semplice da capire e gestire. Partendo dalla spiegazione degli strumenti impiegati e della struttura del progetto, viene poi fatta un'analisi dello stato dell'arte, utile per capire quali strumenti siano necessari per lo sviluppo della nuova soluzione. Il design e l'implementazione cercano poi di mantenere la soluzione semplice e diretta, principalmente sviluppando script di automazione che permettano agli sviluppatori di evitare di perdere tempo svolgendo quelle attività. Infine, usando Jenkins come strumento per la CI/CD, è stata sviluppata una pipeline in grado di partire automaticamente quando viene fatta una push nella repository GitHub. Per rendere questo processo replicabile questa tesi mostra come effettuare una configurazione corretta, spiegando anche le decisione che sono state prese durante lo sviluppo. Il risultato finale è una pipeline semplice da usare, che inizia dalla merge dei branch richiesti e finisce con il rilascio del codice nei server dove sono in esecuzione gli Integration Server webMethods.
File allegati
File Dimensione Formato  
2023_12_Scandale.pdf

non accessibile

Descrizione: Testo della tesi
Dimensione 1.59 MB
Formato Adobe PDF
1.59 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/214820