Continuous Integration e Continuous Deployment (CI/CD)

Referente: Prof. Scalabrino Simone

Gruppo di lavoro

  • Prof. Rocco Oliveto (Università degli Studi del Molise);
  • Dott. Giovanni Rosa (Università degli Studi del Molise).

Descrizione

I sistemi software moderni subiscono un’evoluzione continua. Ridurre al minimo il tempo che intercorre tra lo sviluppo di una nuova funzionalità o la correzione di un bug e il rilascio di una nuova versione del software all’utente finale può essere critico in diversi contesti. Le pratiche di Continuous Integration e Continuous Deployment (CI/CD), insieme alle tecnologie di virtualizzazione e containerizzazione, nascono con lo scopo di rendere il tempo necessario alla pubblicazione di una release il più breve possibile, garantendo un certo livello di qualità attraverso controlli automatici. Rendere operativi tali sistemi e fare manutenzione della loro configurazione, tuttavia, può comportare diversi problemi. Ad esempio, i controlli di qualità effettuati potrebbero essere insufficienti, oppure l’ambiente di esecuzione virtualizzato potrebbe richiedere più risorse del necessario.

Questo tema di ricerca prevede la definizione e la validazione di tecniche che consentano di: 

  1. rendere i controlli di qualità effettuati attraverso Continuous Integration efficaci (in modo da individuare il maggior numero di problemi prima del rilascio) ed efficienti (in modo da permettere di trovare eventuali problemi nel minor tempo possibile); 
  2. aumentare la qualità interna dei file di configurazione di tali sistemi, affinché questi siano più facilmente manutenibili; 
  3. aumentare la qualità interna ed esterna dei meccanismi di virtualizzazione e containerizzazione (es: Dockerfile). 

Sono particolarmente rilevanti, in questo contesto, anche studi empirici volti ad approfondire le pratiche di CI/CD comunemente usate in contesti open-source e industriali.

Pubblicazioni

1 Zampetti, F., Scalabrino, S., Oliveto, R., Canfora, G., & Di Penta, M. (2017, May). How open source projects use static code analysis tools in continuous integration pipelines. In 2017 IEEE/ACM 14th International Conference on Mining Software Repositories (MSR) (pp. 334-344). IEEE.
2 Rosa, G., Scalabrino, S., & Oliveto, R. (2022). Fixing Dockerfile Smells: An Empirical Study. arXiv preprint arXiv:2208.09097.
3 Rosa, G., Scalabrino, S., & Oliveto, R. (2022, October). Assessing and Improving the Quality of Docker Artifacts. In 2022 IEEE International Conference on Software Maintenance and Evolution (ICSME) (pp. 592-596). IEEE.