Atualizar, adicionar, remover plug-ins, temas ou wordpress por trás do balanceador de carga

4

Estou executando o wordpress em dois servidores idênticos. Ambos estão sentados atrás de um balanceador de carga. Ambos usam o mesmo banco de dados.

Como posso fazer coisas como atualizar um plug-in ou wordpress?

Meu pensamento atual é:

  1. Desconecte um dos servidores do LB - Então eu sei qual deles estou trabalhando.
  2. Faça as alterações necessárias (por exemplo, plug-in de atualização) por meio do painel de controle.
  3. Copie o diretório necessário do servidor ativo (por exemplo: plugins/some_plugin ) e substitua esse arquivo no servidor inativo. (Como as alterações já foram feitas no banco de dados, não quero usar o painel para atualizar o outro servidor).

Esta é a maneira de atualizar / remover / adicionar plugins / wordpress?

Eu pensei que essa seria uma maneira comum de configurar o wordpress, mas não encontrei muita documentação sobre isso. Existe uma configuração preferida?

Obrigado.

    
por theyuv 16.11.2016 / 17:38

4 respostas

2

Esta é uma pergunta fantástica - eu pessoalmente nunca me deparei com isso antes, mas aqui está o que eu tentaria, assumindo:

  • você tem uma imagem de um servidor que está usando para criar novas instâncias
  • você está usando um CDN e armazenamento em nuvem para imagens e uploads (em vez de ter uma pasta de uploads local)

Com essas duas suposições, isso significa que você pode ativar e desativar instâncias do servidor sem se preocupar com a perda de dados - os arquivos e a configuração entre cada servidor são idênticos.

  • Crie uma nova instância do seu servidor, mas não a adicione ao balanceador de carga
  • aponte seu arquivo hosts para o IP da instância
  • atualize o plug-in na instância, verifique se tudo está funcionando conforme você espera
  • crie uma imagem do servidor atualizado
  • crie mais uma instância com base na imagem atualizada
  • aponte o LB para as novas instâncias

Esse é um processo doloroso, e acho que em seguida também procuraremos ferramentas de implantação automatizadas, como o Capistrano, ou talvez um serviço como o Deploy.

    
por guiniveretoo 16.11.2016 / 18:33
1

Isso precisa ser feito em poucas etapas

  1. replicar o banco de dados (caso você ainda não tenha um).
  2. remova um servidor do LB, altere sua configuração para apontar para o "novo" banco de dados.
  3. conecte-se à área administrativa apenas para esse servidor (defina em seu arquivo localhosts o IP ou de qualquer outra forma e faça o upgrade.).
  4. No LB, desligue o outro servidor e o outro atualizado.
  5. atualize o plug-in no outro servidor (basicamente, é suficiente atualizar o código)
  6. conecte o outro servidor ao "novo" DB
  7. altere a configuração do LB para ativar o outro servidor.

Como este não é um procedimento extremamente rápido, você deve minimizar o número de plugins que você usa como plugins puros, ou tentar atualizar o máximo possível ao mesmo tempo.

(Eu escrevi o plugin, mas também se aplica a temas e core)

    
por Mark Kaplun 16.11.2016 / 18:42
0

Eu tenho estado nessa mesma situação por muitos anos - 3 servidores atrás de um balanceador de carga. Subsistemas de disco diferentes. Banco de dados compartilhado. Na verdade, encontrei essa pergunta procurando alguma maneira de simplificar o gerenciamento. O que tenho feito (e o que tem funcionado bem) há muitos anos é o seguinte:

  1. Certifique-se de que eu tenha backups automáticos de tudo (banco de dados e arquivos) ... apenas no caso. Eu nunca precisei deles, mas isso é sempre um pré-requisito.
  2. Faça login no Admin Console do WP e observe o servidor ao qual você está se conectando, se possível
  3. Atualize o wordpress e os plug-ins usando os métodos normais de interface do usuário
  4. Faça login no servidor em questão (e, se você não souber qual deles está usando algum recurso da sua infraestrutura, veja os carimbos de hora dos arquivos do plug-in que você acabou de atualizar).
  5. Copie a árvore de diretórios do wordpress para o (s) outro (s) servidor (es)
  6. Faça backup dos diretórios antigos do WP e substitua pelos novos diretórios.

Isso nunca falhou. No entanto, ele não é 100% recomendado, pois o WP em execução nos servidores que ainda não foram atualizados pode ter problemas durante a atualização devido a inconsistências de software ou banco de dados. Normalmente o processo é muito rápido de qualquer maneira.

A melhor solução é fazer o acima, mas, tendo os servidores, você não está atualizando primeiro o serviço e atualizando-os antes de reativá-los no balanceador de carga. Eu suponho que cabe a você onde você se encaixa na curva "rápida e fácil" vs "risco" para o seu blog.

    
por Erik Kangas 09.03.2017 / 14:01
0

A maioria dessas respostas parece basear-se no pressuposto de que você está apenas executando / atualizando seu site em um servidor remoto; e, como tal, algumas das soluções parecem muito complicadas. Eu tenho dois sites que são executados atrás de balanceadores de carga - um com dois servidores e um com quatro; Ambos são escaláveis para quantos servidores forem necessários. Ambos os sites são mantidos & atualizado com alguns cliques usando uma compilação local, Git e Jenkins.

Eu tenho uma cópia funcional dos sites em localhost em execução em XAMPP . Os bancos de dados não são idênticos, mas a estrutura do arquivo é. Eu também tenho uma conta BitBucket privada e um .gitignore para ignorar coisas como minha pasta local wp-config e a pasta /uploads/ (que eu não quero ou preciso sincronizar com o servidor).

Sempre que houver uma atualização de plug-in, atualizo-a pelo Wordpress no meu localhost como normal. Uma vez feito isso, eu abro meu cliente Git e empurro as mudanças para o BitBucket.

No servidor, eu tenho um serviço Jenkins que está configurado para construir a partir da minha fonte BitBucket para o site ao vivo. Eu clico em Build , aguardo alguns minutos e pronto. O Jenkins é compilado para todos os servidores e há o rsync disponível para garantir que tudo seja simpatico.

Todo o meu processo de atualização é Atualizar local - > Git push - > Construir Jenkins

Isso depende de você ter uma localhost ou outra construção controlável que possa ser enviada com o Git, mas, depois de configurada e executada, a atualização do site Wordpress com carga balanceada se torna incrivelmente fácil.

    
por indextwo 24.03.2017 / 12:14