Jump to section

O que é o GitOps?

Copiar URL

A Red Hat assumiu a liderança segundo relatório Magic Quadrant™ do Gartner® de 2023

A Red Hat ficou em primeiro lugar na categoria Gestão de Containers do relatório Magic Quadrant™ do Gartner® de 2023, devido à sua visão abrangente e capacidade de execução.

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 ferramentas de gerenciamento de configuração.

Abordagem do GitOps à entrega contínua no Kubernetes

Descubra mais informações 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?

Tudo pronto para 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, 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ódigo que já conhecem, enquanto os operadores podem colocar as outras peças necessárias no lugar.

Acesse o Red Hat Developer Hub

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 descubra como o operador do Red Hat OpenShift GitOps está desenvolvendo novas ferramentas com o Argo para gerenciar o GitOps em implantações existentes do Red Hat OpenShift.


Red Hat® OpenShift® Service on AWS (ROSA) é uma plataforma de aplicações completa e totalmente gerenciada que permite aumentar a eficiência operacional, voltar o foco para a inovação e criar, implantar e expandir aplicações rapidamente em um ambiente AWS nativo. 

Isso significa que o ROSA ajuda as equipes a gerenciar clusters entre regiões, criar e implantar clusters usando ferramentas self-service e automatizar aplicação de patches de segurança e atualizações. Por exemplo, o ROSA facilita a modernização de aplicações ao oferecer a administradores e equipes de infraestrutura os mesmos benefícios que os proprietários de aplicações.


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 uma 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.

Leia mais

Blog

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

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

Entenda o 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