Phase 6 (Lab 05 Database & RDS): - 06-SUMMARY.md: Complete lab summary (90 min, 17 files) Lab 05 integrates ALL previous concepts: - Lab 01: Non-root containers (INF-01) ✓ - Lab 02: Private networks (INF-02) ✓ - Lab 03: Resource limits (INF-03) ✓ - Lab 04: Named volumes (INF-04) ✓ Key features: - PostgreSQL in private network → RDS in VPC - Named volume → EBS volume - Resource limits → DB instance class - Complete Diátaxis documentation ROADMAP: Updated to reflect Phase 6 completion Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
18 KiB
ROADMAP: Laboratori Cloud - Corso Soluzioni Cloud
Created: 2026-03-24 Granularity: Fine Total Phases: 10 Coverage: 40/40 requirements mapped
Progress Summary
| Phase | Plans Complete | Status | Completed |
|---|---|---|---|
| 1. Setup & Git Foundation | 2/2 | Complete | 2026-03-24 |
| 2. Lab 01 - IAM & Sicurezza | 3/3 | Complete | 2026-03-24 |
| 3. Lab 02 - Network & VPC | 3/3 | Complete | 2026-03-25 |
| 4. Lab 03 - Compute & EC2 | 3/3 | Complete | 2026-04-03 |
| 5. Lab 04 - Storage & S3 | 1/1 | Complete | 2026-04-03 |
| 6. Lab 05 - Database & RDS | 1/1 | Complete | 2026-04-03 |
| 7. Integration & Testing | 0/2 | Not started | - |
| 8. Repository Structure | 0/2 | Not started | - |
| 9. Troubleshooting Docs | 0/2 | Not started | - |
| 10. Final Validation | 0/2 | Not started | - |
Phases
Phase Overview
- Phase 1: Setup & Git Foundation - Repository setup, ambiente di sviluppo, requisiti sistema COMPLETE
- Phase 2: Lab 01 - IAM & Sicurezza - Utenti Linux, permessi Docker, volume basics COMPLETE
- Phase 3: Lab 02 - Network & VPC - Reti bridge isolate, simulazione VPC/Subnets COMPLETE
- Phase 4: Lab 03 - Compute & EC2 - Container con limiti risorse, healthchecks COMPLETE
- Phase 5: Lab 04 - Storage & S3 - Docker Volumes, MinIO S3-compatible COMPLETE
- Phase 6: Lab 05 - Database & RDS - PostgreSQL in rete privata, persistenza dati COMPLETE
- Phase 6: Lab 05 - Database & RDS - PostgreSQL in rete privata, persistenza dati
- Phase 7: Integration & Testing - Test cross-lab, validazione architettura completa
- Phase 8: Repository Structure - Organizzazione file, cartelle, README
- Phase 9: Troubleshooting Docs - Guide risoluzione problemi comuni
- Phase 10: Final Validation - Validazione completa, double check finale
Phase Details
Phase 1: Setup & Git Foundation
Goal: Repository Git strutturato con Conventional Commits, ambiente di sviluppo configurato, requisiti sistema documentati
Depends on: Nothing (first phase)
Requirements: GIT-04, GIT-05, SETUP-01, SETUP-02, SETUP-03, SETUP-04, SETUP-05, INF-05
Success Criteria (what must be TRUE):
- Studente può clonare la repository e trovare istruzioni chiare per configurare Docker Engine >= 24.0 e Compose V2
- Studente può eseguire script di verifica ambiente che controlla Docker, utility di rete, e risorse minime
- Studente può eseguire comando di reset completo ambiente (cleanup volumi, reti)
- Ogni file docker-compose.yml può essere validato con
docker-compose configprima dell'uso - Repository ha struttura chiara con cartelle
labs/,how-to-guides/,reference/
Plans: 2
- 01-01-PLAN.md — Create validation scripts (check-env.sh, validate-compose.sh, reset-env.sh) COMPLETE 2026-03-24
- 01-02-PLAN.md — Create repository structure and README.md COMPLETE 2026-03-24
Phase 2: Lab 01 - IAM & Sicurezza
Goal: Studente configura utenti Linux, gruppi, permessi Docker socket, e capisce IAM parallels
Depends on: Phase 1
Requirements: LAB-01, DOCT-01, DOCT-02, DOCT-03, DOCT-04, DOCT-05, TEST-01, TEST-05, INF-01, PARA-01, PARA-03, PARA-04
Success Criteria (what must be TRUE):
- Studente può creare utenti Linux con permessi limitati per accesso Docker socket (simulazione IAM Users)
- Studente comprende il parallelismo tra utenti Linux/permessi Docker e IAM Users/Roles in cloud
- Nessun container gira come root (principio minimo privilegio verificato)
- Lab include Tutorial passo-passo, How-to Guides, Reference, e Explanation (Framework Diátaxis completo)
- Studente può eseguire comando di verifica finale ("double check") per validare il lavoro svolto
Plans: 3
- 02-01-PLAN.md — Create test infrastructure (Wave 0: test-01-user-creation.sh, test-02-docker-access.sh, 03-non-root-test.sh, 99-final-verification.sh, run-all-tests.sh) COMPLETE 2026-03-24
- 02-02-PLAN.md — Create Diátaxis documentation (Tutorial: 3 parts, How-to Guides: 3 guides, Reference: 3 documents, Explanation: IAM parallels) COMPLETE 2026-03-24
- 02-03-PLAN.md — Create infrastructure (Dockerfile with non-root user, docker-compose.yml with user directive, infrastructure verification) COMPLETE 2026-03-24
Phase 3: Lab 02 - Network & VPC
Goal: Studente crea reti Docker bridge isolate che simulano VPC e Subnets cloud
Depends on: Phase 2
Requirements: LAB-02, DOCT-01, DOCT-02, DOCT-03, DOCT-04, DOCT-05, TEST-01, TEST-05, INF-02, PARA-01, PARA-02, PARA-03, PARA-04
Success Criteria (what must be TRUE):
- Studente può creare reti Docker bridge isolate per simulare VPC e Subnets (pubbliche/private)
- Reti private non espongono porte sull'host (max 127.0.0.1, mai 0.0.0.0)
- Studente comprende il parallelismo tra Docker Bridge Networks e VPC cloud (isolamento, DNS resolution)
- Studente può verificare isolamento tra reti con test di connettività (ping, curl, netcat)
- Lab include Documentazione Diátaxis completa con architettura locale che usa nomenclatura cloud
Plans: 3
- 03-01-PLAN.md — Create test infrastructure (Wave 0: network creation tests, isolation tests, INF-02 compliance tests, final verification) COMPLETE 2026-03-25
- 03-02-PLAN.md — Create Diátaxis documentation (Tutorial: 3 parts, How-to: 4 guides, Reference: 3 docs, Explanation: VPC parallels) COMPLETE 2026-03-25
- 03-03-PLAN.md — Create infrastructure (docker-compose.yml with VPC networks, Dockerfile for API service, infrastructure verification) COMPLETE 2026-03-25
Phase 4: Lab 03 - Compute & EC2
Goal: Studente deploy container con limiti CPU/memoria e healthchecks (simulazione EC2)
Depends on: Phase 3
Requirements: LAB-03, DOCT-01, DOCT-02, DOCT-03, DOCT-04, DOCT-05, TEST-01, TEST-05, INF-03, PARA-01, PARA-03, PARA-04
Success Criteria (what must be TRUE):
- Studente può deploy container con limiti CPU/memoria obbligatori (simulazione instance types)
- Studente può implementare healthchecks per verificare che servizi siano "healthy" prima di dipendenze
- Tutti i container hanno
cpusemem_limitconfigurati (enforcement risorse cloud) - Studente comprende il parallelismo tra container con limiti e EC2 instances con instance types
- Lab include test che verificano resource limits con
docker statse healthcheck readiness
Plans: 3
- 04-01-PLAN.md — Create test infrastructure (Wave 0: resource limits tests, healthcheck tests, enforcement tests, final verification) COMPLETE 2026-04-03
- 04-02-PLAN.md — Create Diátaxis documentation (Tutorial: 3 parts, How-to: 4 guides, Reference: 3 docs, Explanation: EC2 parallels) COMPLETE 2026-04-03
- 04-03-PLAN.md — Create infrastructure (docker-compose.yml with resource limits, healthchecks, Dockerfile, infrastructure verification) COMPLETE 2026-04-03
Phase 5: Lab 04 - Storage & S3
Goal: Studente configura Docker Volumes e MinIO per storage S3-compatible
Depends on: Phase 3 (uses Lab 2 networking)
Requirements: LAB-04, DOCT-01, DOCT-02, DOCT-03, DOCT-04, DOCT-05, TEST-01, TEST-05, INF-04, PARA-01, PARA-03, PARA-04
Success Criteria (what must be TRUE):
- Studente può configurare Docker Volumes nominativi che persistono dati oltre riavvio container
- Studente può deploy MinIO per storage oggetti compatibile al 100% con API S3
- Dati persistenti sopravvivono a riavvio container (named volumes verificati)
- Studente comprende il parallelismo tra Docker Volumes → EBS e MinIO → S3
- Lab include test che verificano persistenza dati (stop container, restart, dati presenti)
Plans: TBD
Phase 6: Lab 05 - Database & RDS
Goal: Studente deploy database PostgreSQL in rete privata con volume persistente (simulazione RDS)
Depends on: Phase 3, Phase 4, Phase 5
Requirements: LAB-05, DOCT-01, DOCT-02, DOCT-03, DOCT-04, DOCT-05, TEST-01, TEST-05, INF-02, INF-03, INF-04, PARA-01, PARA-02, PARA-03, PARA-04
Success Criteria (what must be TRUE):
- Studente può deploy PostgreSQL/MySQL in rete privata isolata (simulazione RDS in VPC privata)
- Database in rete privata non è accessibile dall'host, solo da container nella stessa rete
- Dati database persistono in named volume che sopravvive a riavvio container
- Studente comprende il parallelismo tra container database in rete privata e RDS/Aurora in VPC privata cloud
- Lab integra tutti i concetti precedenti (Network + Compute + Storage) in architettura multi-tier completa
Plans: TBD
Phase 7: Integration & Testing
Goal: Test cross-lab validano architettura completa e criteri sicurezza
Depends on: Phase 2, Phase 3, Phase 4, Phase 5, Phase 6
Requirements: TEST-02, TEST-03, TEST-04, INF-01, INF-02, INF-03, INF-04
Success Criteria (what must be TRUE):
- Script di test verificano criteri sicurezza: nessun container root, reti isolate, limiti risorse
- Script di test verificano funzionalità: connettività cross-reti, persistenza dati, accessibilità servizi
- Ogni lab include sezione troubleshooting con errori comuni e soluzioni (BUGS.md pattern)
- Test cross-lab validano architettura completa (app → database → storage attraverso reti isolate)
- Test seguono methodology TDI: RED (test fallimentare) → GREEN (implementazione) → REFACTOR (ottimizzazione)
Plans: TBD
Phase 8: Repository Structure
Goal: Repository organizzata con struttura chiara per studenti e istruttori
Depends on: Phase 2, Phase 3, Phase 4, Phase 5, Phase 6, Phase 7
Requirements: GIT-01, GIT-02, GIT-03, GIT-05
Success Criteria (what must be TRUE):
- Ogni lab ha branch isolato (lab-01-iam, lab-02-network, etc.) con merge su main solo quando completo
- Commit seguono Conventional Commits (
feat:,test:,docs:) e sono atomici - Repository ha cartelle chiare:
labs/(per lab),how-to-guides/(guide generali),reference/(specifiche tecniche) - README radice include istruzioni cloning, setup iniziale, e overview dei 5 laboratori
- Struttura consente a studente di navigare facilmente tra Tutorial (step-by-step) e Reference (spec tecniche)
Plans: TBD
Phase 9: Troubleshooting Docs
Goal: Documentazione completa troubleshooting per errori comuni in ogni lab
Depends on: Phase 2, Phase 3, Phase 4, Phase 5, Phase 6, Phase 7
Requirements: TEST-04, TEST-05, DOCT-02
Success Criteria (what must be TRUE):
- Ogni lab include sezione troubleshooting con errori comuni e soluzioni (pattern BUGS.md)
- How-to Guides coprono procedure specifiche slegate dal flusso (es. "Come ripulire volumi Docker", "Come generare chiavi SSH")
- Comandi di "double check" forniscono verifica finale unambiguous per ogni lab
- Troubleshooting include differenze tra comportamento locale e cloud (dove applicable)
- Guide troubleshooting seguono principio "little often" (piccoli problemi, frequente pratica)
Plans: TBD
Phase 10: Final Validation
Goal: Validazione completa del corso: tutti i laboratori funzionano, documentazione completa, criteri qualità soddisfatti
Depends on: Phase 8, Phase 9
Requirements: TEST-02, TEST-03, INF-01, INF-02, INF-03, INF-04, INF-05, PARA-01, PARA-02, PARA-03, PARA-04
Success Criteria (what must be TRUE):
- Tutti i 5 laboratori sono eseguibili end-to-end senza errori (
docker-compose upfunziona) - Tutti i 4 documenti Diátaxis sono completi per ogni lab (Tutorial, How-to, Reference, Explanation)
- Tutti i criteri sicurezza sono verificati: no root, reti isolate, limiti risorse, persistenza dati
- Tutti i parallelismi cloud ↔ locale sono documentati: Docker Networks → VPC, MinIO → S3, PostgreSQL → RDS
- Checklist qualità completata: Diátaxis (4 documenti), TDD (test pre-implementazione), Git workflow, Safety first, Double check
Plans: TBD
Traceability
Every v1 requirement mapped to exactly one phase:
Setup & Git (Phase 1)
- GIT-04: README include istruzioni cloning e setup iniziale
- GIT-05: Struttura repo chiara con cartelle
labs/,how-to-guides/,reference/ - SETUP-01: Documentato requisito Docker Engine >= 24.0 e Compose V2
- SETUP-02: Documentato requisito utility di rete (netcat, curl, iproute2)
- SETUP-03: Specificate risorse minime consigliate (RAM, CPU)
- SETUP-04: Fornito script di verifica ambiente (check Docker, check versioni)
- SETUP-05: Fornito comando di reset completo ambiente (cleanup volumi, reti)
- INF-05: File docker-compose.yml validati con
docker-compose configprima dell'uso
Lab 01 - IAM (Phase 2)
- LAB-01: Studente può configurare utenti Linux, gruppi e permessi per accesso Docker socket
- DOCT-01: Lab 01 include Tutorial (guida passo-passo incrementale)
- DOCT-02: Lab 01 include How-to Guides (procedure specifiche)
- DOCT-03: Lab 01 include Reference (specifiche tecniche)
- DOCT-04: Lab 01 include Explanation (parallelismo Docker ↔ cloud)
- DOCT-05: Tutorial Lab 01 segue principio "little often"
- TEST-01: Lab 01 include script di test bash pre-implementazione
- TEST-05: Lab 01 include comando di verifica finale ("double check")
- INF-01: Nessun container gira come utente root
- PARA-01: Componente Docker (utenti Linux) mappato a servizio cloud (IAM Users)
- PARA-03: Differenze tra locale e cloud documentate esplicitamente
- PARA-04: Comandi Docker equivalenti a comandi cloud mostrati a confronto
Lab 02 - Network (Phase 3)
- LAB-02: Studente può creare reti Docker bridge isolate per simulare VPC/Subnets
- DOCT-01: Lab 02 include Tutorial
- DOCT-02: Lab 02 include How-to Guides
- DOCT-03: Lab 02 include Reference
- DOCT-04: Lab 02 include Explanation
- DOCT-05: Tutorial Lab 02 segue "little often"
- TEST-01: Lab 02 include script di test bash pre-implementazione
- TEST-05: Lab 02 include comando di verifica finale
- INF-02: Reti private non espongono porte sull'host
- PARA-01: Docker Bridge Networks mappate a VPC/Subnets
- PARA-02: Architettura locale usa nomenclatura cloud (VPC, subnet, security groups)
- PARA-03: Differenze locale/cloud documentate
- PARA-04: Comandi Docker equivalenti mostrati
Lab 03 - Compute (Phase 4)
- LAB-03: Studente può deploy container con limiti CPU/memoria e healthchecks
- DOCT-01: Lab 03 include Tutorial
- DOCT-02: Lab 03 include How-to Guides
- DOCT-03: Lab 03 include Reference
- DOCT-04: Lab 03 include Explanation
- DOCT-05: Tutorial Lab 03 segue "little often"
- TEST-01: Lab 03 include script di test bash pre-implementazione
- TEST-05: Lab 03 include comando di verifica finale
- INF-03: Tutti i container hanno limiti risorse obbligatori
- PARA-01: Container con limiti mappati a EC2 instances
- PARA-03: Differenze locale/cloud documentate
- PARA-04: Comandi Docker equivalenti mostrati
Lab 04 - Storage (Phase 5)
- LAB-04: Studente può configurare Docker volumes e MinIO per storage S3-compatible
- DOCT-01: Lab 04 include Tutorial
- DOCT-02: Lab 04 include How-to Guides
- DOCT-03: Lab 04 include Reference
- DOCT-04: Lab 04 include Explanation
- DOCT-05: Tutorial Lab 04 segue "little often"
- TEST-01: Lab 04 include script di test bash pre-implementazione
- TEST-05: Lab 04 include comando di verifica finale
- INF-04: Dati persistenti sopravvivono a riavvio container (named volumes)
- PARA-01: Docker Volumes → EBS, MinIO → S3
- PARA-03: Differenze locale/cloud documentate
- PARA-04: Comandi Docker equivalenti mostrati
Lab 05 - Database (Phase 6)
- LAB-05: Studente può deploy database PostgreSQL in rete privata con volume persistente
- DOCT-01: Lab 05 include Tutorial
- DOCT-02: Lab 05 include How-to Guides
- DOCT-03: Lab 05 include Reference
- DOCT-04: Lab 05 include Explanation
- DOCT-05: Tutorial Lab 05 segue "little often"
- TEST-01: Lab 05 include script di test bash pre-implementazione
- TEST-05: Lab 05 include comando di verifica finale
- INF-02: Database in rete privata (usa Lab 2 networking)
- INF-03: Database ha limiti risorse
- INF-04: Database usa named volume per persistenza
- PARA-01: PostgreSQL in rete privata → RDS in VPC privata
- PARA-02: Architettura usa nomenclatura cloud (VPC, subnet)
- PARA-03: Differenze locale/cloud documentate
- PARA-04: Comandi Docker equivalenti mostrati
Integration & Testing (Phase 7)
- TEST-02: Script verificano criteri di sicurezza (no root, reti isolate, limiti risorse)
- TEST-03: Script verificano funzionalità (connettività, persistenza dati, accessibilità)
- TEST-04: Ogni lab include sezione troubleshooting con errori comuni e soluzioni
- INF-01: Validazione nessun container root across tutti labs
- INF-02: Validazione reti private across tutti labs
- INF-03: Validazione limiti risorse across tutti labs
- INF-04: Validazione persistenza dati across tutti labs
Repository Structure (Phase 8)
- GIT-01: Ogni lab sviluppato su branch isolato
- GIT-02: Commit seguono Conventional Commits
- GIT-03: Commit sono atomici
- GIT-05: Struttura repo chiara confermata
Troubleshooting Docs (Phase 9)
- TEST-04: Sezioni troubleshooting complete per ogni lab
- TEST-05: Comandi double check per ogni lab
- DOCT-02: How-to Guides per procedure specifiche
Final Validation (Phase 10)
- TEST-02: Validazione finale criteri sicurezza
- TEST-03: Validazione finale funzionalità
- INF-01: Validazione finale no root
- INF-02: Validazione finale reti isolate
- INF-03: Validazione finale limiti risorse
- INF-04: Validazione finale persistenza dati
- INF-05: Validazione finale docker-compose config
- PARA-01: Validazione finale parallelismi cloud-locale
- PARA-02: Validazione finale nomenclatura cloud
- PARA-03: Validazione finale differenze documentate
- PARA-04: Validazione finale comandi equivalenti
Coverage Validation
Total v1 requirements: 40 Mapped to phases: 40 Orphaned requirements: 0 Duplicate mappings: 0
Coverage: 100%
Last updated: 2026-03-25