Files
laboratori-cloud/.planning/REQUIREMENTS.md
2026-03-24 22:28:02 +01:00

6.8 KiB

Requirements: Laboratori Cloud - Corso Soluzioni Cloud

Defined: 2026-03-24 Core Value: Gli studenti imparano i concetti cloud praticamente in locale, senza costi o complessità di account cloud reali.

v1 Requirements

Requirements per il rilascio iniziale. Ogni requisito mappa a una fase della roadmap.

Laboratori Core

  • LAB-01: Studente può configurare utenti Linux, gruppi e permessi per accesso Docker socket (IAM simulation)
  • LAB-02: Studente può creare reti Docker bridge isolate per simulare VPC/Subnets
  • LAB-03: Studente può deploy container con limiti CPU/memoria e healthchecks (Compute simulation)
  • LAB-04: Studente può configurare Docker volumes e MinIO per storage S3-compatible
  • LAB-05: Studente può deploy database PostgreSQL in rete privata con volume persistente (RDS simulation)

Documentazione (Framework Diátaxis)

  • DOCT-01: Ogni lab include Tutorial (guida passo-passo incrementale)
  • DOCT-02: Ogni lab include How-to Guides (procedure specifiche slegate dal flusso)
  • DOCT-03: Ogni lab include Reference (specifiche tecniche: docker-compose.yml, mappe IP, porte)
  • DOCT-04: Ogni lab include Explanation (parallelismo Docker ↔ cloud service)
  • DOCT-05: Tutorial seguono principio "little often" (piccoli step, frequente pratica)

Testing & Qualità

  • TEST-01: Ogni lab include script di test bash pre-implementazione (TDI approach RED→GREEN→REFACTOR)
  • 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
  • TEST-05: Ogni lab include comando di verifica finale ("double check")

Infrastruttura & Sicurezza

  • INF-01: Nessun container gira come utente root (principio minimo privilegio)
  • INF-02: Reti private non espongono porte sull'host (127.0.0.1 max, mai 0.0.0.0)
  • INF-03: Tutti i container hanno limiti risorse obbligatori (cpus, mem_limit)
  • INF-04: Dati persistenti sopravvivono a riavvio container (named volumes)
  • INF-05: File docker-compose.yml validati con docker-compose config prima dell'uso

Git & Workflow

  • GIT-01: Ogni lab sviluppato su branch isolato (lab-01-iam, lab-02-network, etc.)
  • GIT-02: Commit seguono Conventional Commits (feat:, test:, docs:)
  • GIT-03: Commit sono atomici (una funzionalità per commit)
  • GIT-04: README include istruzioni cloning e setup iniziale
  • GIT-05: Struttura repo chiara con cartelle labs/, how-to-guides/, reference/

Parallelismo Cloud ↔ Locale

  • PARA-01: Ogni componente Docker è mappato al servizio cloud corrispondente nella Explanation
  • PARA-02: Architettura locale usa nomenclatura cloud (VPC, subnet, security groups)
  • PARA-03: Differenze tra locale e cloud sono documentate esplicitamente
  • PARA-04: Comandi Docker equivalenti a comandi cloud sono mostrati a confronto

Setup & Requisiti Utente

  • 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)

v2 Requirements

Differiti a rilascio futuro. Tracciati ma non nella roadmap corrente.

Enhancement Post-Validation

  • SOLU-01: Soluzioni ufficiali per ogni lab (trigger: richiesta ricorrente studenti)
  • SOLU-02: Script di auto-correzione per validazione autonoma studente
  • CHAL-01: Challenge labs opzionali per studenti avanzati
  • MULTI-01: Versioni multi-cloud (paralleli Azure/GCP oltre ad AWS)

Infrastructure

  • VM-01: VM pre-configurata (OVA/Vagrant) per studenti con problemi setup locale

Out of Scope

Esplicitamente esclusi. Documentati per prevenire scope creep.

Feature Reason
Account cloud reali (AWS/Azure/GCP) Simulazione locale elimina costi e complessità onboarding
Video streaming integrato Complessità tecnica, bandwidth, distoglie dal "doing"
Piattaforma web custom Sviluppo frontend = distrazione dal valore educativo
Lab multi-user collaborativi Complessità infrastrutturale enorme per v1
Mobile apps Comandi Docker su mobile = esperienza terribile
AI/Chatbot integrato Costo, complessità manutenzione, risposte inaffidabili
Gamification eccessiva Distrazione dal learning reale
Real-time collaboration Laboratori individuali, condivisione via Git sufficiente
Video posts/storage Storage/bandwidth costs, defer to v2+
OAuth login Email/password sufficient per v1
Progress tracking integrato Richiede backend/database, non essenziale per v1
Certification exam prep Richiede allineamento vendor-specific, lavoro enorme
Community features (forum, chat) Moderation overhead, distrazione dal core
Instructor dashboard Richiede multi-tenancy, mercato diverso

Traceability

Quali fasi coprono quali requisiti. Aggiornato dopo creazione roadmap.

Requirement Phase Status
LAB-01 Phase 2 Complete
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 Complete
DOCT-02 Phase 2,3,4,5,6,9 Complete
DOCT-03 Phase 2,3,4,5,6 Complete
DOCT-04 Phase 2,3,4,5,6 Complete
DOCT-05 Phase 2,3,4,5,6 Complete
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 Complete
GIT-01 Phase 8 Pending
GIT-02 Phase 8 Pending
GIT-03 Phase 8 Pending
GIT-04 Phase 1 Complete
GIT-05 Phase 1,8 Complete
PARA-01 Phase 2,3,4,5,6,10 Complete
PARA-02 Phase 3,6,10 Pending
PARA-03 Phase 2,3,4,5,6,10 Complete
PARA-04 Phase 2,3,4,5,6,10 Complete
SETUP-01 Phase 1 Complete
SETUP-02 Phase 1 Complete
SETUP-03 Phase 1 Complete
SETUP-04 Phase 1 Complete
SETUP-05 Phase 1 Complete

Coverage:

  • v1 requirements: 40 total
  • Mapped to phases: 40 ✓
  • Unmapped: 0
  • Orphaned requirements: 0

Requirements defined: 2026-03-24 Last updated: 2026-03-24 after roadmap creation