docs: add comprehensive student guide and update README

This commit is contained in:
Luca Sacchi Ricciardi
2026-04-09 12:40:37 +02:00
parent 015c7b1b27
commit 7b6f89afb0
2 changed files with 260 additions and 2 deletions
+6 -2
View File
@@ -54,9 +54,12 @@ Scarica Docker Desktop da https://www.docker.com/products/docker-desktop/
./scripts/check-env.sh ./scripts/check-env.sh
``` ```
3. Se tutti i check passano, sei pronto per iniziare il primo laboratorio! 3. Leggi la **Guida per Studenti** per capire come utilizzare il corso:
```bash
cat STUDENT-GUIDE.md
```
Vai in `labs/lab-01-iam/` e segui le istruzioni. 4. Se tutti i check passano, sei pronto per iniziare il primo laboratorio!
## Laboratori ## Laboratori
@@ -110,6 +113,7 @@ Deploy PostgreSQL in rete privata con persistenza dati.
``` ```
laboratori-cloud/ laboratori-cloud/
├── STUDENT-GUIDE.md # Guida completa per studenti
├── labs/ # Laboratori (1 per modulo cloud) ├── labs/ # Laboratori (1 per modulo cloud)
│ ├── lab-01-iam/ # IAM & Sicurezza │ ├── lab-01-iam/ # IAM & Sicurezza
│ ├── lab-02-network/ # Network & VPC │ ├── lab-02-network/ # Network & VPC
+254
View File
@@ -0,0 +1,254 @@
# 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:
```bash
git clone https://gitea.lab.home.lucasacchi.net/lucasacchi/laboratori-cloud
cd laboratori-cloud
```
3. Verifica che tutto funzioni:
```bash
./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:**
```bash
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
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:
```bash
# 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
```bash
# 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
```bash
# 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
```bash
# 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
```bash
# 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:
```bash
# 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! 🚀**</content>
<parameter name="filePath">student-guide.md