O que é o Chef? - Uma ferramenta usada para gerenciamento de configuração



Este blog em What is Chef é o primeiro blog da série de blogs Chef. Ele fala sobre o Gerenciamento da Configuração e como o Chef consegue isso usando um caso de uso.

Chef é uma ferramenta usada para Gerenciamento de Configuração e está competindo de perto com Fantoche . Neste blog, vou explicar o que é Chef, Gerenciamento de Configuração e como o Chef alcança o Gerenciamento de Configuração com um caso de uso.

O que é o Chef?

Chef é uma ferramenta de automação que fornece uma maneira de definir a infraestrutura como código. Infraestrutura como código (IAC) significa simplesmente gerenciar a infraestrutura escrevendo código (Automatizando a infraestrutura) em vez de usar processos manuais. Também pode ser denominado como infraestrutura programável. O Chef usa Ruby puro, linguagem específica de domínio (DSL) para escrever as configurações do sistema. Abaixo estão os tipos de automação feitos pelo Chef, independentemente do tamanho da infraestrutura:





  • Configuração de infraestrutura
  • Implantação de aplicativo
  • As configurações são gerenciadas em sua rede

Gostar Fantoche que tem uma arquitetura Master-Slave, até mesmo o Chef tem uma arquitetura Client-Server. Mas Chef tem um componente extra chamado Workstation. Vou falar sobre estação de trabalho no meu próximo blog. Consulte o diagrama abaixo:

Chef vs Puppet - O que é Chef - Edureka



No Chef, os nós são atualizados dinamicamente com as configurações no servidor. Isso é chamado Configuração de pull o que significa que não precisamos executar nem mesmo um único comando no servidor Chef para enviar a configuração nos nós, os nós se atualizarão automaticamente com as configurações presentes no servidor. Meu próximo blog em Tutorial do Chef irá explicar a arquitetura do Chef juntamente com todos os componentes do Chef em detalhes.

Agora, vejamos as razões por trás da popularidade do Chef.

O que é Chef - Principais Métricas do Chef

  • Chef suporta múltiplas plataformas como AIX, RHEL / CentOS, FreeBSD, OS X, Solaris, Microsoft Windows e Ubuntu. Plataformas de clientes adicionais incluem Arch Linux, Debian e Fedora.
  • O Chef pode ser integrado a plataformas baseadas em nuvem, como Internap, Amazon EC2, Google Cloud Platform, OpenStack, SoftLayer, Microsoft Azure e Rackspace para provisionar e configurar automaticamente novas máquinas.
  • Chef tem um apoio comunitário ativo, inteligente e em rápido crescimento.
  • Devido à maturidade e flexibilidade do Chef, ele está sendo usado por gigantes como Mozilla, Expedia, Facebook, HP Public Cloud, Prezi, Xero, Ancestry.com, Rackspace, Get Satisfaction, IGN, Marshall University, Socrata, University of Minnesota, Wharton School da Universidade da Pensilvânia, Bonobos, Splunk, Citi, DueDil, Disney e Cheezburger.

De acordo com Phil Dibowitz, Engenheiro de Produção, Facebook



“Existem três dimensões de escala que geralmente consideramos para infraestrutura - o número de servidores, o volume de diferentes configurações entre esses sistemas e o número de pessoas necessárias para manter essas configurações. O Chef forneceu uma solução de automação flexível o suficiente para se adaptar à dinâmica da nossa escala, sem exigir que mudemos nosso fluxo de trabalho ”.

Sem dúvida, o Chef é uma das ferramentas de gerenciamento de configuração mais famosas e está competindo de perto com Fantoche . Mas, antes de mergulhar fundo em 'O que é Chef', é justo que eu primeiro explique o que é Gerenciamento de Configuração e por que ele é importante.

Gerenciamento de configurações

Não se preocupe, não haverá nenhuma definição pesada de Gerenciamento de Configuração neste blog :)

Deixe-nos entender o Gerenciamento da Configuração desta forma - suponha que você precise implantar um software em centenas de sistemas. Este software pode ser um sistema operacional ou um código ou pode ser uma atualização de um software existente. Você pode fazer esta tarefa manualmente, mas o que acontece se você tiver que terminar esta tarefa durante a noite, porque amanhã pode ser um Big Billion Day venda na empresa ou algum M ou Venda etc. em que é esperado tráfego intenso. Mesmo se você pudesse fazer isso manualmente, há uma grande possibilidade de erros múltiplos no seu grande dia. E se o software que você atualizou em centenas de sistemas não estiver funcionando, como você reverterá para a versão estável anterior, será capaz de fazer essa tarefa manualmente? AF-claro que não!

Para resolver esse problema, o Gerenciamento da Configuração foi introduzido. Ao usar ferramentas de gerenciamento de configuração como Chef, Puppet, etc., você pode automatizar essa tarefa. Tudo que você precisa fazer é especificar as configurações em um servidor centralizado e, de acordo com todos os nós, serão configurados. Ele permite o acesso a um registro histórico preciso do estado do sistema para fins de gerenciamento de projetos e auditoria. Então, basicamente, precisamos especificar as configurações uma vez no servidor central e replicar isso em milhares de nós. O Gerenciamento da Configuração ajuda a realizar as tarefas abaixo de uma maneira muito estruturada e fácil:

  • Descobrir quais componentes alterar quando os requisitos mudarem.
  • Refazer uma implementação porque os requisitos mudaram desde a última implementação.
  • Reverter para uma versão anterior do componente se você tiver substituído por uma versão nova, mas com falhas.
  • Substituir o componente errado porque você não pôde determinar com precisão qual componente deveria ser substituído.

