SISTEMI CLOUD E LABORATORIOModulo LABORATORIO
Anno accademico 2026/2027 - Docente: SALVATORE NICOTRARisultati di apprendimento attesi
Al termine del corso lo studente sarà in grado di comprendere i principi di containerizzazione e orchestrazione applicativa con Docker, progettare ambienti multi-container con Docker Compose e Swarm, applicare Infrastructure as Code con Terraform/OpenTofu e CloudFormation, configurare macchine e servizi in modo riproducibile con Ansible e automatizzare deployment tramite pipeline CI/CD e GitOps
Modalità di svolgimento dell'insegnamento
Le lezioni sono tenute in aule-laboratorio, nelle quali gli studenti possono utilizzare i PC disponibili o il proprio portatile. Esse consistono prevalentemente in sessioni
Le note delle lezioni non ambiscono a costituire un testo di riferimento, ma, oltre ad agevolare la comprensione, forniscono un dettaglio puntuale del materiale presentato e della documentazione tecnica da consultare quale riferimento.
Qualora l'insegnamento venisse impartito in modalità mista o a distanza potranno essere introdotte le necessarie variazioni rispetto a quanto dichiarato in precedenza, al fine di rispettare il programma previsto e riportato nel syllabus.
Prerequisiti richiesti
Frequenza lezioni
Contenuti del corso
Testi di riferimento
- Documentazione online, puntualmente indicata nelle Note delle lezioni (pubblicate attraverso la piattaforma Teams d'ateneo o il portale Studium).
-
Note delle lezioni, suddivise in gruppi dal titolo corrispondente agli argomenti elencati alla sezione "Programmazione".
Programmazione del corso
| Argomenti | Riferimenti testi | |
|---|---|---|
| 1 | Containerizzazione e architettura di Docker: concetti di container, immagini, Dockerfile, volumi, porte e Docker Hub. | |
| 2 | Composizione di applicazioni: Docker Compose, servizi, network, volumi, config e secrets, introduzione a Docker Swarm. | |
| 3 | Orchestrazione con Docker Swarm: cluster, manager e worker, scaling di servizi, visualizzazione dello stato e bilanciamento. | |
| 4 | Infrastructure as Code con Terraform/OpenTofu: provider, resources, variables, outputs, workflow init/plan/apply/destroy e gestione dello stato. | |
| 5 | Infrastructure as Code su AWS: provisioning con OpenTofu e confronto con CloudFormation, security group, istanze EC2 e deploy/destroy | |
| 6 | Configuration Management con Ansible: inventory, playbook, task, module e role, installazione di Docker su nodi remoti e bootstrap di cluster Swarm. | |
| 7 | CI/CD e GitOps: pipeline, automazione con Gitea Actions, AWS CodePipeline, GitHub Actions, gestione segreti e least privilege. | |
| 8 | GitOps su AWS con GitHub Actions: OpenID Connect (OIDC), backend S3 per lo stato condiviso di Terraform e integrazione con AWS |
Verifica dell'apprendimento
Modalità di verifica dell'apprendimento
Non approvato: lo studente non ha acquisito i concetti di base e non è in grado di risolvere semplici quesiti pratici. 18-20: lo studente dimostra una padronanza appena sufficiente dei concetti base, e/o riesce ad impostare le soluzioni dei quesiti pratici con molta difficoltà e vari errori. 21-24: lo studente dimostra una padronanza minima dei concetti di base, le sue capacità di collegamento dei contenuti sono modeste, riesce a risolvere semplici quesiti pratici. 25-27: lo studente dimostra una buona padronanza dei contenuti del corso, le sue capacità di collegamento dei contenuti sono buone, risolve i quesiti pratici con pochi errori. 28-30 e lode: lo studente ha acquisito tutti i contenuti del corso ed è in grado di padroneggiarli compiutamente e di collegarli con spirito critico; risolve i quesiti pratici in modo completo e senza errori di particolare rilievo.
Esempi di domande e/o esercizi frequenti
- spiegare i principi di containerizzazione e il ruolo di Docker nella distribuzione delle applicazioni;
- descrivere il funzionamento di Docker Compose e Docker Swarm;
- progettare una semplice infrastruttura con Terraform/OpenTofu o CloudFormation;
- automatizzare la configurazione di un cluster con Ansible;
- illustrare il funzionamento di una pipeline CI/CD e di un workflow GitOps