Jump to section

O que é o GitOps?

Copiar URL

O GitOps usa repositórios Git como uma única fonte de informações para oferecer infraestrutura como código. O código enviado verifica o processo de CI, enquanto o processo de CD verifica e aplica os requerimentos de elementos como segurança, infraestrutura como código ou quaisquer outros limites definidos para a framework de aplicações. Todas as alterações de código são acompanhadas, facilitando as atualizações e oferecendo controle de versão, caso uma reversão seja necessária.

O GitOps oferece:

  • Um fluxo de trabalho padrão para o desenvolvimento de aplicações
  • Aumento da segurança para definir antecipadamente requisitos da aplicação
  • Maior confiabilidade com visibilidade e controle de versão pelo Git
  • Consistência entre quaisquer ambientes on-premise, clusters e nuvens

Muitas outras ferramentas podem ser usadas juntas para criar uma framework do GitOps. Por exemplo, repositórios Git, Kubernetes, ferramentas de integração e entrega contínuas (CI/CD) e de gerenciamento de configuração.

Abordagem do GitOps à entrega contínua no Kubernetes

Veja mais na série GitOps Guide to the Galaxy na OpenShift.tv, quinzenalmente às quintas-feiras às 15h ET

O GitOps usa as filosofias e abordagens prometidas para quem investe em uma cultura DevOps e fornece um framework para começar a notar os resultados. As organizações que praticam o DevOps notam melhoras significativas na taxa de inovação em aplicações e código, bem como estabilidade, de acordo com o relatório anual State of DevOps Report

Ao usar os mesmos fluxos de trabalho baseados em Git que os desenvolvedores conhecem, o GitOps expande os processos existentes, do desenvolvimento de aplicações à implantação, ao gerenciamento do ciclo de vida da aplicação e à configuração da infraestrutura. Todas as mudanças durante o ciclo de vida da aplicação são acompanhadas no repositório Git e são auditáveis. Fazer alterações pelo Git significa que os desenvolvedores podem finalmente fazer o que querem: programar no próprio ritmo sem aguardar a atribuição ou aprovação de recursos pelas equipes de operações.

Para as equipes de operações, a visibilidade das alterações significa a capacidade de acompanhar e reproduzir problemas rapidamente, melhorando a segurança geral. Com uma trilha de auditoria atualizada, as organizações podem reduzir o risco de alterações não desejadas e corrigi-las antes de entrarem em produção. 

Essas alterações no código, do desenvolvimento à produção, tornam as organizações mais ágeis na resposta às mudanças nos negócios e no ambiente competitivo.

Para dar os primeiros passos com o GitOps, você precisa de uma infraestrutura que possa ser gerenciada de maneira declarativa. Sendo assim, o GitOps normalmente é usado como um modelo operacional para Kubernetes e desenvolvimento de aplicações nativas em nuvem. Ele também permite implantação contínua para o Kubernetes.

No entanto, o uso do Kubernetes não é obrigatório no GitOps. O GitOps é uma técnica que pode ser aplicada a outra infraestrutura e pipeline de implantação.   

Assim como o Kubernetes, o Ansible é um mecanismo de estado desejado que possibilita modelagem declarativa de sistemas de TI tradicionais e, portanto, pode ser usado no GitOps. Com um painel de controle que usa módulos Ansible, o usuário pode gerenciar aplicações no Kubernetes, em uma infraestrutura de TI existente ou em ambos.

O GitOps pode ser usado para criar pipelines de desenvolvimento, desenvolver aplicações, gerenciar configurações, provisionar clusters Kubernetes e fazer implantações em registros Kubernetes ou de containers.

Qual a diferença entre o Ansible e o Red Hat Ansible Automation Platform?

O Red Hat® OpenShift® é uma plataforma Kubernetes declarativa que os administradores podem configurar e gerenciar usando os princípios do GitOps. Ao trabalhar com infraestruturas e aplicações baseadas no Kubernetes, é possível aplicar consistência entre ciclos de vida de desenvolvimento e clusters. O Red Hat OpenShift consolida a administração e o gerenciamento de aplicações que estão espalhadas entre os recursos de nuvem pública e on-premise para:

  • Verificar se os clusters têm estados semelhantes (configurações, monitoramento, armazenamento), conhecendo as restrições da aplicação no início do ciclo de desenvolvimento.
  • Reverter uma alteração no código em vários clusters, recuperando os clusters de um estado conhecido.
  • Implementar uma alteração enviada ao Git em vários clusters do Red Hat OpenShift.
  • Associar configurações em modelos em toda a nuvem híbrida.

 

GitOps Red Hat OpenShift Kubernetes diagram
 

A Red Hat colabora com projetos open source como ArgoCD e Tekton para implementar uma framework para GitOps. Instale o operador do Red Hat OpenShift Pipelines e saiba como o operador do Red Hat OpenShift GitOps está desenvolvendo novas ferramentas com o Argo para gerenciar o GitOps com implantações existentes do Red Hat OpenShift.


O Red Hat Advanced Cluster Management for Kubernetes oferece gerenciamento multicluster do ciclo de vida do cluster do Kubernetes. O Red Hat Advanced Cluster Management usa um framework de canal e subscrição, junto com regras de colocação, para implementar automaticamente aplicações em um modelo de estado desejado em vários clusters.


