🏛️ Da VM a Container — Docker & CI/CD per l'Ente

Blueprint del servizio containerizzato

Il blueprint è il template di repository da cui parte ogni nuovo servizio o

migrazione. È il prodotto finale del corso: l'app Pratiche completata (Modulo 12/13)

ne è l'esemplare di riferimento funzionante; il Modulo 15 lo applica al servizio

legacy Albo Avvisi; il Modulo 16 lo usa come verifica finale.

Come si usa

  1. Copiare il template (modules/module-15/lab/final/blueprint/) in un nuovo repository.
  2. Cercare e sostituire NOME-SERVIZIO in tutti i file.
  3. Compilare la checklist di adozione qui sotto, in ordine.
  4. Al termine, il servizio è conforme alle linee guida (doc. 02) e la RACI (doc. 03)

è compilata: il servizio è pronto per il collaudo.

Contenuto del template

NOME-SERVIZIO/
├── README.md                 # da compilare: scopo, avvio locale, release
├── .gitlab-ci.yml            # pipeline standard completa: adattare solo i nomi
├── .env.example              # elencare qui OGNI variabile del servizio
├── compose.yaml              # stack base: definire i servizi reali
├── compose.override.yaml     # sviluppo locale
├── compose.prod.yaml         # staging/produzione
├── docs/
│   ├── runbook.md            # template guidato con sezioni obbligatorie
│   ├── architettura.md       # schema componenti (template con esempio)
│   └── raci.md               # matrice ruoli con tabella nominativi da compilare
└── api/                      # esempio di componente: rinominare/duplicare
    ├── Dockerfile            # multi-stage, non-root, healthcheck: già impostato
    └── .dockerignore

Checklist di adozione (collaudo tecnico)

A. Repository e build

B. Pipeline

C. Configurazione e dati

D. Esercizio

E. Ruoli

Percorso tipo di una migrazione VM → container

FaseAttivitàRiferimento corso
1. Assessmentinventario processi, porte, file, cron, config, dipendenze della VMModulo 14
2. Containerizzazioneblueprint + Dockerfile/compose; config→env; stato→volumiModuli 2–6, 14
3. Pipelineattivare la pipeline standard sul nuovo repoModuli 8–10
4. Convivenzail container gira in staging con dati copiati; confronto con la VMModuli 11, 14
5. Cutoverswitch del traffico (DNS/reverse proxy), VM congelata per rollbackModuli 12, 14
6. Eserciziomonitoraggio, backup, aggiornamenti via pipeline; spegnimento VMModulo 13