Domain Knowledge Base - DevOps & CI/CD
Come funziona il dominio, prima di scrivere una riga di codice? Scegli un documento dall'albero a sinistra: ogni pagina spiega una parte del modello.
Regole di Business - DevOps & CI/CD
Questo documento elenca le regole di business fondamentali del dominio DevOps & CI/CD, identificate con codice univoco BR-NNN. Ogni regola è technology-independent e descrive un vincolo invariante sul comportamento della pipeline di integrazione e rilascio.
---
BR-001 - Build once, deploy many
Codice: BR-001
Nome: Un artefatto è costruito una sola volta e promosso immutato tra gli ambienti
Descrizione: Lo stesso Artifact prodotto dalla fase di build deve essere promosso identico attraverso staging e produzione. Non è ammesso ricostruire l'artefatto per ogni ambiente, perché introdurrebbe differenze non testate.
Motivazione: Garantire che ciò che è stato testato sia esattamente ciò che viene rilasciato; tracciabilità.
Priorità: ALTA
Attori: CI Runner, Release Manager
Violazione: la promozione è bloccata se l'artefatto in produzione non corrisponde per digest a quello testato.
Tracciabilità: 12factor.net; build-and-release.md; Artifact (glossary).
---
BR-002 - Artefatti immutabili e versionati
Codice: BR-002
Nome: Ogni artefatto ha un identificatore univoco immutabile (digest/versione)
Descrizione: Un Artifact pubblicato nell'ArtifactRegistry non può essere sovrascritto. Una nuova build produce un nuovo identificatore (tag versione o digest del contenuto). I tag mutabili (es. latest) non sono fonte di verità per la promozione.
Motivazione: Riproducibilità dei rilasci e rollback affidabile.
Priorità: ALTA
Attori: CI Runner, Artifact Registry
Tracciabilità: OCI image digest; SemVer; BR-001.
---
BR-003 - Ogni modifica passa per la pipeline
Codice: BR-003
Nome: Nessun cambiamento raggiunge la produzione senza superare la pipeline CI/CD
Descrizione: Ogni Commit destinato alla produzione deve attraversare la Pipeline (build, test, scan, gate) con esito verde. Sono vietate modifiche manuali dirette negli ambienti.
Motivazione: Qualità, ripetibilità e auditabilità di ogni rilascio.
Priorità: CRITICA
Attori: Developer, CI Runner
Violazione: rollback immediato e blocco dell'accesso diretto agli ambienti.
Tracciabilità: commit-to-deploy.md; GitOps (glossary).
---
BR-004 - Gate di qualità bloccanti
Codice: BR-004
Nome: Una pipeline con test, SAST o scansioni falliti non promuove
Descrizione: Se un Job di test, di analisi statica (SAST) o di sicurezza fallisce, lo Stage corrispondente fallisce e la Pipeline non procede alla promozione. I gate non possono essere aggirati senza un'eccezione tracciata e approvata.
Motivazione: Impedire che difetti o vulnerabilità note raggiungano la produzione (shift left).
Priorità: ALTA
Attori: CI Runner, Security Engineer
Tracciabilità: Shift Left, DevSecOps (glossary); commit-to-deploy.md.
---
BR-005 - I segreti non risiedono mai nel codice o nei log
Codice: BR-005
Nome: Credenziali e token sono iniettati dal Secrets Manager, mai versionati
Descrizione: Nessun segreto deve comparire nel repository Git, nella cronologia, nei file di pipeline o nei log dei Job. I segreti sono recuperati a runtime dal secrets manager con accesso auditato e mascherati nei log.
Motivazione: Prevenire la disclosure di credenziali nella supply chain.
Priorità: CRITICA
Attori: Security Engineer, CI Runner
Violazione: lo scan di segreti blocca la pipeline; rotazione immediata.
Tracciabilità: Secrets Management, Supply Chain Security (glossary).
---
BR-006 - Deploy a downtime zero con rollback rapido
Codice: BR-006
Nome: Ogni rilascio in produzione è progressivo e reversibile rapidamente
Descrizione: I rilasci usano strategie progressive (blue-green o canary) con health check; in caso di degrado, il Rollback riporta alla versione precedente in pochi minuti senza ricostruire l'artefatto.
Motivazione: Ridurre il rischio e il blast radius di un rilascio difettoso.
Priorità: ALTA
Attori: Release Manager, Deployment Target
Tracciabilità: Blue-Green, Canary, Zero-Downtime Deployment (glossary); deploy-rollback.md.
---
BR-007 - La pipeline è definita come codice nel repository
Codice: BR-007
Nome: La definizione della pipeline vive versionata accanto al codice
Descrizione: La configurazione di build, test e deploy (Pipeline, Stage, Job) è dichiarata in file versionati nel repository, non configurata manualmente nell'interfaccia del sistema CI. Le modifiche passano per code review.
Motivazione: Tracciabilità, riproducibilità e revisione delle modifiche al processo di rilascio.
Priorità: ALTA
Attori: Developer, Platform Engineer
Tracciabilità: Infrastructure as Code, GitOps (glossary).
---
BR-008 - Supply chain verificabile (SBOM e provenienza)
Codice: BR-008
Nome: Ogni artefatto ha un SBOM e una provenienza firmata
Descrizione: La pipeline genera un SBOM (Software Bill of Materials) per ogni Artifact e ne registra la provenienza firmata. Le dipendenze sono scansionate per vulnerabilità note prima della promozione.
Motivazione: Tracciare e mettere in sicurezza la catena di fornitura del software.
Priorità: ALTA
Attori: Security Engineer, CI Runner
Tracciabilità: SBOM, Supply Chain Security (glossary); BR-004.
---
BR-009 - Le metriche DORA guidano il miglioramento
Codice: BR-009 Nome: Lead time, frequenza di deploy, MTTR e change failure rate sono misurati Descrizione: Il dominio misura le quattro DORA metrics per ogni servizio: lead time for changes, deployment frequency, mean time to recovery e change failure rate. Le decisioni di miglioramento del processo si basano su questi indicatori, non su opinioni. Motivazione: Migliorare in modo misurabile velocità e stabilità del delivery. Priorità: MEDIA Attori: Platform Engineer, Release Manager Tracciabilità: DORA Metrics, Lead Time for Changes, MTTR, Change Failure Rate (glossary).