Files
laboratori-cloud/STUDENT-GUIDE.md
T
2026-04-09 12:40:37 +02:00

6.4 KiB

Guida per Studenti - Corso Laboratori Cloud

Benvenuto nel Corso Laboratori Cloud! Questa guida ti spiega come utilizzare al meglio questo corso di simulazione pratica dei servizi cloud usando Docker locale.

Cosa è questo corso?

Questo corso ti insegna i concetti fondamentali del cloud computing (IAM, Networking, Compute, Storage, Database) attraverso laboratori pratici. Invece di usare account cloud costosi, usiamo Docker sul tuo computer per simulare i servizi AWS/Azure/GCP.

Ogni laboratorio ti guida passo-passo nella creazione di infrastrutture locali che si comportano come i servizi cloud reali.

Prerequisiti

Prima di iniziare, assicurati di avere:

  • Docker Engine >= 24.0 installato e funzionante
  • Docker Compose V2 (usa docker compose, NON docker-compose deprecato)
  • Strumenti di rete: netcat, curl, iproute2 (solitamente preinstallati su Linux/macOS)
  • Sistema operativo: Linux, macOS o Windows con Docker Desktop

Verifica dell'ambiente

  1. Apri un terminale
  2. Clona la repository:
    git clone https://gitea.lab.home.lucasacchi.net/lucasacchi/laboratori-cloud
    cd laboratori-cloud
    
  3. Verifica che tutto funzioni:
    ./scripts/check-env.sh
    

Se tutti i controlli passano, sei pronto!

Come seguire il corso

1. Struttura del corso

Il corso ha 5 laboratori progressivi:

  • Lab 01: IAM & Sicurezza - Utenti, permessi, sicurezza container
  • Lab 02: Network & VPC - Reti isolate, simulazione VPC/Subnets
  • Lab 03: Compute & EC2 - Limiti risorse, healthchecks, simulazione EC2
  • Lab 04: Storage & S3 - Volumi, MinIO come S3 locale
  • Lab 05: Database & RDS - Database persistente, simulazione RDS

2. Come fare un laboratorio

Ogni laboratorio ha la stessa struttura:

labs/lab-XX-nome/
├── tutorial/          # Guida passo-passo (LEGGI PRIMA QUESTO)
├── how-to-guides/     # Procedure specifiche per task particolari
├── reference/         # Documentazione tecnica completa
├── explanation/       # Spiegazione dei paralleli cloud/locale
├── docker-compose.yml # Configurazione infrastruttura
└── tests/             # Script di verifica
    └── 99-final-verification.sh

Ordine consigliato:

  1. Leggi il tutorial dall'inizio alla fine
  2. Esegui i comandi nel tuo terminale
  3. Quando arrivi alla fine, verifica con lo script finale

3. Workflow tipico per un laboratorio

  1. Vai nella cartella del lab:

    cd labs/lab-01-iam
    
  2. Leggi il tutorial (inizia da 01-*.md):

    • Segui ogni passo attentamente
    • Non saltare sezioni
    • Pratica ogni comando nel tuo terminale
  3. Verifica il completamento:

    bash tests/99-final-verification.sh
    
  4. Se tutto è OK, passa al laboratorio successivo

Come verificare che stai facendo bene

Script di verifica finale

Ogni laboratorio ha uno script 99-final-verification.sh che controlla:

  • Configurazioni corrette
  • Sicurezza (no root containers, etc.)
  • Funzionalità dei servizi
  • Compliance con i requisiti tecnici

Esegui sempre questo script alla fine di ogni laboratorio!

Cosa fare se la verifica fallisce

  1. Leggi il messaggio di errore
  2. Controlla l'output per capire cosa non va
  3. Riguarda il tutorial per il passo problematico
  4. Riprova la configurazione
  5. Se ancora problemi, consulta:
    • How-to guides per procedure specifiche
    • Troubleshooting nel tutorial
    • Reference per sintassi tecnica

Sicurezza e best practices

Questo corso segue principi di sicurezza rigorosi:

  • 🔒 Container non-root: Mai eseguire container come root
  • 🚫 Isolamento rete: Reti private non esposte sull'host
  • 📊 Limiti risorse: Ogni container ha limiti CPU/memoria
  • 💾 Persistenza: Dati che sopravvivono ai riavvii

Rispetta sempre questi principi nei tuoi progetti reali!

Pulizia tra laboratori

Per evitare conflitti tra laboratori:

# Dalla root del progetto
./scripts/reset-env.sh

Questo comando:

  • Ferma tutti i container
  • Rimuove reti e volumi creati
  • Pulisce l'ambiente per il prossimo lab

Strumenti utili

Comandi Docker essenziali

# Lista container attivi
docker ps

# Lista tutti i container (anche fermi)
docker ps -a

# Vedi logs di un container
docker logs <nome-container>

# Entra in un container (debug)
docker exec -it <nome-container> sh

# Lista reti
docker network ls

# Lista volumi
docker volume ls

# Statistiche risorse
docker stats

Comandi Docker Compose

# Avvia tutti i servizi
docker compose up -d

# Ferma tutti i servizi
docker compose down

# Vedi stato servizi
docker compose ps

# Logs di tutti i servizi
docker compose logs

# Ricostruisci e riavvia
docker compose up -d --build

Risoluzione problemi comuni

"Permission denied" su Docker

# Aggiungi utente al gruppo docker
sudo usermod -aG docker $USER
# Fai logout e login, oppure:
newgrp docker

"Command not found: docker compose"

Hai la versione vecchia. Installa Docker Compose V2:

  • Su Linux: Docker Engine >= 24.0 include Compose V2
  • Su macOS/Windows: Docker Desktop >= 4.0

Container non si avvia

# Controlla logs
docker compose logs

# Controlla risorse
docker stats

# Verifica porte in uso
docker ps

"No space left on device"

Docker occupa troppo spazio. Pulisci:

# Rimuovi container fermi
docker container prune

# Rimuovi immagini non usate
docker image prune

# Rimuovi volumi orfani
docker volume prune

# Reset completo ambiente
./scripts/reset-env.sh

Come imparare al meglio

  1. Non copiare-incollare: Scrivi ogni comando a mano
  2. Comprendi prima di eseguire: Leggi perché fai ogni passo
  3. Sperimenta: Modifica parametri e vedi cosa succede
  4. Documenta: Prendi appunti sui comandi importanti
  5. Collega al cloud: Pensa sempre "questo in AWS sarebbe..."

Supporto

  • Documentazione: Ogni lab ha guide complete
  • Script di verifica: Ti dicono esattamente cosa è sbagliato
  • Troubleshooting: Sezioni dedicate in ogni tutorial
  • Reference: Sintassi completa e parametri

Prossimi passi dopo il corso

Una volta completati tutti i 5 laboratori:

  • Avrai una comprensione pratica del cloud computing
  • Saprai configurare infrastrutture sicure e scalabili
  • Potrai applicare questi concetti nei tuoi progetti reali
  • Sarai pronto per certificazioni cloud (AWS, Azure, GCP)

Buon apprendimento! 🚀 student-guide.md