Quais são as vantagens / desvantagens de executar Chef / Puppet em intervalos regulares?

4

Eu sempre trabalhei onde eles costumavam correr Puppet em intervalos regulares. Então, distribuir mudanças foi fácil e rápido. Na nova equipe, eles desaprovam a execução do agente Chef em intervalos regulares. Eles só usam para inicializar o sistema operacional e depois matá-lo. Eu não entendo por que alguém usaria uma ferramenta de gerenciamento de configuração como o Chef sem ter que executá-lo regularmente. Qualquer bootstrapping que estamos fazendo poderia ser feito através de shell scripts básicos - Instale o software xyz, copie o arquivo de configuração, reinicie o serviço.

Eles dizem que é muito perigoso executá-lo em intervalos regulares na produção, pois não têm certeza se o código é idempotente.

Minhas consultas são:

  • Quantos de vocês usam as ferramentas Orchestration apenas para bootstrapping? Não é como dirigir um Bugatti a 20 mph em becos?
  • Há algum problema que você vê em executar isso em intervalos regulares, quando você aumenta? Como lidaria com isso? (Uma maneira que eu sabe é executar o agente em modo de solo e deixá-los baixar o cookbooks de algum repositório / artifactory que pode manipular múltiplos downloads simultâneos, ao invés de sobrecarregar o servidor Puppet / Chef).
  • Como posso incentivar a equipe a corrigir o código para ser idempotente e executar o agente em intervalos regulares? Ou se afastar do Chef para algo simples como bash para reduzir a sobrecarga de manter / escrever o código.
  • Estou certo em dizer que não estamos usando as ferramentas da maneira como elas devem ser usadas?
  • Estou perdendo / negligenciando alguma coisa aqui?
por deppfx 06.07.2018 / 09:49

1 resposta

3

orquestração para bootstrap

Existem ferramentas como o Terraform, que estão focadas nessa parte do processo. Eu também uso ansible para algumas tarefas ad-hoc que não precisam ser reexecutadas com frequência.

Geralmente, é uma prática recomendada executar seu gerenciamento de configuração pelo menos a cada hora. A concessão ou a remoção do acesso geralmente acontece por meio desses mecanismos e atrasar as atualizações pode causar problemas de conformidade ou de usabilidade. Em uma grande loja dividimos o boneco em dois para que o material específico do aplicativo pudesse ser pausado sem quebrar o "boneco de sombra" que controlava as atualizações de controle de acesso e "não podia" ser cortado.

problemas de correr regularmente

Se você escrever receitas ruins, poderá destruir toda a produção muito rapidamente. Ter algum processo em que as funções são liberadas no controle de qualidade e validadas antes de passar para a encenação e serem revalidadas antes de ir para o prod. Chef tem mecanismos de testes integrados. Técnicas semelhantes podem ser usadas com as outras.

como incentivar a execução regular

Primeiramente, vou me concentrar nos problemas que estão sendo escovados sob o tapete. Se você não executar suas receitas com frequência, não notará quando elas começarem a não funcionar devido a alterações no sistema operacional ou nos aplicativos.

Em seguida, mencionarei que as alterações podem ser feitas em qualquer lugar rapidamente quando necessário. Seu intervalo entre as execuções do chef deve ser o tempo máximo que você está disposto a esperar que uma alteração se propague em todo o ambiente.

você está certo?

Principalmente. Se funcionar bem o suficiente para eles, eles podem não ver necessidade de mudar nada. Talvez seja necessário criar uma demonstração para mostrar o valor e torná-lo real para as pessoas. Ou talvez você precise esperar que sua organização amadureça ao ponto de poder lidar com o que está ensinando.

o que você está perdendo?

A principal coisa que você não parece estar considerando é o possível impacto no desempenho. Se o aplicativo for realmente sensível às coisas que estão sendo executadas em segundo plano, você poderá ver uma taxa de transferência menor ou uma latência maior enquanto o chef é executado. Se este for o caso, você precisará ajustar suas receitas ou apenas deixá-lo rodar fora dos horários de pico.

Outra coisa que eu vi acontecer é o esgotamento da memória. O aplicativo gradualmente mastiga memória até que o chef não pode mais funcionar. Espero que você tenha monitoramento dos níveis de memória e se o chef está trabalhando ou não para pegar esse tipo de coisa.

Além do desempenho e da memória, sugiro ler um livro como o Release It que explica muito sobre como construir sistemas de produção confiáveis.

    
por 10.07.2018 / 20:36