Você tem alguma estratégia eficaz para iniciar uma v2 de um site WP?

12

Minha equipe e eu estamos trabalhando com um cliente que possui um site WordPress existente com um pouco de conteúdo e um tema personalizado que eles criaram. É um blog de grupo, o que significa que tem vários blogueiros em todo o mundo que estão adicionando e editando conteúdo o tempo todo.

Nosso trabalho é criar um tema totalmente novo, com alguns recursos novos. Alguns desses recursos exigirão novos widgets, plugins e campos de banco de dados personalizados.

Atualmente, estamos trabalhando em nossas próprias máquinas de desenvolvimento e integrando-as em um único servidor de desenvolvimento. Todo o código é versionado no SVN. Nosso DBA apontado está mesclando manualmente quaisquer alterações do banco de dados no banco de dados do desenvolvedor no momento, embora esperemos que ele possa automatizar isso em breve.

Começamos a conversar sobre nosso processo de lançamento da produção. Significado: assim que terminarmos, como colocaremos todo o nosso código personalizado no servidor de produção (ao vivo) sem problemas e com a menor interrupção possível?

Temos alguns planos em mente, mas eu gostaria de saber como outras pessoas também resolveram esse problema. Existem práticas recomendadas a serem seguidas ou armadilhas conhecidas a serem evitadas?

Mike Lee
fonte

Respostas:

4

Se você seguir o conselho da SethMerrick, poderá reduzir bastante o tempo de alternância diminuindo o TTL nos registros DNS apropriados para 5 minutos ou mais várias horas (dependendo do TTL atual) antes de alterar o endereço IP.

Ao fazer isso, você está dizendo aos servidores DNS remotos que armazenem em cache apenas o endereço por 5 minutos. Depois de alterar o IP, você pode aumentar o TTL para o que era antes. Para minimizar ainda mais o efeito, faça a troca durante um período de tráfego baixo.

Aaron Terry
fonte
Nós apenas começamos a fazer isso, coincidentemente. Definitivamente ajuda. Não podemos permitir um longo período de implantação. Obrigado por adicionar essa dica!
Mike Lee
Observe que você deve alterar o TTL por muito tempo antes de alterar o IP . Em outras palavras, se TTL é de uma semana, você deve alterar o TTL para 5 minutos uma semana antes de alterar o IP, para que todos estejam no novo TTL quando o fizer.
Daniel C. Sobral
2

Não tenho certeza se isso é aplicável, mas acabei de passar por um processo semelhante de migrar e atualizar simultaneamente um site de alto tráfego.

A estratégia básica era trabalhar em um servidor intermediário, quando tudo estiver pronto, faça um despejo mysql no servidor ativo, importe-o para o servidor intermediário, faça qualquer limpeza necessária e aponte os registros DNS para o servidor intermediário, causando a servidor de teste para se tornar o novo servidor ativo.

A parte complicada é mesclar todos os dados acumulados durante a propagação do DNS no servidor intermediário (que agora é o servidor ativo). Em outras palavras, se passarem 30 horas entre o momento em que você faz o DNS despejo / atualização do mysql e quando a propagação do DNS estiver concluída, você terá que mesclar seletivamente 30 horas de registros do site antigo para o novo.

Não é um processo contínuo, mas quando passamos uma semana no caminho, todas as torções haviam se resolvido.

SethMerrick
fonte
Nesse cenário, você tornaria o site antigo efetivamente somente leitura enquanto o DNS estiver em transição para impedir alterações no site que não serão migradas?
Trevor Bramble
Essa é uma abordagem alternativa, para impedir que novos dados sejam adicionados ao banco de dados do site antigo durante a transição. A abordagem mencionada acima, no entanto, deixa o site antigo ativo durante a transição e mescla manualmente quaisquer entradas de banco de dados extras que apareceram durante a transição (novas postagens, comentários etc.) no novo site. edit: só ​​queria mencionar que a sugestão de acterry sobre a TTL Records é um conselho fantástico.
SethMerrick
Fizemos algo parecido com isso. Não é transparente, mas ei, funciona.
Mike Lee
2

@ Mike Lee: Ótima pergunta, e um dos santos grails do WordPress (ou qualquer um dos CMSs de código aberto mais conhecidos com o qual estou familiarizado, como Drupal, Joomla, et al.)

Embora certamente não seja para abordar seu caso de uso, confira minha resposta a uma pergunta relacionada que descreve um plug-in de nível beta que acabei de disponibilizar via WordPress Answers Exchange chamado WP Migrate Webhosts (sim, sou péssimo quando se trata de nomeação de criativos .)

Mas também quero resolver o caso de uso que você descreve com um plug-in e atualmente estou pensando em como fazer isso. Estou pensando que a maneira de abordá-lo é desistir de resolvê-lo de maneira genérica e, em vez disso, abordar os padrões conhecidos existentes no WordPress e permitir que qualquer outra pessoa " conecte " meu plug-in para casos de uso especiais. Também estou pensando que uma abordagem é serializar os dados e as estruturas no WordPress como dados em um arquivo PHP, para que um futuro plugin possa aplicar essas alterações como deltas, assim como um sistema de controle de código-fonte aplica deltas para chegar à versão atual da fonte código.

Portanto, enquanto não estiver respondendo ou resolvendo seu problema por completo, espero dar a você um bom alimento para pensar e também esperar que você ou outra pessoa queira colaborar em uma solução eventual.

MikeSchinkel
fonte
O WP Migrate Webhosts parece um plugin muito necessário. Obrigado por compartilhar isso e esse feedback!
Mike Lee
Acho que sim. Espero obter colaboração para que eu e outros possamos evoluí-la para que seja extremamente útil! Obrigado pela votação.
precisa saber é o seguinte