Login / Registre-se Account
Jump to section

O que é o GitOps?

Copiar URL

O GitOps é um conjunto de práticas para gerenciar configurações de infraestrutura e aplicação usando o Git, um sistema de controle de versão open source. O GitOps funciona usando o Git como a única fonte de informações para infraestrutura e aplicações declarativas.

O GitOps usa pull requests do Git para gerenciar automaticamente o provisionamento e a implantação de infraestrutura. O repositório Git contém todo o estado do sistema, de modo que o registro de mudanças fique visível e possa ser auditado.

O GitOps foi projetado pensando na experiência do desenvolvedor e ajuda as equipes a gerenciar infraestruturas usando as mesmas ferramentas e processos utilizados para desenvolver software. Além do Git, o GitOps oferece a possibilidade de escolher as ferramentas de que você precisa.

A Weaveworks criou o termo GitOps.

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

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 entrega e integração contínuas

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 do 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 reverter as 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.

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

O Red Hat OpenShift GitOps é um complemento do Red Hat OpenShift que oferece Argo CD e outras ferramentas para permitir que as equipes implementem fluxos de trabalho do GitOps para configuração de clusters e entrega de aplicações. 

O Red Hat Ansible Automation Platform é um mecanismo de estado desejado que permite modelagem declarativa de sistemas. Os Ansible Playbooks são escritos em YAML e descrevem o estado desejado dos sistemas, geralmente mantidos no controle de origem. O Red Hat Ansible Automation Platform coloca seus sistemas no estado desejado, seja qual for o estado atual deles. 

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.

Leia mais

Artigo

O que é CI/CD?

CI/CD é um método para viabilizar a entrega frequente de aplicações aos clientes por meio da automação de etapas do desenvolvimento. Os principais conceitos atribuídos a esse método são integração, entrega e implantação contínuas.

Artigo

O que é infraestrutura como código?

Infraestrutura como código (IaC) é o gerenciamento e provisionamento da infraestrutura por meio de códigos, em vez de processos manuais. Com a IaC, são criados arquivos de configuração que incluem as especificações da infraestrutura, facilitando a edição e a distribuição de configurações. 

Tópico

Introdução ao DevOps

DevOps é uma abordagem de cultura, automação e design de plataforma que tem como objetivo agregar mais valor aos negócios e aumentar a capacidade de resposta às mudanças por meio de entregas de serviços rápidas e de alta qualidade. Essa abordagem requer a colaboração entre equipes de desenvolvimento e de operações.

Explore as soluções GitOps

Red Hat OpenShift

Uma plataforma empresarial em containers Kubernetes com um stack completo de operações automatizadas para gerenciar implantações de nuvem híbrida, multicloud e edge. 

Red Hat Ansible Automation Platform

Uma plataforma para a criação e operação da automação empresarial. A plataforma inclui todas as ferramentas necessárias para implementar a automação em toda a organização.