Como implantar alterações no banco de dados de preparo e, ao mesmo tempo, mantê-lo em sincronia com o banco de dados mestre de produção?

4

Eu quero configurar um servidor de teste para fazer o teste final do meu site. O banco de dados do site de preparo está replicando o mestre de produção mysql db para refletir um ambiente real.

Se uma implantação só contiver alterações de código, será fácil implantá-la primeiro em preparação e, em seguida, em produção, se ela estiver estável o suficiente.

Mas, se uma implantação contém alterações no banco de dados, como posso implantá-lo no armazenamento sem influenciar o banco de dados do mestre, mas ainda mantê-lo em tempo real, sincronizado com o banco de dados principal?

Editar:

Se não puder ser feito. Como posso fazer com que os dados sejam gravados no servidor de armazenamento temporário 'not lossing'? Se algum usuário usar o site beta, não quero que seus dados sejam perdidos quando o staging finalmente ficar estável.

Gostaria de saber como o facebook ou o google lançam seus novos recursos sem perder os dados do testador beta?

    
por lxyu 11.05.2012 / 16:21

1 resposta

10

Você não pode.

Minha sugestão é não replicar a produção para a preparação, mas ocasionalmente reconstruir o banco de dados de preparação com um dos seus arquivos de backup de produção. Então você está trabalhando com dados de produção (embora com poucas horas ou dias de uso), mas as alterações feitas na preparação não afetarão a produção.

EDIT: Com a sua edição, esta é agora uma questão significativamente diferente.

Se você tiver testadores beta usando seu servidor de armazenamento temporário e esperando que seus dados entrem em produção, ele não será um servidor de armazenamento temporário: é um servidor de produção. Eu acho que essa é a mudança fundamental do conceito, tornando isso difícil de responder; a maioria de nós (eu acho) considera um servidor de teste como um etch-a-sketch que pode ser descartado e reconstruído sem medo. Se você estiver planejando permitir que alguns usuários testem suas alterações e mantenham seus dados quando você entrar em produção, será necessário um framework diferente do de preparação / produção.

EDIT2: Aqui estão algumas perguntas sobre estouro de pilha que lidam com esse tipo de configuração:

por 11.05.2012 / 16:40