A evolução do gerenciamento de configuração: IaC vs. GitOps
Publicados: 2022-05-23Índice
A evolução do gerenciamento de configuração
Estruturas impróprias são a principal razão por trás de incidentes de segurança em ambientes orquestrados pelo Kubernetes ou outros ambientes de contêiner. Sem a configuração correta, os aplicativos podem ter problemas que vão desde incompatibilidades e conflitos até falhas de desempenho, vulnerabilidades de segurança e falhas operacionais. O gerenciamento de configuração é uma parte importante da manutenção do estado desejado e estável dos computadores no ciclo de vida de desenvolvimento de software.
Legado de gerenciamento de configuração
Naquela época, quando se tratava de gerenciar mudanças nos recursos de TI, o foco da equipe de TI era principalmente no nível do servidor, para ver se alguma mudança no hardware causaria problemas na camada restante. Cada servidor foi configurado manualmente com excelente cuidado e tempo de lazer. As máquinas virtuais trouxeram maior flexibilidade e eficiência a esse processo.
O Infrastructure Code (IaC) é um grande passo para o gerenciamento de configuração onde todo o hardware é definido como um código. Ferramentas de IaC, como plataformas baseadas em nuvem, Chef, Puppet e Ansible, desempenharam um papel fundamental na simplificação e dimensionamento do gerenciamento de infraestrutura. Eles ajudaram a acelerar o provisionamento de infraestrutura e reduzir os custos, melhorando a utilização de recursos.
Ao longo dos anos, plataformas e contêineres baseados em nuvem, em particular, revolucionaram a forma como a infraestrutura é provisionada. Com a adoção de uma grande nuvem e a transformação do Git no sistema de controle de versão atual, o GitOps surgiu como a mais recente reviravolta na evolução do gerenciamento de arquitetura. O GitOps vai muito além do IaC quando se trata de codificar tudo. 'Tudo' aqui inclui infraestrutura, rede, dados e aplicativos.
Kubernetes e a abordagem declarativa para infraestrutura
Assim como a programação, existem duas abordagens para fornecer infraestrutura – notificação e compulsória.
Uma abordagem convincente exige que você especifique as etapas apropriadas a serem tomadas para fornecer ou modificar a infraestrutura. Ele fornece a experiência para usar a infraestrutura. Ele fornece a experiência para usar a infraestrutura. Por outro lado, a abordagem de notificação é mais adequada para a abordagem nativa da nuvem moderna definida pelo Kubernetes. Você só precisa definir o estado desejado do sistema e deixar sua funcionalidade para um site como o Kubernetes. A infraestrutura do Kubernetes facilita a configuração de automação e notificação.
A mudança de DevOps para GitOps
O GitOps, concebido em 2017, é uma estrutura funcional moderna para gerenciar clusters Kubernetes e fornecer aplicativos focados em Git. Obtém os melhores bits de DevOps como ferramenta CI/CD, colaboração entre Dev e Ops, automatização de processos e utiliza-os no pipeline de entrega de software utilizando Git como fonte de autenticidade.
O DevOps garantiu a colaboração entre as equipes de desenvolvimento e operacionais e trouxe uma mudança cultural no campo da tecnologia da informação. Mas, menos do que o esperado, as empresas adotaram os recursos de integração contínua e distribuição contínua, mas não avançaram para a implantação contínua.
É aqui que o GitOps leva as coisas para o próximo nível. Com a abordagem GitOps, as equipes não apenas definem, mas também gerenciam a classificação e a modificação de sua infraestrutura de dentro de um repositório Git. Fazer alterações na infraestrutura é tão fácil quanto criar uma solicitação de arrastar agora – você pode detectar erros de digitação, fazer revisões regulares ou alterar a promessa, se necessário. Usando o Git, os desenvolvedores agora podem gerar código e os engenheiros de sistema operacional podem usar esse código automaticamente na produção.
Usando o Flux & Helm para gerenciamento de configuração orientado por GitOps
O Kubernetes permite integrar uma variedade de ferramentas para automatizar o planejamento, classificação e monitoramento de contêineres. Uma dessas ferramentas é o Helm, que se tornou muito popular no ecossistema GitOps.
O Helm é um poderoso gerenciador de pacotes para Kubernetes que facilita a definição, instalação e implantação dos aplicativos e serviços mais repetitivos usados em diversas situações. Os gráficos do Helm agregam grande valor ao ambiente de distribuição contínua, fornecendo um design de empacotamento organizado para gerenciar vários arquivos YAML com valores duplicados e de código fixo.
Gerenciamento de configuração: IaC vs. GitOps
Resumindo, o Helm ajuda você a simplificar as coisas ao medir e gerenciar saídas complexas. Mas ele deve estar vinculado aos repositórios essenciais do Git definidos pelo cluster K8s e pelas especificações do aplicativo. O fluxo facilita.
Flux é uma coleção de agentes GitOps de código aberto que atuam como uma ponte entre repositórios Git e clusters Kubernetes. Helm chart é uma ferramenta de automação de classificação de notificações que mantém a consistência do código automatizando a saída quando as alterações de código são introduzidas. O Flux sincroniza essas alterações dos clusters Git para Kubernetes.
Ele faz isso com recursos personalizados chamados HelmRelease, que aciona o operador de leme e sincroniza as alterações no código do gráfico. Sem mencionar, o Flux vem com extensas funções de detecção de deriva, bem como outros recursos interessantes.
Por muito tempo, o gerenciamento de arquitetura era sobre hardware e infraestrutura, mas desde então percorremos um longo caminho. Com a introdução do GitOps e das ferramentas que o tornam mais fácil, os desenvolvedores e engenheiros de plataforma têm muitas opções para projetar a infraestrutura que desejam – de forma anunciada.
O Weave GitOps utiliza Flux e Helm e capacita fluxos de trabalho de gerenciamento de configuração eficazes de repositórios jit em todas as maneiras como o Kubernetes produz clusters. Um recurso que distingue o Weave GitOps é sua capacidade de fornecer aplicativos confiáveis. Adiciona política confiável de entrega de utilitários como código ao GitOps, segurança e conformidade, regressão de aplicativos e implementação de padrões de codificação da origem à produção. É uma combinação de pipelines GitOps seguros e testes de segurança contínuos por meio de políticas codificadas que permitem práticas recomendadas de segurança e padrões de alta segurança em todo o ciclo de vida de desenvolvimento de software. O GitOps também é a maneira de fazer o gerenciamento de configuração para sistemas modernos nativos da nuvem e o Weave GitOps torna essa abordagem não apenas simples, mas também segura.
como-criar-uma-conta-gmail-guia passo-a-passo
web-crawling-vs-web-scraping-qual-é-a-diferença