Consulte meu blog no Puppet para saber como a NYSE economizou milhões de dólares com a ajuda do Gerenciamento de Configuração

Existem basicamente duas maneiras de gerenciar suas configurações: configurações Push e Pull.

  • Configuração de pull: Neste tipo de Gerenciamento de Configuração, os nós pesquisam um servidor centralizado periodicamente para atualizações. Esses nós são configurados dinamicamente, portanto, basicamente, eles puxam configurações do servidor centralizado. A configuração pull é usada por ferramentas como Chef, Puppet etc.
  • Configuração de push: Nesse tipo de Gerenciamento de Configuração, o Servidor centralizado envia as configurações aos nós. Ao contrário da configuração pull, existem certos comandos que devem ser executados no servidor centralizado para configurar os nós. A configuração push é usada por ferramentas como o Ansible.

Aprenda vários componentes do Gerenciamento de Configuração em meu Blog do tutorial do Puppet

Agora é o momento certo para levá-lo adiante nesta busca de entender “O que é Chef”, explicando como Chef alcança o Gerenciamento de Configuração.

O que é Chef - Gerenciamento de configuração com Chef

Nós entendemos o que é Chef, agora irei explicar como Chef alcança o Gerenciamento da Configuração com um caso de uso. A Gannett é uma holding de mídia americana de capital aberto. É a maior editora de jornais dos EUA, medida pela circulação diária total.

O fluxo de trabalho de implantação tradicional da Gannett foi caracterizado por várias transferências e testes manuais. Vamos ver quais foram os problemas que eles enfrentaram com este processo:

  • Manter compilações precisas e repetíveis era difícil.
  • Ocorreram muitas falhas de construção e os testes geralmente eram executados em ambientes errados.
  • Os tempos de implantação e provisionamento podem variar de alguns dias a várias semanas.
  • A equipe de operações não tinha acesso à nuvem ou aos ambientes de desenvolvimento.
  • Cada grupo usava seu próprio conjunto de ferramentas e não havia responsabilidade para finanças ou segurança. Ninguém sabia quanto custava realmente um aplicativo. A segurança não tinha como auditar as pilhas de software.

A Gannett estava pronta para a mudança. Os desenvolvedores queriam implantar seus aplicativos rapidamente. As operações queriam uma infraestrutura estável onde pudessem construir e implantar de forma repetível. A área de finanças queria saber o verdadeiro custo de um aplicativo. A segurança queria visualizar e auditar todas as pilhas e poder rastrear as alterações.

A Gannett viu que a nuvem como um serviço oferece muitas vantagens. Os desenvolvedores tiveram acesso a recursos padronizados. Era mais fácil lidar com o tráfego de pico por causa do modelo de computação sob demanda da nuvem, e as transferências foram minimizadas.

O Chef permite que você provisione e desprovisione dinamicamente sua infraestrutura sob demanda para acompanhar os picos de uso e tráfego. Ele permite que novos serviços e recursos sejam implantados e atualizados com mais frequência, com pouco risco de tempo de inatividade. Com o Chef, você pode aproveitar toda a flexibilidade e economia de custos que a nuvem oferece.

Vamos ver quais foram as funções desempenhadas pelo Chef na Gannett:

  • A Gannett começou a construir VPC (Virtual Private Cloud) para ambiente de desenvolvimento que imitaria a produção. Nenhuma das ferramentas que eles já estavam usando era apropriada. Mas eles descobriram que o Chef funcionava bem com a nuvem e com o ambiente Linux e Windows. Eles usaram o Chef para construir um ambiente de desenvolvimento que combinava perfeitamente com o ambiente de produção.
  • Para que um aplicativo fosse movido para o VPC, ele precisava ser provisionado e implantado com o Chef.
  • A segurança seria envolvida desde o início e gerenciaria os controles obrigatórios para acesso ao Chef e para manter os padrões de segurança do sistema.

Agora é a hora de entender quais foram os resultados desse processo:

  • A implantação da Gannett se tornou mais rápida e confiável. Provisionamento e implantação de aplicativos, o que costumava levar semanas, depois de usar o Chef demorava minutos.
  • Todos os novos aplicativos foram implantados na nuvem com o Chef. Esses aplicativos foram implantados em todos os ambientes da mesma forma que foram implantados na produção. Além disso, os testes ocorreram em cada ambiente, para que as implantações fossem confiáveis.
  • Toda a infraestrutura foi tratada como código, o que aumenta muito a visibilidade das mudanças ocorridas. Desenvolvimento, Operações, Segurança e Finanças se beneficiaram disso.

Depois de ' O que é Chef ”Meu próximo blog, ou seja, Tutorial do Chef concentra-se na arquitetura do Chef junto com seus componentes. Também expliquei como implantar o Apache2 usando Chef.

variável de instância no exemplo java

Se você encontrou este blog em “ O que é Chef ' relevante, Confira o pela Edureka, uma empresa de aprendizagem online confiável com uma rede de mais de 250.000 alunos satisfeitos espalhados por todo o mundo. O curso Edureka DevOps Certification Training ajuda os alunos a ganhar experiência em vários processos e ferramentas DevOps, como Puppet, Jenkins, Nagios e GIT para automatizar várias etapas em SDLC.