Cloud computing technologies
A.A. 2024/2025
Obiettivi formativi
Gli obiettivi dell'insegnamento sono i) fornire competenze architetturali sui sistemi cloud di nuova generazione compreso il loro impatto nelle moderne applicazioni distribuite sia da un punto di vista funzionale che non funzionale, ii) approfondire le tecnologie al base dei sistemi di cloud computing.
Risultati apprendimento attesi
Competenze teoriche per la progettazione di architetture cloud e competenze pratiche per l'implementazione di soluzioni cloud complesse a supporto di applicazioni distribuite di nuova generazione.
Periodo: Secondo semestre
Modalità di valutazione: Esame
Giudizio di valutazione: voto verbalizzato in trentesimi
Corso singolo
Questo insegnamento può essere seguito come corso singolo.
Programma e organizzazione didattica
Edizione unica
Responsabile
Periodo
Secondo semestre
Programma
L'insegnamento si compone di quattro aree principali, strutturate come segue:
1. Introduzione ai sistemi distribuiti moderni
- Concetti di base, requisiti e storia dell'evoluzione
- Fondamenti di virtualizzazione
2. Nozioni di base sul cloud computing
- Modelli di servizio e deployment, tecnologie e casi di studio
- Migrazione verso il cloud, cloudonomics, sfide e problemi
- Esempi pratici
3. Fondamenti delle architetture a microservizi
- Panoramica e concetti di base
- Migrazione verso architetture a microservizi
- Tecnologie basate su container: sviluppo, orchestrazione e distribuzione
- Esempi pratici
4. Aspetti non funzionali dei moderni sistemi distribuiti
- Tecniche di assicurazione e rischio
- Audit, Certificazione, Conformità
- Resilienza e tolleranza ai guasti
- Esempi pratici
1. Introduzione ai sistemi distribuiti moderni
- Concetti di base, requisiti e storia dell'evoluzione
- Fondamenti di virtualizzazione
2. Nozioni di base sul cloud computing
- Modelli di servizio e deployment, tecnologie e casi di studio
- Migrazione verso il cloud, cloudonomics, sfide e problemi
- Esempi pratici
3. Fondamenti delle architetture a microservizi
- Panoramica e concetti di base
- Migrazione verso architetture a microservizi
- Tecnologie basate su container: sviluppo, orchestrazione e distribuzione
- Esempi pratici
4. Aspetti non funzionali dei moderni sistemi distribuiti
- Tecniche di assicurazione e rischio
- Audit, Certificazione, Conformità
- Resilienza e tolleranza ai guasti
- Esempi pratici
Prerequisiti
Conoscenza dei concetti base delle reti di calcolatori, fondamenti di programmazione e di sicurezza informatica.
Metodi didattici
L'insegnamento viene erogato mediante lezioni frontali per l'apprendimento dei concetti teorici più relevanti. Sessioni di demo presenteranno l'applicazione dei concetti teorici appresi nella pratica.
Materiale di riferimento
Dispense e slide disponibili alla pagina web dell'insegnamento https://myariel.unimi.it/
Codice e descrizione delle demo al sito github del progetto: https://github.com/Sesar-Lab-Teaching/Cloud-Computing-Technologies
SISTEMI DISTRIBUITI
1. Tanenbaum, S., Maarten Van Steen, Distributed Systems: Principles and Paradigms, Prentice Hall (2007), 0-13-239227-5. M. van Steen and A.S. Tanenbaum, Distributed Systems,
3rd ed., distributed-systems.net, 2017.
2. George Coulouris, Jean Dollimore, Tim Kindberg, Distributed Systems - Concepts and Design, 4th edition, Pearson/Addison Wesley (2006), 0321-26354-5
CLOUD
- L. Badger, T. Grance, R. Patt-Corne, J. Voas, Cloud Computing Synopsis and Recommendations, NIST, http://csrc.nist.gov/publications/nistpubs/800-146/sp800-146.pdf
- B. Sosinsky, Cloud Computing Bible, 2011
REST services
- R.T. Fielding, Architectural Styles and the Design of Network-based Software Architectures, https://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm
- L. Richardson and S. Ruby, RESTful Web Services, http://www.crummy.com/writing/RESTful-Web-Services/
Codice e descrizione delle demo al sito github del progetto: https://github.com/Sesar-Lab-Teaching/Cloud-Computing-Technologies
SISTEMI DISTRIBUITI
1. Tanenbaum, S., Maarten Van Steen, Distributed Systems: Principles and Paradigms, Prentice Hall (2007), 0-13-239227-5. M. van Steen and A.S. Tanenbaum, Distributed Systems,
3rd ed., distributed-systems.net, 2017.
2. George Coulouris, Jean Dollimore, Tim Kindberg, Distributed Systems - Concepts and Design, 4th edition, Pearson/Addison Wesley (2006), 0321-26354-5
CLOUD
- L. Badger, T. Grance, R. Patt-Corne, J. Voas, Cloud Computing Synopsis and Recommendations, NIST, http://csrc.nist.gov/publications/nistpubs/800-146/sp800-146.pdf
- B. Sosinsky, Cloud Computing Bible, 2011
REST services
- R.T. Fielding, Architectural Styles and the Design of Network-based Software Architectures, https://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm
- L. Richardson and S. Ruby, RESTful Web Services, http://www.crummy.com/writing/RESTful-Web-Services/
Modalità di verifica dell’apprendimento e criteri di valutazione
L'esame consiste in una prova orale e un progetto. La prova orale punta ad accertare, tramite una serie di domande, le conoscenze dello studente su tutti gli argomenti trattati nell'insegnamento. Il progetto, la cui qualità verrà valutata durante la prova orale, mira ad approfondire gli aspetti pratici di uno degli argomenti trattati nell'insegnamento. La valutazione complessiva, espressa in trentesimi, terrà conto dei seguenti parametri: grado di conoscenza degli argomenti, capacità di applicare le conoscenze alla risoluzione di un progetto concreto, qualità del progetto sviluppato, capacità di ragionamento critico, chiarezza espositiva e proprietà di linguaggio.
INF/01 - INFORMATICA - CFU: 6
Lezioni: 48 ore
Docenti:
Anisetti Marco, Ardagna Claudio Agostino
Turni:
Docente/i
Ricevimento:
Su appuntamento
Ufficio docente (7003) presso il Dipartimento di Informatica in Via Celoria 18, Milano (MI)
Ricevimento:
Su appuntamento
Ufficio docente presso il Dipartimento di Informatica in Via Celoria 18, Milano (MI)