O que é GitOps multicloud?

Copiar URL

O GitOps é um conjunto de princípios que orienta seu fluxo de trabalho e possibilita a implantação contínua (CD) de aplicações nativas em nuvem. Ele ajuda você a gerenciar a configuração do cluster e as implantações de aplicações, levando a automação a um processo que antes era manual. Por exemplo, o GitOps permite gerenciar clusters do Red Hat® OpenShift® Container Platform em ambientes Kubernetes com vários clusters. O GitOps automatiza as implantações, das mais simples às mais complexas, tornando os fluxos de trabalho das aplicações mais eficientes.

O GitOps também pode ajudar a implantar novas aplicações ou atualizar aplicações existentes. Você só precisa atualizar o repositório que o fluxo de trabalho do GitOps automatiza todo o resto. 

O GitOps oferece:

  • Gerenciamento de implantações em nuvem híbrida e multicloud, em nuvens públicas e privadas
  • Governança entre clusters e gerenciamento do ciclo de vida da aplicação
  • Gerenciamento de segredos seguro em toda a implantação

Essas funções ajudam a remediar os desafios que a abordagem multicloud traz, como a necessidade de consistência, segurança e colaboração ao mover as cargas de trabalho entre a nuvem pública, a nuvem privada e até mesmo ambientes on-premises. 

No GitOps, o repositório Git é a single source of truth para a configuração de sistemas e aplicações. Ele consiste em uma descrição declarativa da infraestrutura do seu ambiente e funciona em conjunto com os processos automatizados gerenciados pelas ferramentas GitOps, como o Argo CD. A automação faz com que o estado real do ambiente esteja em conformidade com o estado descrito. Você também pode usar o repositório para visualizar a lista de alterações no estado do sistema, pois o histórico do Git oferece controle de alterações. 

Além disso, armazenar a infraestrutura e a configuração como código ajuda a reduzir a dispersão. Você pode armazenar a configuração de clusters e aplicações como código nos repositórios git. 

Recursos da Red Hat

As empresas precisam desenvolver, implantar e operar aplicações em nuvem híbrida aberta de modo estável, simples e seguro. Para isso, elas necessitam de uma estratégia híbrida que inclua implantações multicloud. 

A abordagem multicloud apresenta desafios consideráveis. Por exemplo, as ferramentas que um provedor de nuvem oferece podem não ser compatíveis com as ofertas de outros provedores. Como resultado, a migração de cargas de trabalho pode se tornar cara e complicada. Essa falta de portabilidade também eleva os riscos de segurança e traz preocupações com a privacidade dos dados. 

No entanto, o Kubernetes resolveu muitos desses desafios. Com o Kubernetes, é possível executar vários clusters em diferentes ambientes de nuvem, inclusive on-premise. As cargas de trabalho podem se mover facilmente entre os ambientes sem incorrer nas mesmas dificuldades de migração e segurança. 

Neste tipo de implantação, as cargas de trabalho podem ser executadas em vários clusters e diversas nuvens, tanto privadas quanto públicas. Embora essa estratégia remedie os desafios anteriores, ela também exige uma abordagem de infraestrutura como código. Em outras palavras, as estratégias multicloud modernas precisam do GitOps. 

Conforme explicado acima, o GitOps usa repositórios Git como single source of truth para fornecer infraestrutura como código. O código enviado passa primeiro pelo processo de integração contínua (CI), enquanto o processo de entrega contínua (CD) verifica e aplica os requisitos. Todas as alterações no código são rastreadas, proporcionando funcionalidade de controle de versão e a capacidade de revisão. 

O GitOps permite a colaboração entre as equipes de infraestrutura, acelerando o processo de desenvolvimento. Usando processos automatizados, ele traz consistência à abordagem multicloud, diferente dos processos manuais que podem ser dispendiosos e suscetíveis a erros humanos. 

As organizações que implementam uma abordagem multicloud precisam de consistência e segurança em seus ambientes. Portanto, elas precisam de uma solução GitOps, como o Red Hat OpenShift GitOps.

O Red Hat OpenShift GitOps é um operador que instala e configura uma instância do Argo CD por você. Ele gerencia a configuração da infraestrutura e as implantações de aplicações, organizando o processo de implantação relacionado aos repositórios de configuração. Há pelo menos dois repositórios centrais para o processo:

  • Repositório de aplicações com o código-fonte
  • Repositório de configuração do ambiente, que define o estado desejado da aplicação

Para a manutenção dos recursos do cluster, o Red Hat OpenShift GitOps usa o Argo CD, uma ferramenta open source responsável pela parte da implantação contínua das práticas de integração contínua e implantação contínua (CI/CD) das aplicações. Na verdade, o Argo CD atua como controlador do Red Hat OpenShift GitOps, monitorando as configurações e descrições de estado das aplicações conforme definido em um repositório Git. Ele compara o estado definido ao estado real e relata quaisquer configurações que desviem da descrição especificada. 

