Cos'è il GitOps?
Git come unica fonte di verità su cosa gira in produzione: lo stato desiderato vive nel repository, un controller lo applica al sistema reale.
GitOps è la pratica di usare un repository Git come unica fonte di verità su come deve essere configurato un sistema in produzione, tipicamente un cluster Kubernetes o l'infrastruttura cloud che lo circonda. Lo stato desiderato, quali versioni girano, quante repliche, quale configurazione, vive in file dentro il repository. Un controller (Argo CD, Flux e simili) osserva continuamente il repository e lo confronta con lo stato reale del sistema: se divergono, li riallinea in automatico, invece di aspettare che qualcuno lanci un comando di deploy. Il termine nasce nel 2017 in un post di Weaveworks, ma l'idea di fondo è semplice: trattare la produzione come funzione pura del repository, non come risultato di comandi eseguiti a mano. Questo riallineamento continuo distingue GitOps da un semplice "deploy da pipeline": se qualcuno modifica manualmente un oggetto nel cluster, il controller se ne accorge e riporta il sistema allo stato dichiarato, rendendo la deriva di configurazione un evento visibile invece che un rischio scoperto solo durante un incidente.
La differenza rispetto al deploy classico
Nel deploy tradizionale una pipeline CI/CD spinge attivamente i cambiamenti verso il sistema target: è il modello "push". Nel GitOps il controller dentro il cluster tira lo stato dal repository: è il modello "pull", e la differenza non è solo tecnica. Nessuno ha bisogno di credenziali dirette per modificare la produzione: modificare il repository, dopo revisione, basta. Ogni cambiamento allo stato del sistema ha automaticamente uno storico Git, un autore, un motivo, e tornare indietro significa fare un revert del commit, non ricostruire a memoria cosa girava prima.
Come si lega a IaC e CI/CD
Il GitOps è l'evoluzione naturale dell'Infrastructure as Code applicata al ciclo di rilascio continuo: IaC descrive l'infrastruttura in codice, CI/CD automatizza test e build, GitOps chiude il cerchio decidendo che l'unica cosa autorizzata a cambiare la produzione è un commit approvato nel repository giusto. Per un team dati o piattaforma significa un audit trail completo di ogni modifica agli ambienti e un modo per recuperare da un incidente di configurazione con la stessa disciplina con cui si recupera da un bug nel codice applicativo.
Termini correlati
- Infrastructure as Code (IaC) · Descrivere server, reti e servizi cloud in file di codice versionato invece che configurarli a mano, così l'infrastruttura si crea e ricrea in modo riproducibile.
- CI/CD · Continuous Integration e Continuous Delivery: ogni modifica al software viene testata e portata in produzione in modo automatico e frequente.
- Platform engineering · La disciplina che costruisce piattaforme interne self-service per i team: golden path, tooling condiviso e infrastruttura trattata come un prodotto.
- AI-Assisted Testing / Agentic QA · Agenti AI che generano test, li riparano da soli e gestiscono intere suite di regressione: classificano i fallimenti e suggeriscono i fix.
- DevSecOps · Estensione del DevOps che integra la sicurezza come responsabilità condivisa nella pipeline CI/CD, non come controllo finale separato.
Un termine che ti riguarda da vicino? Parliamone.
CONTATTAMI