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, NONdocker-composedeprecato) - Strumenti di rete: netcat, curl, iproute2 (solitamente preinstallati su Linux/macOS)
- Sistema operativo: Linux, macOS o Windows con Docker Desktop
Verifica dell'ambiente
- Apri un terminale
- Clona la repository:
git clone https://gitea.lab.home.lucasacchi.net/lucasacchi/laboratori-cloud cd laboratori-cloud - 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:
- Leggi il tutorial dall'inizio alla fine
- Esegui i comandi nel tuo terminale
- Quando arrivi alla fine, verifica con lo script finale
3. Workflow tipico per un laboratorio
-
Vai nella cartella del lab:
cd labs/lab-01-iam -
Leggi il tutorial (inizia da
01-*.md):- Segui ogni passo attentamente
- Non saltare sezioni
- Pratica ogni comando nel tuo terminale
-
Verifica il completamento:
bash tests/99-final-verification.sh -
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
- Leggi il messaggio di errore
- Controlla l'output per capire cosa non va
- Riguarda il tutorial per il passo problematico
- Riprova la configurazione
- 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
- Non copiare-incollare: Scrivi ogni comando a mano
- Comprendi prima di eseguire: Leggi perché fai ogni passo
- Sperimenta: Modifica parametri e vedi cosa succede
- Documenta: Prendi appunti sui comandi importanti
- 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