Com base nesses relatórios, os administradores podem sincronizar novamente as configurações com o estado definido. Essa atualização de sincronização pode ser manual ou automatizada. No caso da automação, a configuração é basicamente autorrecuperável.

Dessa forma, o Red Hat OpenShift GitOps e seus processos automatizados permitem:

  • Garantir que os clusters tenham estados semelhantes de configuração, monitoramento e armazenamento
  • Aplicar ou reverter alterações na configuração de vários clusters
  • Associar a configuração do modelo a diferentes ambientes
  • Implantar aplicações em clusters, do staging à produção

Os operadores são o método preferencial para a criação de pacotes, implantação e gerenciamento de serviços no control plane do OpenShift Container Platform. Por exemplo, o GitOps Primer é um operador que exporta objetos do Kubernetes, permitindo que sejam compartilhados entre clusters, equipes e ambientes. É uma das maneiras com que o GitOps ajuda a levar consistência, segurança e colaboração para a abordagem multicloud. 

Os operadores se integram às APIs do Kubernetes e às ferramentas de interface de linha de comando (CLI) para oferecer formas de monitorar aplicações, realizar verificações de integridade, gerenciar atualizações over-the-air (OTA) e garantir que as aplicações permaneçam no estado especificado.

Dois sistemas diferentes gerenciam os operadores do OpenShift Container Platform, dependendo da finalidade:

Os operadores ajudam você a criar aplicações para monitorar os serviços em execução no seu cluster. Eles implementam e automatizam as operações de instalação e configuração, aumentam ou diminuem a escala automaticamente e criam backups. Todas essas atividades estão em um software executado dentro do cluster.

Os operadores oferecem:

  • Repetibilidade de instalação e upgrade
  • Verificações de integridade constantes de cada componente do sistema
  • Atualizações over-the-air (OTA) de componentes do OpenShift 
  • Um lugar para reunir o conhecimento dos engenheiros de campo e difundi-lo para todos os usuários, não apenas um ou dois

O GitOps Primer é um operador executado no cluster do OpenShift que permite aos desenvolvedores exportar todos os objetos do Kubernetes em um namespace. Ele produz um arquivo .zip portátil que você pode: 

O GitOps Primer ajuda a viabilizar a abordagem de infraestrutura como código que o GitOps traz para a multicloud.

O Git atua como single source of truth para a configuração da infraestrutura e das aplicações. A configuração da infraestrutura e das aplicações exige acesso a ativos confidenciais, mais conhecidos como segredos (por exemplo, tokens de autenticação, chaves privadas, etc.), para que as ferramentas GitOps executem essa função.

No entanto, armazenar segredos no repositório Git representa uma vulnerabilidade de segurança e não deve ser permitido, mesmo quando o repositório é considerado privado e conta com controles de acesso para limitar o público. Se um segredo for enviado ao Git em texto não criptografado (ou em um estado facilmente reversível), ele deverá ser considerado comprometido e revogado imediatamente.

Para superar esse desafio, as duas principais abordagens de arquitetura para o gerenciamento de segredos no GitOps são:

  • Segredos criptografados
    • Armazenados em repositórios Git
    • Processos automatizados descriptografam e os apresentam como segredos do Kubernetes.
  • As referências aos segredos são armazenadas em repositórios git
    • Os processos automatizados recuperam os segredos com base nessas referências
    • Os segredos recuperados são renderizados como segredos do Kubernetes 

Para conhecer detalhes das duas abordagens, leia A Guide to Secrets Management with GitOps and Kubernetes.

Agora que você já entendeu os conceitos do GitOps multicloud, é hora de aprender a desenvolver com GitOps com:

Você também pode ler outros artigos relacionados ao OpenShift GitOps, como:

Desenvolva com o GitOps
Hub

Blog da Red Hat

Tudo relacionado à Red Hat: soluções, treinamentos e certificações Red Hat, casos de sucesso de clientes, novidades dos nossos parceiros e notícias sobre projetos das comunidades open source.

Teste as soluções da Red Hat

Você sabia que a Red Hat oferece versões de teste gratuitas de suas soluções? Aproveite e obtenha experiência prática, prepare-se para uma certificação da Red Hat ou avalie na prática se a solução é adequada para ao caso de uso.

Leia mais

O que é engenharia de plataforma?

A engenharia de plataforma é uma disciplina dentro do desenvolvimento de software que se concentra em otimizar a produtividade, a duração de ciclo de aplicação e o time to market.

Site Reliability Engineering: o que é SRE?

Site Reliability Engineering (SRE) ou engenharia de confiabilidade de sites é uma abordagem da engenharia de software para gerenciar sistemas e automatizar tarefas operacionais de TI.

O que é uma plataforma interna de desenvolvedor?

Uma plataforma interna de desenvolvedor (IDP) é formada por um conjunto padronizado de tecnologias e ferramentas de self-service que os desenvolvedores precisam para criar e implantar código.

DevOps: leitura recomendada