GitOps é uma técnica de implantação de aplicações usando o padrão control loop. Um operador mantém a aplicação implantada sincronizada com a configuração, geralmente um repositório Git. Quando escrevemos pela última vez sobre GitOps, a comunidade ainda não havia chegado a um acordo sobre uma definição do termo. Na época, estávamos preocupadas com interpretações comuns da técnica que incluíam abordagens como branch por ambiente para configuração, o que pode levar a snowflakes como código. Além disso, a mensagem sobre GitOps como uma alternativa à entrega contínua era confusa. Desde então, os quatro princípios do GitOps especificam o escopo e a natureza da técnica. Quando você retira a expectativa exagerada e a confusão, GitOps é uma técnica útil que aproveita a funcionalidade de um cluster Kubernetes e cria oportunidades para separação de conceitos entre a configuração de uma aplicação e a implementação do processo de implantação. Algumas de nossas equipes implementaram o GitOps como parte da estruturação do seu processo de entrega contínua e tiveram experiências positivas, razão pela qual recomendamos avaliá-lo.
Sugerimos certo cuidado ao abordar GitOps , especialmente em relação às estratégias de branching. GitOps pode ser visto como uma forma de implementar infraestrutura como código que envolve a sincronização contínua e aplicação de código de infraestrutura do Git em vários ambientes. Quando usado com uma infraestrutura de "branch por ambiente", as alterações são promovidas de um ambiente para o outro por meio de merges do código. Embora tratar o código como a única fonte de verdade seja nitidamente uma abordagem correta, estamos vendo branches por ambiente levarem a desvios de ambientes e, eventualmente, configurações específicas do ambiente conforme os merges de código se tornam problemáticos ou até mesmo param completamente. Isso é muito semelhante ao que vimos no passado com branches de longa duração com GitFlow.