SCHEDA DELL'INSEGNAMENTO (SI)
SSD ING-INF/05
LAUREA MAGISTRALE IN INGEGNERIA INFORMATICA
ANNO ACCADEMICO: 2022-2023

INFORMAZIONI GENERALI - DOCENTE
DOCENTE: ROBERTO CANONICO
TELEFONO: +39 081 7683831
EMAIL: Questo indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo.

INFORMAZIONI GENERALI - ATTIVITÀ
INSEGNAMENTO INTEGRATO (EVENTUALE):
MODULO (EVENTUALE):
CANALE (EVENTUALE):
ANNO DI CORSO (I, II, III): I
SEMESTRE (I, II): II
CFU: 6

(se previsti dall'Ordinamento del CdS)
...................................................................................................................................................

EVENTUALI PREREQUISITI
Sistemi Operativi, Reti di Calcolatori, Programmazione I

OBIETTIVI FORMATIVI
Scopo del corso è impartire una conoscenza approfondita delle principali metodologie e tecniche impiegate nei contesti di Cloud Computing (pubblico, privato ed ibrido) per il dimensionamento dinamico, la configurazione e la gestione di infrastrutture virtualizzate. In particolare, il corso tratta:
- gli aspetti ingegneristici di progetto e realizzazione di un moderno datacenter e le principali tecnologie IT impiegate in questo specifico contesto;
- le peculiari soluzioni architetturali e protocollari che caratterizzano il networking nel contesto dei datacenter;
- le principali tecniche di virtualizzazione attualmente impiegate per le varie componenti di un sistema IT basato sul Cloud e come queste siano impiegate per la realizzazione di sistemi scalabili, elastici, flessibili e riconfigurabili attraverso il dispiegamento e l’orchestrazione di VM, container e componenti serverless;
- la tecniche di automazione che, attraverso il paradigma DevOps, consentono di automatizzare le procedure di messa in esercizio, configurazione e gestione dei sistemi cloud e rete.
Il corso prevede anche una parte laboratoriale ed esercitativa funzionale allo sviluppo di un elaborato.

(Descrittori di Dublino)
Conoscenza e capacità di comprensione
Lo studente dovrà dimostrare di aver compreso le caratteristiche fondamentali delle tecniche di virtualizzazione utilizzate nei sistemi cloud e di come esse debbano essere gestite per la realizzazione e la messa in esercizio di sistemi scalabili.
Capacità di applicare conoscenza e comprensione
Lo studente dovrà dimostrare di aver acquisito la capacità di applicare le tecniche apprese per la risoluzione di tipici problemi di progetto di applicazioni scalabili in cloud e per la configurazione delle componenti infrastrutturali di un datacenter che ospiti applicazioni cloud.

PROGRAMMA-SYLLABUS
Part I - Cloud Computing: enabling technologies
Virtualization technologies. The virtualization concept. Different approaches to IT resource virtualization. Type-1 and Type-2 hypervisors. Linux KVM. Container-based virtualization. Docker. Docker Image Layers. Container image repositories.
Switched networks. Switching systems. Input-queued crossbar switches and Head-of-Line blocking. Virtual output queues. Multi-stage interconnection networks. Clos theorem. Spanning Tree Protocol (STP). TRILL.
Virtual networking. Ethernet VLANs. Virtual network interfaces: TUN/TAP, MacVLAN, and MacVTap. Virtual Ethernet Port Aggregator (VEPA). Software switches: Linux Bridge, Open vSwitch. VM networking. Docker networking. SR-IOV NICs. Virtual routers. Virtualized network functions. Network Function Virtualization (NFV). Virtual Network Functions chaining and orchestration.
Lab #1: Docker. Creation of Docker containers. Multi-stage docker build.
Part II - Cloud Computing: the user perspective
Cloud Computing: foundational concepts. Cloud service models (IaaS, PaaS, SaaS). Cloud deployment models (public, private, hybrid, community). Elastic computing. Horizontal vs vertical scalability in the cloud. Cloud resources and identity. Service Level Agreements. Billing models for cloud services. Cloud APIs and interoperability. Serverless computing. Cloud edge computing.
Public cloud services. A review of main IaaS public cloud services.
Lab #2: Creation of a scalable infrastructure in a private cloud.
Part III - Datacenter engineering
Datacenter architecture and organization. General architecture and organization of a datacenter. Main datacenter facilities. Rack layouts. Rackable servers. Blade servers. ANSI/TIA-942 standard. Data Center Infrastructure Management (DCIM). Data center power management. Cooling solutions for datacenters. Power Usage Effectiveness (PUE). Datacenters for HPC applications.
Datacenter networking. Transmission media for datacenter links. UTP cabling. Optical fibers. Optical transceivers. Datacenter network architectures and topologies. Access layer organization: Top-of-Rack vs. End-of-Row. Leaf-Spine datacenter networks. Multipath in datacenter networks. ECMP and TRILL. Flowlets. TCP Incast and TCP variants for datacenter networks.
Other datacenter networking technologies. Storage networking technologies. SANs. Fiber Channel. ATA over Ethernet (AoE). Fibre Channel over Ethernet (FcoE). iSCSI and its Linux implementation. Infiniband.
Multi-tenancy in cloud networking. IEEE 802.1ad Q-in-Q. Overlay networking. NVGRE. VxLAN. Ethernet over MPLS. Ethernet over IP. MP-BGP. EVPN.
Lab #3: Emulation of a multitenant cloud in GNS3.
Part IV - Cloud management
Private cloud platforms. OpenStack. OpenStack general architecture and fundamental services. Kubernetes.
Resource management and configuration in private cloud infrastructures. The CloudSim simulator. The CloudSimNFV simulator. The VM placement problem and solution methods. The NFV placement problem and solution methods. Green datacenters and green cloud computing.
DevOps and Cloud automation. Basic DevOps concepts. CI/CD. Frameworks for automatic deployment and configuration of cloud components. Ansible. YAML. Lab #4: Use of YAML for automatic deployment of cloud components.

MATERIALE DIDATTICO
• Dispense e lucidi delle lezioni
• Altro materiale didattico reso disponibile dal docente
• Cloud Native Data Center Networking: Architecture, Protocols, and Tools (1st Edition). Dinesh G. Dutt. O'Reilly Media, 2019
• Network Programmability and Automation. Jason Edelman, Scott S. Lowe, Matt Oswalt. O'Reilly Media, 2018

MODALITÀ DI SVOLGIMENTO DELL'INSEGNAMENTO
Il corso consisterà di: a) lezioni frontali per l’80% delle ore totali; b) esercitazioni per il restante 20% delle ore totali.

VERIFICA DI APPRENDIMENTO E CRITERI DI VALUTAZIONE
a) Modalità di esame:
L'esame si articola in prova: | |
Scritta e orale | |
Solo scritta o intercorso a metà | |
Solo orale | ![]() |
Discussione di elaborato progettuale | ![]() |
Altro (discussione esercitazioni) |
In caso di prova scritta i quesiti sono (*): | |
A risposta multipla | |
A risposta libera | |
Esercizi numerici |
L’esame consisterà di una prova orale durante la quale verrà anche discusso un elaborato progettuale precedentemente redatto dallo studente.