O que é GitOps (e por que ele mudou a forma de fazer deploy)
GitOps explicado sem buzzword: os quatro princípios, a diferença entre deploy "empurrado" e "puxado", o que ele resolve no dia a dia e quando não vale a pena.
Fala pessoal, tudo bem?
O DevOps nos ensinou a automatizar o caminho do código até a produção. Pipelines de CI/CD viraram padrão. Mas, com o Kubernetes, uma pergunta começou a incomodar: o que está rodando no cluster agora é exatamente o que está no repositório?
Na maioria dos ambientes, a resposta honesta é "não sei". Alguém fez um kubectl edit às pressas, um deploy falhou pela metade, uma variável foi trocada direto no console. O GitOps nasceu para responder essa pergunta com um "sim".
A ideia em uma frase
Os quatro princípios
O projeto OpenGitOps, da CNCF, resume a prática em quatro princípios:
- Declarativo: você descreve o estado desejado (quantas réplicas, qual imagem, qual configuração), e não os passos para chegar lá;
- Versionado e imutável: esse estado fica no Git, com histórico, autor e data de cada mudança;
- Puxado automaticamente: um agente busca as mudanças no repositório, sem ninguém precisar "empurrar" para o cluster;
- Reconciliado continuamente: se alguém mexer direto no ambiente, o agente percebe a diferença e corrige.
Push x pull: a diferença que importa
# Modelo tradicional (push)
dev -> git push -> pipeline CI/CD -> kubectl apply -> cluster
(o pipeline precisa da credencial do cluster)
# Modelo GitOps (pull)
dev -> git push -> repositório Git <- agente dentro do cluster
(compara e aplica sozinho)
No modelo push, o pipeline guarda as credenciais de produção, e o cluster só muda quando o pipeline roda. No modelo pull, a credencial fica dentro do cluster, e a reconciliação acontece o tempo todo, não só na hora do deploy.
O que muda na prática
- Rollback é um
git revert: voltar uma versão é voltar um commit; - Auditoria de graça: quem mudou o quê, quando e por quê está no histórico do Git e nos pull requests;
- Fim do "mexi direto no cluster": mudanças manuais são detectadas e desfeitas, ou pelo menos ficam visíveis;
- Recriar um ambiente vira apontar um cluster novo para o mesmo repositório.
As ferramentas
As duas principais são projetos graduados da CNCF: o Argo CD, com uma interface web muito boa para ver o estado de cada aplicação, e o Flux, mais enxuto e muito usado em automações.
Se você quer ver isso funcionando, montei uma série aqui no blog com um lab completo: um cluster kind, o Argo CD instalado e uma aplicação versionada por tags no GitHub. A primeira parte está em Argo CD na prática (parte 1).
Quando não vale a pena
Outro ponto de atenção: segredos. Senha não vai para o Git em texto puro. Ferramentas como Sealed Secrets, SOPS ou o External Secrets Operator resolvem isso, e precisam entrar no desenho desde o começo.
Considerações Finais
GitOps não é uma ferramenta, é um jeito de operar: o Git descreve o ambiente, e um agente garante que ele continue assim. A grande vantagem não está no deploy em si, e sim em sempre saber o que está rodando e em conseguir voltar atrás com um commit.
Abs e até a próxima!!!
:wq!
Post publicado originalmente em setembro de 2024 e atualizado em novembro de 2026.

Comentários
Postar um comentário