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.