Nuova ricerca

Claudia CANALI

Professore Associato
Dipartimento di Ingegneria "Enzo Ferrari"

Insegnamento: Cloud and Edge Computing

Informatica (Offerta formativa 2024)

Obiettivi formativi

Il corso si propone di fornire gli elementi di base della conoscenza dei sistemi distribuiti di Cloud Computing e della sua evoluzione nota come Edge Computing, oltre agli strumenti principali per il loro utilizzo e la loro valutazione.
Al termine dell'insegnamento lo studente sarà in grado di:
- comprendere i più noti paradigmi di utilizzo del cloud computing
- distinguere le principali architetture esistenti nell'ambito cloud
- comprendere i concetti di virtualizzazione applicati ad architetture distribuite complesse
- comprendere e applicare il concetto di sviluppo in pipeline CI/CD (Continuous Integration / Continuous Development)
- programmare una semplice applicazione su piattaforma cloud AWS
Per un ulteriore approfondimento degli obiettivi formativi, si rimanda alla lettura dei "Risultati di apprendimento attesi".

Prerequisiti

Protocolli di rete, programmazione a oggetti

Programma del corso

Cloud Computing (5 CFU)
• La storia: Sistemi Web distribuiti, Proxy Server, Content Delivery Network
• I paradigmi del Cloud: IaaS, PaaS, SaaS
• Cloud pubbliche, dedicate, hosted, private
• Struttura dei Data Center Cloud
• Paradigmi di programmazione (SOAP, microservizi)
• Virtualizzazione e containerizzazione (Docker / MiniKube)
• Sistemi Multicloud e dispatching geografico
• Pipeline CI/CD
• Realizzazione di applicazioni cloud con AWS (laboratori)

Edge (o Fog Computing) (1 CFU)
• Edge layer come estensione del cloud
• Applicazioni latency sensitive, pre-processing e aggregazione dei dati
• Modelli di cooperazione tra nodi edge: algoritmi per il bilanciamento del carico
• FAPP Fog Application Placement Problem

Metodi didattici

La didattica è basata su lezioni frontali che si svolgeranno in presenza o a distanza a seconda dell'evolversi della situazione pandemica. Nel caso le lezioni fossero a distanza, saranno tenute in modalità sincrona - ossia diretta streaming. Saranno svolti anche laboratori riguardanti la parte di programmazione su piattaforma cloud e uso di simulatori di rete.
Le domande e gli interventi degli studenti sono graditi e incoraggiati.
La frequenza non è obbligatoria, ma fortemente consigliata.
Il corso è erogato in lingua italiana.
Tutte le informazioni tecniche e organizzative sull'insegnamento, nonché il materiale didattico, saranno caricati su piattaforma Moodle. Si invita lo studente a consultare tale piattaforma con regolarità.

Testi di riferimento

Slide del docente e materiale online che verrà indicato durante le lezioni

Verifica dell'apprendimento

L'esame si articola in due prove: 1) lo sviluppo di un progetto individuale che si baserà sulla programmazione su piattaforma cloud o sull'utilizzo di un simulatore di rete in contesto edge/cloud; 2) una prova orale che verrà sostenuta insieme alla discussione del progetto
La valutazione del progetto peserà per il 70% sul voto complessivo.
La valutazione in trentesimi della prova viene resa nota allo studente al termine della prova stessa.

Risultati attesi

Conoscenza e capacità di comprensione:
- Conoscenza dei principli di Cloud Computing
- Conoscenza Struttura dei Data Center Cloud
- Conoscenza dei paradigmi del Cloud: IaaS, PaaS, SaaS
- Conoscenza Modelli architetturali
- Conoscenza dei meccanismi di gestione della qualità e monitoraggio
- Conoscenza Tecnologie di virtualizzazione
- Conoscenza dei principli di Edge Computing
Conoscenza e capacità di comprensione applicate
- Capacità di programmare applicazioni in Cloud
- Capacità di utilizzare simulatori di rete
- Capacità di valutare le prestazioni di sistemi distribuiti complessi
Autonomia di giudizio
Al termine dell’insegnamento lo studente avrà migliorato le proprie capacità di
- comprensione dei sistemi distribuiti di cloud e edge computing.
- argomentare le scelte fatte nella definizione dei paradigmi e delle architetture maggiormente convenienti da applicare
- valutazione critica delle prestazioni di sistemi di cloud/edge computing
Abilità comunicative
Il colloquio finale permette di esprimere i concetti appresi con linguaggio tecnico appropriato e sostenere una discussione in merito agli argomenti trattati.
Capacità di apprendere
Le attività descritte, in particolare le esercitazioni, consentono di acquisire gli strumenti metodologici indispensabili per potere autonomamente provvedere ad un adeguato aggiornamento ed approfondimento, che permetta allo studente di affrontare anche problemi nuovi e non solo l'applicazione automatica di quanto studiato.