Relazione sulle attività svolte durante il periodo di formazione dottorale Titolo della tesi: Analysing and deploying microservice-based applications
Candidato: Davide Neri
Supervisori: Prof. Brogi Antonio, Dr. Soldani Jacopo
Comitato interno: Prof. Marco Danelutto, Prof. Antonio Cisternino, Prof. Olaf Zimmermann Revisori esterni: Prof. Davide Taibi, Prof. Cesare Pautasso
1.
SOMMARIO DELLA RICERCA
L'obiettivo generale della tesi è supportare un'efficace analisi delle applicazioni basate su microservizi e l'automazione del loro deployment su piattaforme basate su container. I principali contributi della tesi sono (i) una metodologia per automatizzare il rilevamento di “bad smells” architetturale che potrebbero violare alcuni dei principi principali dei microservizi e per risolvere tali “bad smells” tramite refactoring
architetturali, (ii) una tecnica per completare una specifica dell'applicazione ricercando automaticamente ambienti di runtime (container Docker) in grado di supportare i componenti dell'applicazione e (iii) un approccio architetturale per eseguire in modo efficace applicazioni basate su microservizi su orchestratori di container esistenti, consentendo anche di gestire il ciclo di vita dei microservizi indipendentemente dal ciclo di vita dei container che li ospitano. Tutte le soluzioni sopra menzionate sono state implementate in prototipi e testate su casi studio concreti, sperimentandole anche su soluzioni software di terze parti. 2. FORMAZIONE
2.1 Esami Sostenuti 2016/17
- Introduction to Network Science (A. Kertesz)
- Kleene algebra with tests and applications to network programming (A. Silva)
- The Internet of Everything, Everywhere: Methods and Technologies for Internetworking Land, Air and Sea (S. Basagni)
- Distributed Computing and Large Graph Mining (P. Fraignaud, P. Crescenzi) - Reti ad Hoc (S.Chessa)
2017/18
- An Introduction to Deep Learning (A. Gullì) 2018/2019
- Data Stream Processing from the Parallelism Perspective (G.Mencagli)
2.2 Seminari Seguiti2016/17
- “Lunch Time Mauriana Pesaresi”
- “Research, innovation and future of ICT” - “Servizi, Cloud e Fog Computing”
2.3 Scuole di Dottorato
- 05-10/03/2017 - Bertinoro International Spring School (BISS’17), Bertinoro, Forlì-Cesena,
Italia.
3. PUBBLICAZIONI 3.1 Pubblicazioni
2017
• Brogi, Antonio, Davide Neri, and Jacopo Soldani. “DockerFinder: Multi-attribute Search of Docker Images.“,Cloud Engineering (IC2E), 2017 IEEE International Conference on. IEEE, 2017. • Brogi Antonio, Neri Davide, Rinaldi Luca, and Soldani Jacopo. “From (incomplete) TOSCA
specification into running apps, with Docker.”, Lecture Notes in Computer Science, 2018 • Brogi Antonio, Mencagli Gabriele, Neri Davide, Soldani Jacopo, and Torquati Massimo.
“Container-based Support for Autonomic Data Stream Processing through the Fog.”, Autonomic Solutions for Parallel and Distributed Data Stream Processing (Auto-DASP), 2017
• Brogi Antonio, Canciani Andrea, Neri Davide, Rinaldi Luca, and Soldani Jacopo “Towards a reference dataset of microservice-based applications”, Microservices: Science and Engineering (MSE), 2017
2018
• Brogi Antonio, Neri Davide, and Soldani Jacopo. “A microservice-based architecture for (customizable) analyses of docker images.”, Software: Practice and Experience, 2018 • A. Brogi, D. Neri, L. Rinaldi, J. Soldani. “Orchestrating incomplete TOSCA applications with
Docker”. Science of Computer Programming, volume 166, pages 194-213, 2018
• R. Guidotti, J. Soldani, D. Neri, A. Brogi, D. Pedreschi. ”Helping your Docker images to spread based on explainable models”, European Conference on Machine Learning and Principles and Practice of Knowledge Discovery in Databases (ECML PKDD 2018) [In press]
• R. Guidotti, J. Soldani, D. Neri, A. Brogi. ”Explaining Successful Docker Images using Pattern Mining Analysis”, From Data to Models and Back (DataMod 2018) [in press]
2019
• D. Neri J. Soldani, O. Zimmermann, A. Brogi. Design principles, architectural smells and refactorings for microservices: a multivocal review. SICS, 2019
• A. Brogi, D. Neri, and J. Soldani. Freshening the air in microservices: resolving architectural smells via refactoring. ICSOC, 2019.
3.2 Partecipazione a Conferenze/workshop
- 5th IEEE International Conference on Cloud Engineering (IC2E 2017), Vancouver , Presented the paper: "Multi-attribute search of Docker "
- 1st International Workshop on Autonomic Solutions for Parallel and Distributed Data Stream Processing (Auto-DaSP 2017), Santiago de Compostela, Presented the paper: "Container-based support for autonomic data stream processing through the fog"
- Microservices: Science and Engineering (MSE 2017), Trento 15th International Workshop on Foundations of Coordination Languages and Self-Adaptative Systems (FOCLASA 2017), Trento - 7th European conference on Service-Oriente and Cloud Computing (ESOCC 2018), Presented the
papert at Ph.D Symposium: "Analysing and deploying microservice-based applications" - 13th Symposium and Summer School On Service-Oriented Computing (SummerSOC 2019),
Presented the paper: "Design principles, architectural smells and refactorings for microservices: a multivocal review"
3.3 Articoli in Corso di Revisione
1. M. Bogo, J.Soldani, D.Neri , and A. Brogi. Component-aware Orchestration of Cloud-based Enterprise Applications, from TOSCA to Docker and Kubernetes. 2019. url:
https://arxiv.org/abs/2002.01699. 4. PARTECIPAZIONE A PROGETTI DI RICERCA
10/2015– 10/2016 Through the Fog (PRA_2018_66), Università di Pisa, Pisa, Italia. Ruoli: membro del progetto
Il progetto – coordinato dal prof. Antonio Brogi – aveva come scopo lo studio del paradigma Fog, nonché il disegno e la sperimentazione di metodologie per il dispiegamento, la programmazione e il supporto runtime ad applicazioni Fog.
5. PREMI E RICONOSCIMENTI
- 2019 premio come Migliore Giovane Ricercatore 2019 (SummerSOC Young Researcher Award 2019) della Symposium and Summer School On Service-Oriented Computing (SummerSOC’19) con
l’articolo “Design principles, architectural smells, and refactorings for microservices: A multivocal review”.
6. DIDATTICA INTEGRATIVA 6.1 Laurea in Informatica (L-31)
- Programmazione I e laboratorio/B (docente titolare: Prof Giovanna Rosone), 2017. Ho fornito supporto agli studenti durante le lezioni di laboratorio che introducevano alla programmazione e strutture dati in C.
- Rete di calcolatori e laboratorio B (docente titolare: Prof Federica Paganelli), 2018.
Ho fornito supporto nella preparazione e nell’espletamento delle attività di laboratorio e di impostazione ed esecuzione e elaborati e progetti fatti dagli studenti.
6.2 Laurea in Matematica
- Fondamenti di Programmazione con Laboratorio (docente titolare: Prof Chiara Bodei, Co-docenti: Prof.ssa Nadia Pisanti, Dr. Nicola Prezza, Dr. Jacopo Soldani). Ho coadiuvato il Dott. Jacopo Soldani nella preparazione e nell’espletamento delle attività di laboratorio e supporto agli studenti.
7. TESI CO-SUPERVISIONE
- Matteo Bogo, Component-aware orchestration of TOSCA applications on top of Docker, 2019 (Co-supervisori: Prof. Antonio Brogi e Dr. Jacopo Soldani). Laurea Magistrale in Informatica (LM-18) - Stefania Tola, DockerAnalyserUI: Progettazione e sviluppo di un'interfaccia grafica per
DockerAnalyser, 2018 (Co-supervisori: Prof. Antonio Brogi e Dr. Jacopo Soldani). Laurea in Informatica (L-31)
Pisa, 27/02/2020
In fede,
_________________________ Davide Neri