Anche in presenza di piattaforme come Kubernetes, che permettono di gestire l’organizzazione dei container, non è sempre semplice gestire e predisporre delle applicazioni basate sui container in esecuzione su sistemi a cluster o nel cloud. L’approccio di GitOps mira a sfruttare le esperienze e gli strumenti tratti dal lavoro dello sviluppatore per facilitare l’impiego delle applicazioni. Alla base ci sono quattro principi:
- La descrizione dichiarativa: le risorse vengono descritte con un linguaggio formale chiarendone lo stato di riferimento auspicato.
- Automazione: la trasposizione delle descrizioni dal repository all’ambiente di runtime deve essere totalmente automatizzata e riproducibile e deve condurre allo stesso risultato anche se viene effettuata più volte.
- «Single Source of Truth»: lo stato del sistema deve essere descritto in modo esaustivo e univoco. Esiste una sola fonte da cui poter consultare lo stato generale del sistema.
- Reconciliation: gli operatori di software sincronizzano lo stato attuale del sistema con quello auspicato. Non appena si constatano delle divergenze, vengono apportati interventi mirati.