Como manter todas as instâncias em AWS Auto-scaling Grupo atualizados após a implantação novo código?

votos
0

Eu estou tentando construir um sistema mais dinâmico / escalável no AWS . I lançaram 2 casos em um grupo Graduação Automática onde o número mínimo de ocorrências é 2 e o máximo é 5 com um equilibrador de carga à sua frente. Tenho habilitado Proteção Termination nos dois primeiros casos, uma vez que eles vão ser os que eu uso para a implantação de minha aplicação Rails via Capistrano .

O problema é que eu não tenho certeza qual é a melhor maneira de manter todas as instâncias no meu grupo autoscaling up-to-date para que eles executar a mesma versão do aplicativo.

Eu tenho procurado muitas técnicas, abaixo estão os que eu encontrar aplicável, mas ainda não sei o que seria o melhor.

1- AWS CodeDeploy: Parece muito legal, utilizando Azul / Implantação Verde parece que ele iria fazer o trabalho bastante sólido com tempo de inatividade zero. Eu não sei se há uma regra de ouro para isso, mas na minha opinião, o tempo de implantação é um pouco longo , eu sou não tenho certeza se seria aplicável quando eu preciso lançar um hotfix .

2 Via Script: Não estou certo de como implementar isso usando AWS quer, mas, a idéia é quando um novo código é enviado para o meu 2 master (?) Instâncias,

  1. Vou criar uma nova configuração de lançamento utilizando o novo AMI
  2. Atualize o grupo autoscaling usar essa nova configuração de lançamento
  3. Reduza o meu grupo autoscaling para encerrar as instâncias que estão executando a configuração antiga
  4. Felizmente, políticas autoscaling vai criar novas instâncias usando a nova configuração de lançamento

O problema com esta abordagem é que ela requer alguma operação manual que eu não quero depender de muito.

3 Usando dados do usuário: Correndo novas instâncias com dados do usuário que puxa a nova versão do código. Eu não acho que este é um bom caminho desde provavelmente haverá outras instâncias que já estão executando o código antigo.

Portanto, estas são as soluções que tenho visto até agora, qual seria a melhor solução?

Felicidades!

Publicado 19/09/2018 em 13:36
fonte usuário
Em outras línguas...                            


1 respostas

votos
0

Acabei usando uma jóia extensão (meu aplicativo é escrito em ruby on rails) para implantação. Eu já estava usando Capistranopara implantação, então eu descobri a jóia elbasque faz internamente o seguinte:

  • Implantar seu código para cada instância em execução ligada a um determinado grupo AutoScale
  • Após a implantação, criar um AMI de uma das instâncias em execução
  • Fixe a AMI com o novo código para uma nova configuração de lançamento AWS
  • Atualize seu grupo AutoScale para usar a nova configuração de lançamento
  • Exclua qualquer AMIs antigos criados por ELBAS
  • Excluir todas as configurações de lançamento antigos criados por ELBAS

Esta é basicamente a segunda opção (opção Script via), e encontrar uma jóia que faz isso para mim, remove o desafio de lidar manualmente coisas.

Espero que isso ajude, aplausos!

Respondeu 23/09/2018 em 07:30
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more