From e5af5162f916b0b28f5122f067e5a015b33cd875 Mon Sep 17 00:00:00 2001 From: Luca Sacchi Ricciardi Date: Tue, 24 Mar 2026 19:29:46 +0100 Subject: [PATCH] docs: create roadmap (10 phases) --- .planning/REQUIREMENTS.md | 67 +++---- .planning/ROADMAP.md | 370 ++++++++++++++++++++++++++++++++++++++ .planning/STATE.md | 163 +++++++++++++++++ 3 files changed, 567 insertions(+), 33 deletions(-) create mode 100644 .planning/ROADMAP.md create mode 100644 .planning/STATE.md diff --git a/.planning/REQUIREMENTS.md b/.planning/REQUIREMENTS.md index a7d655a..552c1bd 100644 --- a/.planning/REQUIREMENTS.md +++ b/.planning/REQUIREMENTS.md @@ -100,51 +100,52 @@ Esplicitamente esclusi. Documentati per prevenire scope creep. ## Traceability -Quali fasi coprono quali requisiti. Aggiornato durante creazione roadmap. +Quali fasi coprono quali requisiti. Aggiornato dopo creazione roadmap. | Requirement | Phase | Status | |-------------|-------|--------| -| LAB-01 | Phase 1 | Pending | -| LAB-02 | Phase 2 | Pending | -| LAB-03 | Phase 3 | Pending | -| LAB-04 | Phase 4 | Pending | -| LAB-05 | Phase 5 | Pending | -| DOCT-01 | Phase 1-5 | Pending | -| DOCT-02 | Phase 1-5 | Pending | -| DOCT-03 | Phase 1-5 | Pending | -| DOCT-04 | Phase 1-5 | Pending | -| DOCT-05 | Phase 1-5 | Pending | -| TEST-01 | Phase 1-5 | Pending | -| TEST-02 | Phase 1-5 | Pending | -| TEST-03 | Phase 1-5 | Pending | -| TEST-04 | Phase 1-5 | Pending | -| TEST-05 | Phase 1-5 | Pending | -| INF-01 | Phase 1-5 | Pending | -| INF-02 | Phase 2-5 | Pending | -| INF-03 | Phase 3-5 | Pending | -| INF-04 | Phase 4-5 | Pending | -| INF-05 | Phase 1-5 | Pending | -| GIT-01 | Phase 1-5 | Pending | -| GIT-02 | Phase 1-5 | Pending | -| GIT-03 | Phase 1-5 | Pending | +| LAB-01 | Phase 2 | Pending | +| LAB-02 | Phase 3 | Pending | +| LAB-03 | Phase 4 | Pending | +| LAB-04 | Phase 5 | Pending | +| LAB-05 | Phase 6 | Pending | +| DOCT-01 | Phase 2,3,4,5,6 | Pending | +| DOCT-02 | Phase 2,3,4,5,6,9 | Pending | +| DOCT-03 | Phase 2,3,4,5,6 | Pending | +| DOCT-04 | Phase 2,3,4,5,6 | Pending | +| DOCT-05 | Phase 2,3,4,5,6 | Pending | +| TEST-01 | Phase 2,3,4,5,6 | Pending | +| TEST-02 | Phase 7,10 | Pending | +| TEST-03 | Phase 7,10 | Pending | +| TEST-04 | Phase 7,9 | Pending | +| TEST-05 | Phase 2,3,4,5,6,9 | Pending | +| INF-01 | Phase 2,7,10 | Pending | +| INF-02 | Phase 3,6,7,10 | Pending | +| INF-03 | Phase 4,6,7,10 | Pending | +| INF-04 | Phase 5,6,7,10 | Pending | +| INF-05 | Phase 1,10 | Pending | +| GIT-01 | Phase 8 | Pending | +| GIT-02 | Phase 8 | Pending | +| GIT-03 | Phase 8 | Pending | | GIT-04 | Phase 1 | Pending | -| GIT-05 | Phase 1 | Pending | -| PARA-01 | Phase 1-5 | Pending | -| PARA-02 | Phase 2-5 | Pending | -| PARA-03 | Phase 1-5 | Pending | -| PARA-04 | Phase 1-5 | Pending | +| GIT-05 | Phase 1,8 | Pending | +| PARA-01 | Phase 2,3,4,5,6,10 | Pending | +| PARA-02 | Phase 3,6,10 | Pending | +| PARA-03 | Phase 2,3,4,5,6,10 | Pending | +| PARA-04 | Phase 2,3,4,5,6,10 | Pending | | SETUP-01 | Phase 1 | Pending | | SETUP-02 | Phase 1 | Pending | | SETUP-03 | Phase 1 | Pending | | SETUP-04 | Phase 1 | Pending | -| SETUP-05 | Phase 1-5 | Pending | +| SETUP-05 | Phase 1 | Pending | **Coverage:** - v1 requirements: 40 total -- Mapped to phases: 0 (pending roadmap creation) -- Unmapped: 40 ⚠️ +- Mapped to phases: 40 ✓ +- Unmapped: 0 +- Orphaned requirements: 0 --- *Requirements defined: 2026-03-24* -*Last updated: 2026-03-24 after initial definition* +*Last updated: 2026-03-24 after roadmap creation* diff --git a/.planning/ROADMAP.md b/.planning/ROADMAP.md new file mode 100644 index 0000000..2dac85d --- /dev/null +++ b/.planning/ROADMAP.md @@ -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* diff --git a/.planning/STATE.md b/.planning/STATE.md new file mode 100644 index 0000000..9047662 --- /dev/null +++ b/.planning/STATE.md @@ -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*