docs: create roadmap (10 phases)
This commit is contained in:
@@ -100,51 +100,52 @@ Esplicitamente esclusi. Documentati per prevenire scope creep.
|
|||||||
|
|
||||||
## Traceability
|
## Traceability
|
||||||
|
|
||||||
Quali fasi coprono quali requisiti. Aggiornato durante creazione roadmap.
|
Quali fasi coprono quali requisiti. Aggiornato dopo creazione roadmap.
|
||||||
|
|
||||||
| Requirement | Phase | Status |
|
| Requirement | Phase | Status |
|
||||||
|-------------|-------|--------|
|
|-------------|-------|--------|
|
||||||
| LAB-01 | Phase 1 | Pending |
|
| LAB-01 | Phase 2 | Pending |
|
||||||
| LAB-02 | Phase 2 | Pending |
|
| LAB-02 | Phase 3 | Pending |
|
||||||
| LAB-03 | Phase 3 | Pending |
|
| LAB-03 | Phase 4 | Pending |
|
||||||
| LAB-04 | Phase 4 | Pending |
|
| LAB-04 | Phase 5 | Pending |
|
||||||
| LAB-05 | Phase 5 | Pending |
|
| LAB-05 | Phase 6 | Pending |
|
||||||
| DOCT-01 | Phase 1-5 | Pending |
|
| DOCT-01 | Phase 2,3,4,5,6 | Pending |
|
||||||
| DOCT-02 | Phase 1-5 | Pending |
|
| DOCT-02 | Phase 2,3,4,5,6,9 | Pending |
|
||||||
| DOCT-03 | Phase 1-5 | Pending |
|
| DOCT-03 | Phase 2,3,4,5,6 | Pending |
|
||||||
| DOCT-04 | Phase 1-5 | Pending |
|
| DOCT-04 | Phase 2,3,4,5,6 | Pending |
|
||||||
| DOCT-05 | Phase 1-5 | Pending |
|
| DOCT-05 | Phase 2,3,4,5,6 | Pending |
|
||||||
| TEST-01 | Phase 1-5 | Pending |
|
| TEST-01 | Phase 2,3,4,5,6 | Pending |
|
||||||
| TEST-02 | Phase 1-5 | Pending |
|
| TEST-02 | Phase 7,10 | Pending |
|
||||||
| TEST-03 | Phase 1-5 | Pending |
|
| TEST-03 | Phase 7,10 | Pending |
|
||||||
| TEST-04 | Phase 1-5 | Pending |
|
| TEST-04 | Phase 7,9 | Pending |
|
||||||
| TEST-05 | Phase 1-5 | Pending |
|
| TEST-05 | Phase 2,3,4,5,6,9 | Pending |
|
||||||
| INF-01 | Phase 1-5 | Pending |
|
| INF-01 | Phase 2,7,10 | Pending |
|
||||||
| INF-02 | Phase 2-5 | Pending |
|
| INF-02 | Phase 3,6,7,10 | Pending |
|
||||||
| INF-03 | Phase 3-5 | Pending |
|
| INF-03 | Phase 4,6,7,10 | Pending |
|
||||||
| INF-04 | Phase 4-5 | Pending |
|
| INF-04 | Phase 5,6,7,10 | Pending |
|
||||||
| INF-05 | Phase 1-5 | Pending |
|
| INF-05 | Phase 1,10 | Pending |
|
||||||
| GIT-01 | Phase 1-5 | Pending |
|
| GIT-01 | Phase 8 | Pending |
|
||||||
| GIT-02 | Phase 1-5 | Pending |
|
| GIT-02 | Phase 8 | Pending |
|
||||||
| GIT-03 | Phase 1-5 | Pending |
|
| GIT-03 | Phase 8 | Pending |
|
||||||
| GIT-04 | Phase 1 | Pending |
|
| GIT-04 | Phase 1 | Pending |
|
||||||
| GIT-05 | Phase 1 | Pending |
|
| GIT-05 | Phase 1,8 | Pending |
|
||||||
| PARA-01 | Phase 1-5 | Pending |
|
| PARA-01 | Phase 2,3,4,5,6,10 | Pending |
|
||||||
| PARA-02 | Phase 2-5 | Pending |
|
| PARA-02 | Phase 3,6,10 | Pending |
|
||||||
| PARA-03 | Phase 1-5 | Pending |
|
| PARA-03 | Phase 2,3,4,5,6,10 | Pending |
|
||||||
| PARA-04 | Phase 1-5 | Pending |
|
| PARA-04 | Phase 2,3,4,5,6,10 | Pending |
|
||||||
| SETUP-01 | Phase 1 | Pending |
|
| SETUP-01 | Phase 1 | Pending |
|
||||||
| SETUP-02 | Phase 1 | Pending |
|
| SETUP-02 | Phase 1 | Pending |
|
||||||
| SETUP-03 | Phase 1 | Pending |
|
| SETUP-03 | Phase 1 | Pending |
|
||||||
| SETUP-04 | Phase 1 | Pending |
|
| SETUP-04 | Phase 1 | Pending |
|
||||||
| SETUP-05 | Phase 1-5 | Pending |
|
| SETUP-05 | Phase 1 | Pending |
|
||||||
|
|
||||||
**Coverage:**
|
**Coverage:**
|
||||||
- v1 requirements: 40 total
|
- v1 requirements: 40 total
|
||||||
- Mapped to phases: 0 (pending roadmap creation)
|
- Mapped to phases: 40 ✓
|
||||||
- Unmapped: 40 ⚠️
|
- Unmapped: 0
|
||||||
|
- Orphaned requirements: 0
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
*Requirements defined: 2026-03-24*
|
*Requirements defined: 2026-03-24*
|
||||||
*Last updated: 2026-03-24 after initial definition*
|
*Last updated: 2026-03-24 after roadmap creation*
|
||||||
|
|||||||
370
.planning/ROADMAP.md
Normal file
370
.planning/ROADMAP.md
Normal file
@@ -0,0 +1,370 @@
|
|||||||
|
# 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 | 0/2 | Not started | - |
|
||||||
|
| 2. Lab 01 - IAM & Sicurezza | 0/3 | Not started | - |
|
||||||
|
| 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
|
||||||
|
|
||||||
|
- [ ] **Phase 1: Setup & Git Foundation** - Repository setup, ambiente di sviluppo, requisiti sistema
|
||||||
|
- [ ] **Phase 2: Lab 01 - IAM & Sicurezza** - Utenti Linux, permessi Docker, volume basics
|
||||||
|
- [ ] **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:** TBD
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 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-paso, 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:** TBD
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 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*
|
||||||
163
.planning/STATE.md
Normal file
163
.planning/STATE.md
Normal file
@@ -0,0 +1,163 @@
|
|||||||
|
# STATE: Laboratori Cloud - Corso Soluzioni Cloud
|
||||||
|
|
||||||
|
**Last Updated:** 2026-03-24
|
||||||
|
**Current Phase:** Phase 1 (Setup & Git Foundation)
|
||||||
|
**Overall Progress:** 0/10 phases complete
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Project Reference
|
||||||
|
|
||||||
|
**What this is:**
|
||||||
|
Un corso pratico di 5 laboratori per imparare le tecnologie Cloud attraverso simulazioni locali con Docker. Ogni lab simula servizi cloud core (IAM, Network, Compute, Storage, Database) usando container e reti isolate, con paralleli diretti a servizi AWS/Azure/GCP.
|
||||||
|
|
||||||
|
**Core Value:**
|
||||||
|
Gli studenti imparano i concetti cloud praticamente in locale, senza costi o complessità di account cloud reali.
|
||||||
|
|
||||||
|
**Current Focus:**
|
||||||
|
Setup iniziale repository Git, configurazione ambiente di sviluppo, documentazione requisiti sistema.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Current Position
|
||||||
|
|
||||||
|
**Phase:** 1 - Setup & Git Foundation
|
||||||
|
**Status:** Not started
|
||||||
|
**Plans:** 0/2 complete
|
||||||
|
|
||||||
|
**Progress Bar:**
|
||||||
|
```
|
||||||
|
[░░░░░░░░░░] 0% complete
|
||||||
|
Phase 1: [░░░░░░░░░░] Not started
|
||||||
|
```
|
||||||
|
|
||||||
|
**Current Plan:** TBD
|
||||||
|
|
||||||
|
**What we're working on:**
|
||||||
|
Configurazione repository Git con struttura chiara, documentazione requisiti Docker/Compose, script verifica ambiente.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Performance Metrics
|
||||||
|
|
||||||
|
**Phase Completion Rate:** 0/10 (0%)
|
||||||
|
**Plans Completion Rate:** 0/26 (0%)
|
||||||
|
**Requirements Coverage:** 40/40 (100%) - All mapped to phases
|
||||||
|
|
||||||
|
**Milestones:**
|
||||||
|
- [ ] Phase 1-5: Core Labs (IAM, Network, Compute, Storage, Database)
|
||||||
|
- [ ] Phase 6: Integration & Testing
|
||||||
|
- [ ] Phase 7-10: Polish & Final Validation
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Accumulated Context
|
||||||
|
|
||||||
|
### Key Decisions Made
|
||||||
|
|
||||||
|
| Decision | Rationale | Outcome |
|
||||||
|
|----------|-----------|---------|
|
||||||
|
| Docker per simulazione | Standard mercato, isolamento nativo, setup riproducibile | Stack definito in PROJECT.md |
|
||||||
|
| MinIO per Object Storage | Compatibilità 100% API S3, leggero per locale | Confermato in research |
|
||||||
|
| 5 Lab core structure | Progressione naturale: IAM → Network → Compute → Storage → Database | Confermato in research |
|
||||||
|
| Framework Diátaxis obbligatorio | Copre tutti gli stili di apprendimento | Ogni lab include 4 documenti |
|
||||||
|
| TDD per infrastruttura | Garantisce verificabilità criteri sicurezza | Script test pre-implementazione |
|
||||||
|
| Fine granularity (10 phases) | Permette delivery incrementale e feedback frequente | Confermato in config.json |
|
||||||
|
|
||||||
|
### Technical Context
|
||||||
|
|
||||||
|
**Stack Tecnologico:**
|
||||||
|
- Docker Engine >= 24.0, Docker Compose V2
|
||||||
|
- PostgreSQL 18.x o MySQL 9.x (Database)
|
||||||
|
- MinIO RELEASE.2025+ (Object Storage)
|
||||||
|
- Utility rete: netcat, curl, iproute2
|
||||||
|
|
||||||
|
**Architettura Lab:**
|
||||||
|
- Lab 1 (IAM): Utenti Linux, permessi Docker socket
|
||||||
|
- Lab 2 (Network): Reti bridge isolate, VPC/Subnets simulation
|
||||||
|
- Lab 3 (Compute): Container con limiti CPU/memoria, healthchecks
|
||||||
|
- Lab 4 (Storage): Docker Volumes, MinIO S3-compatible
|
||||||
|
- Lab 5 (Database): PostgreSQL in rete privata, volume persistente
|
||||||
|
|
||||||
|
**Parallelismi Cloud ↔ Locale:**
|
||||||
|
- Docker Bridge Networks → VPC/Subnets
|
||||||
|
- MinIO → S3
|
||||||
|
- PostgreSQL → RDS
|
||||||
|
- Container con limiti → EC2 instances
|
||||||
|
- Utenti Linux/permessi → IAM Users/Roles
|
||||||
|
|
||||||
|
### Active Todos
|
||||||
|
|
||||||
|
**Phase 1 - Next Actions:**
|
||||||
|
1. Creare repository structure con cartelle `labs/`, `how-to-guides/`, `reference/`
|
||||||
|
2. Scrivere README con istruzioni cloning e setup iniziale
|
||||||
|
3. Documentare requisiti Docker Engine >= 24.0 e Compose V2
|
||||||
|
4. Creare script verifica ambiente (check Docker, versioni, risorse minime)
|
||||||
|
5. Creare comando cleanup/reset completo ambiente
|
||||||
|
6. Configurare Conventional Commits per repository
|
||||||
|
|
||||||
|
### Known Blockers
|
||||||
|
|
||||||
|
None identified.
|
||||||
|
|
||||||
|
### Risks & Mitigations
|
||||||
|
|
||||||
|
| Risk | Impact | Mitigation |
|
||||||
|
|------|--------|------------|
|
||||||
|
| Setup locale complesso per studenti | Alto | Script verifica automatizzato, VM pre-configurata (v2) |
|
||||||
|
| Compatibilità Docker versioni | Medio | Documentazione requisiti chiara, script check versioni |
|
||||||
|
| Studenti non capiscono parallelismi cloud | Alto - didattico | Explanation documents espliciti per ogni lab |
|
||||||
|
| Problemi networking (iptables complessi) | Medio | Research indica Lab 2 può richiedere targeted research |
|
||||||
|
| OOM killer su host con risorse limitate | Medio | Limiti risorsa obbligatori, raccomandazione 16GB RAM |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Session Continuity
|
||||||
|
|
||||||
|
### Last Session Actions
|
||||||
|
|
||||||
|
**2026-03-24 - Initialization:**
|
||||||
|
- Created PROJECT.md con definizione corso e core value
|
||||||
|
- Created REQUIREMENTS.md con 40 v1 requirements
|
||||||
|
- Completed research con HIGH confidence
|
||||||
|
- Created ROADMAP.md con 10 phases, 100% coverage
|
||||||
|
- Created STATE.md per project memory
|
||||||
|
|
||||||
|
### Context Handoff
|
||||||
|
|
||||||
|
**What to know for next session:**
|
||||||
|
1. Questo è un corso didattico, non un prodotto commerciale — focus su learning outcomes
|
||||||
|
2. Framework Diátaxis è OBBLIGATORIO per ogni lab (Tutorial + How-to + Reference + Explanation)
|
||||||
|
3. Safety first è principio guida: no root, reti isolate, limiti risorse non negoziabili
|
||||||
|
4. TDD per infrastruttura: prima test (RED), poi implementazione (GREEN), poi ottimizzazione (REFACTOR)
|
||||||
|
5. Parallelismi cloud ↔ locale sono il cuore del valore educativo — devono essere espliciti
|
||||||
|
6. Granularity FINE significa 10 phases per delivery incrementale e feedback frequente
|
||||||
|
7. Repository usa Conventional Commits e branches isolati per lab (lab-01-iam, etc.)
|
||||||
|
|
||||||
|
**Next session priority:**
|
||||||
|
Start Phase 1 planning with `/gsd:plan-phase 1`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Quality Checklist
|
||||||
|
|
||||||
|
**Before marking Phase 1 complete:**
|
||||||
|
- [ ] Repository structure creata con cartelle `labs/`, `how-to-guides/`, `reference/`
|
||||||
|
- [ ] README include istruzioni cloning, setup iniziale, overview 5 laboratori
|
||||||
|
- [ ] Requisiti Docker Engine >= 24.0 e Compose V2 documentati
|
||||||
|
- [ ] Script verifica ambiente funziona (check Docker, versioni, utility rete)
|
||||||
|
- [ ] Comando cleanup/reset ambiente testato
|
||||||
|
- [ ] File docker-compose.yml possono essere validati con `docker-compose config`
|
||||||
|
|
||||||
|
**General quality indicators (apply to all phases):**
|
||||||
|
- [ ] I 4 documenti Diátaxis sono redatti con tono diretto e semplice
|
||||||
|
- [ ] Il parallelismo Cloud ↔ Locale è spiegato chiaramente nella Explanation
|
||||||
|
- [ ] I file docker-compose.yml rispettano vincoli sicurezza (no root, limiti risorse, reti separate)
|
||||||
|
- [ ] Lo script di test del lab (TDI) esegue correttamente i controlli previsti
|
||||||
|
- [ ] I file ARCHITECTURE.md e PROGRESS.md sono aggiornati
|
||||||
|
- [ ] Le configurazioni e porte standard sono verificate con documentazione ufficiale
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
*State maintained automatically by GSD workflow*
|
||||||
|
*Last updated: 2026-03-24*
|
||||||
Reference in New Issue
Block a user