Percorso di formazione — 16 mezze giornate
Da VM a Container
Docker e Pipeline CI/CD per i servizi dell'Ente
Un modello standard e replicabile, non una migrazione una tantum
Perché questo corso
- Oggi ogni servizio dell'Ente vive su una VM fatta a mano: installazioni artigianali, rilasci manuali, conoscenza nella testa di poche persone
- Migrare un servizio si può fare in tanti modi: l'obiettivo qui è farlo UNA volta nel modo giusto e trasformarlo in uno standard
- Alla fine avremo un modello replicabile su tutti i servizi — usabile dal personale ICT e dai fornitori
Cosa porterai a casa
- Un esempio end-to-end funzionante: l'app "Pratiche" containerizzata, con pipeline completa dal commit alla produzione — costruita da te, modulo dopo modulo
- Linee guida architetturali: lo standard unico per containerizzare qualunque servizio
- Matrice dei ruoli (RACI): chi fa cosa tra sviluppatori, sistemisti, referenti e fornitori
- Blueprint di repository: il template da cui parte ogni nuovo servizio o migrazione
Il filo conduttore: una sola app
Tutti i laboratori lavorano sulla stessa applicazione, il Portale Pratiche (web + API + database + cache), che cresce con te:
- Modulo 1 — è una pagina statica servita da un container
- Modulo 6 — è uno stack completo, con ambienti dev e prod
- Modulo 12 — si rilascia in produzione con approvazione e rollback
- Modulo 16 — rifai tutto da zero, da solo, su un servizio nuovo
Ogni modulo ha un progetto di partenza (start) e la soluzione completa (final): chiunque può riallinearsi in ogni momento.
Com'è organizzato: 16 mezze giornate
| Blocco | Moduli | Risultato |
| A | Fondamenta Docker | 1–6 | Sai containerizzare un servizio a regola d'arte |
| B | La filiera automatizzata | 7–12 | La pipeline testa, controlla e rilascia al posto tuo |
| C | Il modello per l'Ente | 13–16 | Standard, ruoli e metodo replicabili su ogni servizio |
Ogni mezza giornata: ~2 ore di teoria guidata + ~2 ore di laboratorio pratico.
Blocco A — Fondamenta Docker (mezze giornate 1–6)
| 1 | Perché i container + setup | ambiente pronto, primi comandi, la home dell'app servita da Nginx |
| 2 | Immagini e Dockerfile | containerizzi l'API Pratiche |
| 3 | Dockerfile avanzato | immagine piccola, non-root, con healthcheck: lo standard dell'Ente |
| 4 | Reti e persistenza | API + PostgreSQL: i dati sopravvivono ai container |
| 5 | Docker Compose | tutto lo stack con un solo comando |
| 6 | Ambienti reali | dev e prod dalla stessa base, healthcheck, .env, Redis |
Blocco B — La filiera automatizzata (7–12)
| 7 | Registry e versioni | immagini pubblicate con le convenzioni dell'Ente |
| 8 | Pipeline as Code | la prima pipeline: lint e build a ogni push |
| 9 | Build e test | tag v1.0.0 → immagine versionata, solo se i test passano |
| 10 | Qualità e sicurezza | scansione vulnerabilità e SBOM: i cancelli dell'Ente |
| 11 | Deploy in staging | merge su main → servizio aggiornato da solo |
| 12 | Produzione e rollback | rilascio approvato, backup automatico, rollback provato |
Blocco C — Il modello per l'Ente (13–16)
| 13 | Osservabilità | metriche, dashboard e runbook: il servizio si fa guardare |
| 14 | Migrare un legacy | metodo in 6 fasi, applicato a un vero servizio "da VM" |
| 15 | Standard e ruoli | blueprint + matrice RACI: chi fa cosa, su ogni servizio |
| 16 | Progetto finale | da zero alla produzione in 4 ore, in autonomia |
Perché proprio 16 mezze giornate
- Un traguardo verificabile a modulo: ogni mezza giornata chiude con l'app funzionante in uno stato nuovo — 4 ore = 1 concetto + 1 lab completo
- Compatibile con l'operatività: mezza giornata di corso, mezza di servizio; distribuibile su 4–8 settimane
- Metà del tempo è pratica: l'obiettivo è saper ripetere il percorso, non ascoltarlo
- 6+6+4: tecnica individuale, filiera condivisa, modello organizzativo — tagliare il blocco C significherebbe rinunciare proprio al modello replicabile
- L'ultima mezza giornata è la prova: se in 4 ore porti in produzione un servizio nuovo col blueprint, il modello funziona
Come lavoreremo
- Portale del corso: tutta la documentazione navigabile + pacchetto scaricabile per ogni modulo
- Ogni pacchetto: consegna del lab, progetto di partenza
start, soluzione final
- Serve solo: laptop con Docker (lo installiamo insieme al Modulo 1), riga di comando di base, Git di base (lo richiamiamo al Modulo 8)
- Non serve essere sviluppatori: il codice è fornito; scriverai Dockerfile, compose e pipeline
I ruoli, fin dal primo giorno
Il corso costruisce anche la ripartizione delle responsabilità:
- Sviluppatore (interno o fornitore) → responsabile dentro il container e della pipeline che lo produce
- Sistemista → responsabile sotto e intorno: host, rete, dati, segreti, registry, runner
- Referente di servizio → decide quando si va in produzione
- Sicurezza → decide se un rischio è accettabile
La matrice completa si costruisce nei moduli e si consolida al Modulo 15.
Si parte dal Modulo 1
Installiamo l'ambiente e avviamo il primo container.
Alla fine di oggi, il Portale Pratiche sarà già online — sulla tua macchina.
← portale · frecce/click per navigare · F = schermo intero · Ctrl+P = PDF