O Red Hat Ansible® Automation Platform coloca seus sistemas no estado desejado, seja qual for o estado atual deles. Os Ansible playbooks são escritos em YAML e descrevem o estado desejado dos sistemas, geralmente mantidos no controle de origem. 

Com o Ansible Automation Platform, você pode adotar as práticas do GitOps em sistemas de TI tradicionais, como rede, nuvem e bare-metal, além do Kubernetes. Webhooks de automação são integrados ao Ansible Automation Platform para oferecer suporte às práticas de IaC e GitOps. Os webhooks também permitem vincular um repositório Git ao Ansible Automation Platform de maneira nativa. Quando um link de repositório estiver configurado, o Ansible Automation Platform registrará confirmações Git e usará esses eventos para acionar tarefas de automação a fim de atualizar projetos, gerenciar inventário e fazer implantações.

Com a integração do Red Hat Advanced Cluster Management, Red Hat OpenShift GitOps e Red Hat Ansible Automation Platform, as equipes de DevOps podem garantir o gerenciamento e a manutenção das configurações em escala para melhorar os pipelines de CI/CD.

Vamos começar a usar o Red Hat OpenShift GitOps?

O GitOps pode ser considerado uma evolução no modelo de Infraestrutura como código (IaC)que usa o Git como o sistema de controle de versão para configurações de infraestrutura. A IaC segue a abordagem declarativa de gerenciamento de infraestrutura ao definir o estado desejado do sistema e acompanhar o estado real dele.

Assim como a IaC, o GitOps também exige uma descrição declarativa do estado desejado do sistema. Ao usar ferramentas declarativas, todos os arquivos de configuração e códigos-fonte podem ser controlados por versão no Git.

Pipelines CI/CD geralmente são acionados por um evento externo, como um código enviado a um repositório. Em um fluxo de trabalho do GitOps, as alterações são feitas usando pull requests que modificam o estado no repositório Git. 

Para implementar uma nova versão usando um fluxo de trabalho do GitOps, é feita uma pull request no Git, que cria uma alteração no estado declarado do cluster. O operador do GitOps, que fica entre o pipeline do GitOps e o sistema de orquestração, seleciona a confirmação e extrai a nova declaração de estado do Git.  

Uma vez aprovadas e integradas, as alterações são aplicadas automaticamente à infraestrutura dinâmica. Os desenvolvedores podem continuar a usar seus próprios fluxos de trabalho padrão e as práticas de CI/CD.

Ao usar o GitOps com Kubernetes, o operador normalmente será um operador Kubernetes. O operador compara o estado desejado no repositório ao estado real da infraestrutura implantada. O operador atualizará a infraestrutura sempre que uma diferença for percebida entra o estado atual e o que já existe no repositório. O operador também pode monitorar um repositório de imagens de container e fazer atualizações realizando os mesmos processos para implantar novas imagens.

A observabilidade, que se refere a qualquer sistema que possa ser observado, é um conceito importante no GitOps. A observabilidade no GitOps permite a você assegurar que o estado desejado e o estado observado (ou estado real) sejam iguais.

Usar pull requests e um sistema de controle de versão como o Git dá visibilidade ao processo de implantação. Ele permite visualizar e acompanhar todas as mudanças feitas no sistema, além de oferecer uma trilha de auditoria e permitir reversão das alterações se algo der errado.

Os fluxos de trabalho do GitOps podem aumentar a produtividade e a velocidade do desenvolvimento e das implantações, ao mesmo tempo que melhoram a estabilidade e a confiabilidade dos sistemas.

O GitOps e o DevOps compartilham alguns princípios e objetivos. O DevOps tem a ver com mudanças culturais e a viabilização do trabalho colaborativo entre equipes.

O GitOps oferece as ferramentas e o framework para implementar práticas de DevOps - como colaboração, CI/CD e controle de versão - nos processos de automação da infraestrutura e implantação de aplicações.  Os desenvolvedores podem trabalhar no repositório de códigos que já conhecem, enquanto os operadores podem colocar as outras peças necessárias no lugar.

Leia mais

Blog

Red Hat OpenShift Pipelines e OpenShift GitOps já estão disponíveis para o público

O Red Hat OpenShift Pipelines e o OpenShift GitOps são a base de CI/CD nativa em nuvem e GitOps no Red Hat OpenShift Container Platform.

Artigo

O que é CI/CD?

A prática de CI/CD aplica monitoramento e automação contínuos a todo o ciclo de vida das aplicações, desde as etapas de teste e integração até a entrega e a implantação.

Blog

Introdução ao GitOps com o Red Hat Advanced Cluster Management

Veja como o GitOps pode ajudar você a implantar mais aplicações em várias nuvens.

Leia mais sobre DevOps

Soluções Red Hat

Um programa de residência imersiva com especialistas da Red Hat, no qual você aprende a usar uma metodologia ágil e ferramentas open source para solucionar problemas empresariais.

Os consultores estratégicos da Red Hat fornecem uma visão geral da sua organização, analisam os desafios e ajudam a superá-los com soluções abrangentes e econômicas.

Conteúdo adicional

Checklist

Automação empresarial com uma metodologia DevOps

Whitepaper

Otimize pipelines de CI/CD com o Red Hat Ansible Automation Platform