Modelos são indispensáveis ​​para automação orientada por GitOps

Publicados: 2022-05-27

Índice

Automação orientada por GitOps

O Kubernetes ficou famoso por sua facilidade de dimensionamento e administração de aplicativos em contêiner. Ele permite classificar e gerenciar nós, peças, contêineres, serviços e mapas de configuração ao longo de todo o ciclo de vida do aplicativo. Era difícil conseguir tal flexibilidade e controle por meio de scripts.

Mas graças à abordagem de anúncio do Kubernets para infraestrutura, você pode definir alterações de precisão em qualquer nível. O Kubernetes permite que você integre várias ferramentas para facilitar o planejamento, a implantação e o monitoramento automatizados de contêineres.

Uma dessas ferramentas é o Helm, uma estrutura de automação adotada pelo CNCF que se tornou popular não apenas nos círculos do Kubernetes, mas também no ecossistema GitOps. Neste post, veremos como o Helm ajuda a automatizar aplicativos nativos da nuvem por meio do Kubernetes e do GitOps.

O que é Elmo?

Embora descrito como um gerenciador de pacotes, o Helm é uma ferramenta poderosa para automatizar a instalação, implantação, atualização e gerenciamento de aplicativos Kubernetes. Gerenciar o Manifesto do Kubernetes é uma tarefa que está se tornando cada vez mais complexa entre os sistemas. Duplicar vários arquivos YAML e valores de hardcode são necessários para uma única classificação. O Kubernetes precisava de uma maneira melhor de gerenciar arquivos YAML por meio de um formato de empacotamento simples, o que levou aos gráficos do leme. No entanto, o propósito do Leme está além do modelo.

Gráficos

Os gráficos Helm são unidades que podem ser usadas para aplicativos Kubernetes. Cada gráfico pode conter arquivos, metadados e infraestrutura de aplicativos. Os gráficos escritos em Go serão armazenados em diretórios de modelos específicos com variáveis, versões e descrições associadas. Ao armazenar esses gráficos como arquivos em um repositório, você pode compartilhá-los com toda a sua equipe de desenvolvimento para reutilização.

Depois que uma cópia de um gráfico é instalada no cluster do Kubernetes, ela é chamada de saída. Uma nova versão é criada cada vez que o gráfico é usado, o que pode acontecer várias vezes. As publicações ajudam você a monitorar e instalar gráficos.

Abaixo estão algumas regras importantes para saber ao trabalhar com o Helm.

Chart.YAML: o arquivo principal que contém a descrição do seu gráfico

Values.YAML: O arquivo que contém os valores padrão do seu gráfico

Gráficos: Um diretório com subgráficos

Modelos: Diretório de fontes do Kubernetes definido como modelos

Modelos

Uma pasta de modelo é um recurso chave do Helm. Ele contém os arquivos de configuração do aplicativo, que são então aplicados ao cluster. Os arquivos no diretório de templates chamam seus valores de values.YAML.

Por que Elmo?

O Helm agrega grande valor ao ambiente de entrega contínua, pois traz os seguintes benefícios.

Maior produtividade:

O Helm (junto com outras ferramentas de classificação, como o Flux) permite classificar o software com um único botão ou um único comando. Isso permitirá que sua equipe se concentre apenas no desenvolvimento de software.

Facilita o processo:

O conceito de gráficos permite copiar o mesmo gráfico no pipeline – desenvolvimento, teste e produção – ou no fluxo de trabalho de diferentes equipes. Isso reduz significativamente o problema.

Medição:

Os gráficos são projetados para se alinharem à arquitetura de cluster do Kubernetes, o que facilita a escalabilidade.

Retirada fácil:

O Helm gerencia todas as versões, facilitando a obtenção de alterações quando surgem problemas.

O GitOps aproveita o Helm e o Flux

O Helm pode gerenciar versões complexas e manter as coisas simples enquanto você mede. No entanto, à medida que as alterações forem introduzidas gradualmente, o Helm precisará de ferramentas adicionais para atualizar o cluster Kubernetes.

O Flux é uma excelente solução de preenchimento para o Helm porque atua como uma ponte entre o Helm e todos os repositórios Git importantes a partir dos quais todo o cluster Kubernetes e as especificações do utilitário são definidos.

O Flux é uma solução de automação de implantação baseada no modelo GitOps, que faz do Git o ponto de partida e a fonte real de todas as mudanças. O Flux permite manter a consistência entre os repositórios de código e os clusters do Kubernetes e automatiza a classificação quando as alterações de código são introduzidas.

Resumindo, o Flux Helm automatiza os lançamentos de gráficos sincronizando gráficos do Git para o cluster Kubernetes.

Como o Flux funciona com o Helm?

Para usar o Flux como um operador GitOps, você salva todos os gráficos do Helm junto com seus arquivos YAML e recursos personalizados do Kubernetes no repositório Git. Além disso, você coloca imagens inalteráveis ​​dessas fontes em um registro de contêiner.

Depois de fazer uma alteração no Git com a solicitação 'Pull', o Flux verificará seu repositório e fornecerá os recursos necessários. As mudanças são então incorporadas ao cluster de produção. Isso, é claro, simplifica o processo e você pode fazer muito mais – como testes de fumo ou aprovar alterações específicas do SRE – mas, por enquanto, vamos simplificar.

Se você quiser saber mais sobre como o Flux 2 e o Helm trabalham juntos para aumentar a velocidade e a confiabilidade enquanto reduzem o tempo ocioso, confira esta palestra no YouTube de Scott Rigby.

Conclusão

O Helm reduz significativamente a dificuldade de executar o Kubernetes. Ele agrega grande valor ao pipeline do GitOps com o conceito de gráficos ou modelos. Dito isso, existem outros requisitos além do modelo, ou seja, automação de implantação de ponta a ponta. É aqui que uma ferramenta como o Flux (ou Weave GitOps, embutido no Flux) é necessária para usar o leme. Além disso, a solução do tipo Magalix garante que as versões do Helm sejam compatíveis e seguras.

O Weave KitApps é uma solução de entrega contínua que permite gerenciar o Kubernetes em escala. Isso facilita para qualquer empresa adotar e implementar o GitOps. O Weave GitOps simplifica o cluster funcional com comandos como 'gitops install' para habilitar o GitOps e 'gitops add app' para adicionar ao seu aplicativo. Esses comandos abstraem as tarefas complexas subjacentes que estão envolvidas na automação de implantação. O Weave GitOps reúne todo o pipeline do GitOps, incluindo Helm, Flux, Magalix e muito mais - para que você possa começar a usar o GitOps sem perder tempo.

como-se-tornar-um-vendedor-amazon-em-passos-fáceis

marketing digital para restauração