Nuova ricerca

Claudia CANALI

Professore Associato
Dipartimento di Ingegneria "Enzo Ferrari"

Insegnamento: Cloud and Edge Computing

Informatica (D.M.270/04) (Offerta formativa 2022)

Obiettivi formativi

Il corso si propone di fornire gli elementi di base della conoscenza delle architetture di Cloud Computing e delle caratteristiche dei servizi erogati attraverso tale paradigma. Si analizzerà inoltre l'evoluzione del Cloud nota come Edge Computing.
Al termine dell'insegnamento lo studente sarà in grado di:
- comprendere i principali paradigmi di utilizzo del cloud computing
- comprendere la struttura delle architetture esistenti nell'ambito cloud
- comprendere i concetti di virtualizzazione applicati ad architetture distribuite complesse
- programmare su piattaforma cloud una semplice applicazione basata su Docker
- utilizzare un simulatore di rete per la valutazione prestazionale dei sistemi distribuiti
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 (4 CFU)
• Storia ed evoluzione: Sistemi Web distribuiti, Proxy Server, Content Delivery Network
• I principali paradigmi del Cloud: IaaS, PaaS, SaaS
• Architetture cloud e tecnologie di virtualizzazione
• Struttura dei Data Center Cloud
• Cloud pubbliche, dedicate, hosted, private
• Servizi e microservizi Cloud
• Container-as-a-service e Function-as-a-service (Serverless)
◦ Modelli architetturali (HA, resiliency, elasticity, scalability)
• Sistemi Multicloud
• Realizzazione di applicazioni in Cloud (laboratorio)
• DevOps (laboratorio)

Edge (o Fog Computing) (2 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
• Utilizzo di simulatori di rete

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 (moodle.unimore.it). Si invita lo studente ad iscriversi ed 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 50% sul voto complessivo. Le prove potrebbero essere svolte in presenza o a distanza su piattaforma Meet a seconda dell'evoluzione della situazione di emergenza sanitaria COVID19.
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.