O que é o GitOps?
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.
O que é o repositório git?
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
O que são as estratégias de nuvem híbrida e multicloud?
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 que é 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
O que são os operadores do OpenShift?
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:
- Operadores de cluster: são gerenciados pelo Cluster Version Operator (CVO) e instalados por padrão para executar funções de cluster.
- Operadores complementares opcionais: gerenciados pelo Operator Lifecycle Manager (OLM), podem ser disponibilizados para que os usuários executem em suas aplicações.
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 que é o GitOps Primer?
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:
- Transferir para outro cluster
- Compartilhar com membros da equipe
- Inserir em fluxos de trabalho do GitOps usando Argo CD ou Red Hat Advanced Cluster Management for Kubernetes (RHACM).
O GitOps Primer ajuda a viabilizar a abordagem de infraestrutura como código que o GitOps traz para a multicloud.
O que é o gerenciamento de segredos com GitOps?
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.
Próximas etapas
Agora que você já entendeu os conceitos do GitOps multicloud, é hora de aprender a desenvolver com GitOps com:
- Introdução ao ArgoCD e ao operador GitOps do OpenShift
- Introdução a syncwaves e hooks
- CI/CD com Red Hat Ansible® Automation Platform e Jenkins no OpenShift
Você também pode ler outros artigos relacionados ao OpenShift GitOps, como:
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.