Se você não puder alterar o endpoint RDS de uma instância do AWS Beanstalk, como você faz uma implantação azul / verde?

5

Do que eu posso dizer, não é possível alterar o endpoint do Amazon RDS (RDS) de uma instância existente do Elastic Beanstalk (EB)?

Se for esse o caso, do que você não pode ter seu código implantado em um servidor de estágio, estágio de banco de dados, testado e promovido para usar o banco de dados do produto?

Então, como você implanta o estágio sem ter que testar o db prod?

Dado prod e stage, achei que a estratégia seria algo assim:

  • RDS de produção de instantâneos
  • Crie um estágio com o novo código e aponte-o para o instantâneo
  • estágio de controle de qualidade
  • Estágio de ponto para produzir RDS
  • Alterar o balanceador de carga para enviar tráfego para o estágio
por Ryan Fisher 31.01.2016 / 01:15

1 resposta

0

Eu não estou familiarizado com o Beanstalk, então leve isso com um pouco de sal.

Pelo que entendi, uma estratégia de implantação A / B funciona assim:

  1. A está em prod.
  2. B está em teste.
  3. Implante em B até que você goste.
  4. Faça B Prod, transformando A em Palco.
  5. GOTO 1

Bancos de dados são terrivelmente estatísticos e não funcionam bem em trocar assim. Como eu já vi, passo 3 até lá é feito como ...

  1. Snapspot A-prod em B.
  2. Executar migrações em B.
  3. Execute a série de testes para validar o funcionamento.
  4. Se os testes falharem, GOTO 1 e repita. Mais, continue.
  5. Durante a promoção do cluster B, aplique etapas de migração em boas condições para produzir o banco de dados.

A parte complicada aqui é a indirecção do banco de dados. Para isso, sugiro ir Route53. Durante o processo de implementação:

  1. Interrompa toda a atividade de teste e atualize o cluster B.
  2. Atualize o registro do Banco de dados B para apontar para o banco de dados de prod.
  3. Durante a implantação, execute suas migrações.
  4. Coloque o cluster B em prod, que estará usando o cluster agora atualizado.
  5. Pare o cluster A.
  6. Atualizar o registro do banco de dados para apontar para o armazenamento temporário.
  7. Fotografia instantânea no banco de dados de teste.

Você tem a ideia.

    
por 31.01.2016 / 02:02