Nuova ricerca

Riccardo LANCELLOTTI

Professore Associato
Dipartimento di Ingegneria "Enzo Ferrari"

Insegnamento: Sistemi e Applicazioni Cloud

Artificial intelligence engineering (Offerta formativa 2024)

Obiettivi formativi

Il corso fornisce metodologie per il progetto, realizzazione e testing di applicazioni moderne che devono rispondere ad elevati requisiti prestazionali, di scalabilità e di affidabilità. A tale scopo, si analizzano inizialmente i sistemi distribuiti su scala locale e geografica, quali cluster, data center, Content Delivery Networks, peer-to-peer, Web server. Dopodiché, si approfondiscono il funzionamento delle architetture e dei servizi cloud, le Service Oriented Architecture, e le loro integrazioni con l'Internet of Everything (IoE). Il corso tratta infine i modelli per l'analisi prestazionale dei sistemi e delle applicazioni su rete.
Nell'ambito del Corso integrato si presentano gli strumenti software, prevalentemente open source, per la realizzazione di applicazioni cloud.

Prerequisiti

Requisiti:
- Linguaggio Python
- Elementi di ingegneria del software
- Elementi di economia
- Elementi di Sistemi Operativi
- Funzionamento delle reti di calcoaltori
- Capacità di lavorare su sistemi Unix

Programma del corso

Nell'ambito del Corso si tratta il seguente programma.
1) Fondamenti del Cloud (3 CFU)
- I princìpi fondamentali di scalabilità, prestazioni e affidabilità
- Paradigmi Cloud
- Sistemi distribuiti su scala geografica: sistemi Web distribuiti, proxy server, Content Delivery Network
- Architetture e servizi cloud.
2) Tecnologie cloud-oriented (3 CFU)
- Tecnologie abilitanti: virtualizzazione, container, software-defined storage, software-defined network
- Data center cloud
- Gestione di sistemi cloud: Modelli di prestazione, affidabilità, modelli di costo e business, Service Level Agreement
3) Esercitazioni (3 CFU)
- Progettazione, testing e implementazione di architetture ad alte prestazione ed elevata affidabilità
- Modelli e meccanismi di sviluppo software in ambiente cloud
- Simulazione di sistemi distribuiti

Metodi didattici

- Lezioni in aula
- Esercitazioni in laboratorio (Bring Your Own Laptop)

Testi di riferimento

None

Verifica dell'apprendimento

- Prova orale con domande su tutti i contenuti del corso. Nella prova orale non si può consultare il materiale didattico.
- Prova di laboratorio sulle tematiche di sviluppo di applicaizoni web (client side o server side) o valutazione delle prestazioni (simulazione). Nella prova di laboratorio è possibile consultare il materiale didattico.

Per la sufficienza entrambe le prove devono essere superate. Il voto finale si basa sulla media pesata della prova orale (1/2) e di laboratorio (1/2)
Le prove possono avvenire in presenza o in modalità on-line. In entrambe le prove è prevista la supervisione del docente o di suoi collaboratori (dal vivo o mediante video)
La durata delle prove vengono stabilite in base alla modalità di somministrazione dell'esame. La prova di orale ha una durata tra 15 e 30 minuti. La prova di laboratorio non dura meno di 40 minuti e non più di tre ore.

Risultati attesi

- Conoscenze sui data center, applicazioni Web distribuite, cloud platform e cloud computing, workload, benchmarking, princìpi di design e valutazione dei costi.
- Saper progettare e implementare applicazioni su piattaforme cloud.
- Saper progettare e dimensionare un sistema ad alte prestazioni ed elevata affidabilità.