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:
- A está em prod.
- B está em teste.
- Implante em B até que você goste.
- Faça B Prod, transformando A em Palco.
- 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 ...
- Snapspot A-prod em B.
- Executar migrações em B.
- Execute a série de testes para validar o funcionamento.
- Se os testes falharem, GOTO 1 e repita. Mais, continue.
- 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:
- Interrompa toda a atividade de teste e atualize o cluster B.
- Atualize o registro do Banco de dados B para apontar para o banco de dados de prod.
- Durante a implantação, execute suas migrações.
- Coloque o cluster B em prod, que estará usando o cluster agora atualizado.
- Pare o cluster A.
- Atualizar o registro do banco de dados para apontar para o armazenamento temporário.
- Fotografia instantânea no banco de dados de teste.
Você tem a ideia.