Insegnamento CLOUD COMPUTING
- Corso
- Programmazione e gestione di sistemi informatici
- Codice insegnamento
- A003655
- Curriculum
- Comune a tutti i curricula
- Docente
- Marco Marinello
- Docenti
-
- Marco Marinello
- Ore
- 42 ore - Marco Marinello
- CFU
- 6
- Regolamento
- Coorte 2023
- Erogato
- 2024/25
- Attività
- Caratterizzante
- Ambito
- Tecnologie informatiche e dell'informazione
- Settore
- INF/01
- Tipo insegnamento
- Obbligatorio (Required)
- Tipo attività
- Attività formativa monodisciplinare
- Lingua insegnamento
- ITALIANO
- Contenuti
- Testi di riferimento
- Dan Marinescu, "Cloud Computing: Theory and Practice, 3rd Edition", Morgan Kaufmann, 2022.
Sean P. Kane and Karl Matthias, "Docker: Up & Running: Shipping Reliable Containers in Production", O'Reilly, 2023.
Serena Sensini, "Docker: Sviluppare e rilasciare software tramite container", Apogeo, 2020. - Obiettivi formativi
- Spiegare l'evoluzione dell'informatica dai mainframe al cloud computing.
Definire il cloud computing e distinguere tra cloud privato, pubblico e ibrido.
Confrontare IaaS, PaaS e SaaS, identificandone i casi d'uso e i compromessi.
Valutare i vantaggi e i limiti delle risorse cloud dedicate rispetto a quelle condivise.
Descrivere il ruolo della virtualizzazione nel cloud computing e distinguere i tipi di hypervisor.
Analizzare la virtualizzazione assistita da hardware e le sfide legate all'escalation dei privilegi.
Identificare i carichi di lavoro non adatti al cloud e proporre soluzioni alternative.
Comprendere i concetti di autoscaling, elasticità e bilanciamento del carico nelle architetture cloud.
Valutare gli accordi sul livello di servizio (SLA) e le strategie di riduzione del rischio per i data center.
Discutere le sfide legali, di conformità e di certificazione del cloud computing.
Configurare macchine virtuali utilizzando strumenti come cloud-init.
Applicare tecniche di isolamento della rete e riconoscere le minacce alla sicurezza (ad esempio, gli attacchi MITM).
Automatizzare la configurazione dell'infrastruttura utilizzando Ansible (playbook, moduli, template).
Risolvere gli errori di configurazione e convalidare gli stati del sistema con Ansible.
Confrontare la paravirtualizzazione con la virtualizzazione completa, in particolare con KVM/VirtIO.
Gestire le soluzioni di storage delle macchine virtuali (SAN, ZFS, snapshot) e ottimizzare le prestazioni.
Eseguire la migrazione live delle macchine virtuali e illustrare le tecniche di espansione della memoria.
Confronto tra container e macchine virtuali, con particolare attenzione all'isolamento (cgroup, namespace).
Distribuire i container utilizzando Docker/Podman e gestire immagini, livelli e storage. - Prerequisiti
- Conoscenze derivanti dal corso di sistemi operativi: il funzionamento del sistema operativo e del kernel e le relative chiamate.
Conoscenze derivanti dal corso di reti di calcolatori: indirizzamento, NAT, ARP, reti distribuite, VLAN, gateway, modello ISO/OSI, porte.
Conoscenze basilari di programmazione. - Metodi didattici
- Lezione frontale; flipped classroom; dibattito.
- Modalità di verifica dell'apprendimento
- Esame scritto (tramite LibreEOL) e orale. Entrambe le componenti devono essere sufficienti (18/30) perché l'esame sia passato.