378 lines
17 KiB
Markdown
378 lines
17 KiB
Markdown
# 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 | 2/3 | In Progress| |
|
|
| 3. Lab 02 - Network & VPC | 0/3 | Not started | - |
|
|
| 4. Lab 03 - Compute & EC2 | 0/3 | Not started | - |
|
|
| 5. Lab 04 - Storage & S3 | 0/3 | Not started | - |
|
|
| 6. Lab 05 - Database & RDS | 0/3 | Not started | - |
|
|
| 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
|
|
|
|
- [x] **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 (1/3 complete)
|
|
- [ ] **Phase 3: Lab 02 - Network & VPC** - Reti bridge isolate, simulazione VPC/Subnets
|
|
- [ ] **Phase 4: Lab 03 - Compute & EC2** - Container con limiti risorse, healthchecks
|
|
- [ ] **Phase 5: Lab 04 - Storage & S3** - Docker Volumes, MinIO S3-compatible
|
|
- [ ] **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):
|
|
1. Studente può clonare la repository e trovare istruzioni chiare per configurare Docker Engine >= 24.0 e Compose V2
|
|
2. Studente può eseguire script di verifica ambiente che controlla Docker, utility di rete, e risorse minime
|
|
3. Studente può eseguire comando di reset completo ambiente (cleanup volumi, reti)
|
|
4. Ogni file docker-compose.yml può essere validato con `docker-compose config` prima dell'uso
|
|
5. Repository ha struttura chiara con cartelle `labs/`, `how-to-guides/`, `reference/`
|
|
|
|
**Plans:** 2
|
|
|
|
- [x] [01-01-PLAN.md](.planning/phases/01-setup-git-foundation/01-01-PLAN.md) — Create validation scripts (check-env.sh, validate-compose.sh, reset-env.sh) **COMPLETE** 2026-03-24
|
|
- [x] [01-02-PLAN.md](.planning/phases/01-setup-git-foundation/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):
|
|
1. Studente può creare utenti Linux con permessi limitati per accesso Docker socket (simulazione IAM Users)
|
|
2. Studente comprende il parallelismo tra utenti Linux/permessi Docker e IAM Users/Roles in cloud
|
|
3. Nessun container gira come root (principio minimo privilegio verificato)
|
|
4. Lab include Tutorial passo-passo, How-to Guides, Reference, e Explanation (Framework Diátaxis completo)
|
|
5. Studente può eseguire comando di verifica finale ("double check") per validare il lavoro svolto
|
|
|
|
**Plans:** 2/3 plans executed
|
|
|
|
- [x] [02-01-PLAN.md](.planning/phases/02-lab-01-iam-sicurezza/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](.planning/phases/02-lab-01-iam-sicurezza/02-02-PLAN.md) — Create Diátaxis documentation (Tutorial: 3 parts, How-to Guides: 3 guides, Reference: 3 documents, Explanation: IAM parallels)
|
|
- [ ] [02-03-PLAN.md](.planning/phases/02-lab-01-iam-sicurezza/02-03-PLAN.md) — Create infrastructure (Dockerfile with non-root user, docker-compose.yml with user directive, infrastructure verification)
|
|
|
|
---
|
|
|
|
### 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):
|
|
1. Studente può creare reti Docker bridge isolate per simulare VPC e Subnets (pubbliche/private)
|
|
2. Reti private non espongono porte sull'host (max 127.0.0.1, mai 0.0.0.0)
|
|
3. Studente comprende il parallelismo tra Docker Bridge Networks e VPC cloud (isolamento, DNS resolution)
|
|
4. Studente può verificare isolamento tra reti con test di connettività (ping, curl, netcat)
|
|
5. Lab include Documentazione Diátaxis completa con architettura locale che usa nomenclatura cloud
|
|
|
|
**Plans:** TBD
|
|
|
|
---
|
|
|
|
### 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):
|
|
1. Studente può deploy container con limiti CPU/memoria obbligatori (simulazione instance types)
|
|
2. Studente può implementare healthchecks per verificare che servizi siano "healthy" prima di dipendenze
|
|
3. Tutti i container hanno `cpus` e `mem_limit` configurati (enforcement risorse cloud)
|
|
4. Studente comprende il parallelismo tra container con limiti e EC2 instances con instance types
|
|
5. Lab include test che verificano resource limits con `docker stats` e healthcheck readiness
|
|
|
|
**Plans:** TBD
|
|
|
|
---
|
|
|
|
### 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):
|
|
1. Studente può configurare Docker Volumes nominativi che persistono dati oltre riavvio container
|
|
2. Studente può deploy MinIO per storage oggetti compatibile al 100% con API S3
|
|
3. Dati persistenti sopravvivono a riavvio container (named volumes verificati)
|
|
4. Studente comprende il parallelismo tra Docker Volumes → EBS e MinIO → S3
|
|
5. 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):
|
|
1. Studente può deploy PostgreSQL/MySQL in rete privata isolata (simulazione RDS in VPC privata)
|
|
2. Database in rete privata non è accessibile dall'host, solo da container nella stessa rete
|
|
3. Dati database persistono in named volume che sopravvive a riavvio container
|
|
4. Studente comprende il parallelismo tra container database in rete privata e RDS/Aurora in VPC privata cloud
|
|
5. 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):
|
|
1. Script di test verificano criteri sicurezza: nessun container root, reti isolate, limiti risorse
|
|
2. Script di test verificano funzionalità: connettività cross-reti, persistenza dati, accessibilità servizi
|
|
3. Ogni lab include sezione troubleshooting con errori comuni e soluzioni (BUGS.md pattern)
|
|
4. Test cross-lab validano architettura completa (app → database → storage attraverso reti isolate)
|
|
5. 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):
|
|
1. Ogni lab ha branch isolato (lab-01-iam, lab-02-network, etc.) con merge su main solo quando completo
|
|
2. Commit seguono Conventional Commits (`feat:`, `test:`, `docs:`) e sono atomici
|
|
3. Repository ha cartelle chiare: `labs/` (per lab), `how-to-guides/` (guide generali), `reference/` (specifiche tecniche)
|
|
4. README radice include istruzioni cloning, setup iniziale, e overview dei 5 laboratori
|
|
5. 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):
|
|
1. Ogni lab include sezione troubleshooting con errori comuni e soluzioni (pattern BUGS.md)
|
|
2. How-to Guides coprono procedure specifiche slegate dal flusso (es. "Come ripulire volumi Docker", "Come generare chiavi SSH")
|
|
3. Comandi di "double check" forniscono verifica finale unambiguous per ogni lab
|
|
4. Troubleshooting include differenze tra comportamento locale e cloud (dove applicable)
|
|
5. 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):
|
|
1. Tutti i 5 laboratori sono eseguibili end-to-end senza errori (`docker-compose up` funziona)
|
|
2. Tutti i 4 documenti Diátaxis sono completi per ogni lab (Tutorial, How-to, Reference, Explanation)
|
|
3. Tutti i criteri sicurezza sono verificati: no root, reti isolate, limiti risorse, persistenza dati
|
|
4. Tutti i parallelismi cloud ↔ locale sono documentati: Docker Networks → VPC, MinIO → S3, PostgreSQL → RDS
|
|
5. 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 config` prima 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-24*
|