Uma abordagem racional sobre atualizar sua instalação do WordPress

A capacidade de atualizar o núcleo, os temas e os plugins do WordPress no painel administrativo é um recurso dos mais interessantes. Facilita todo um processo de atualizações que seria entediante e tornou tudo incrivelmente simples… qualquer um pode fazer isso! Bastam alguns cliques e você está executando as versões mais recentes de tudo!

Quando pensamos sobre isso com um olhar mais aprofundado, no entanto, pode não ser tão maravilhoso assim. Isso porque, por melhor que seja esse recurso, não há garantias de harmonia funcional. A aplicação de uma atualização pode, em alguns casos, danificar seu site – ou pelo menos causar alguns incômodo bugs e te dar algum trabalho para os resolver.

Com certeza, há algum risco envolvido. Isso é angustiante o suficiente se você mantiver um único site WordPress, e para aqueles de nós responsáveis ​​por dar manutenção em vários sites de clientes, a pressão pode realmente aumentar.

Então, como você lida com isso?

Respire fundo e pense no futuro. Crie um plano e processos sólidos para executá-lo. Vamos dar uma olhada em algumas técnicas para mitigar os riscos e dar a você um pouco de tranquilidade.

19 plugins a serem atualizados.. calma, sei que o dedo coça mas não atualiza nada antes de ler o artigo até o fim!

1 – Prepare-se para o desconhecido

Se você já fez login no seu site, viu que havia atualizações disponíveis e as aplicou sem pensar duas vezes, saiba que você não está sozinho. É assim que muitos administradores de sites WordPress (amadores e profissionais) fazem as coisas. E é ótimo em cada vez que você atualiza tudo sem ter efeitos negativos.

Mas e se algo tivesse dado errado? O que você faria?

Um dos piores cenários envolve tentar apressadamente corrigir um site quebrado (dica: não é NADA divertido). Para evitar problemas assim (e o telefone tocando com um cliente desesperado porque seu site está fora do ar), é preciso um cenário preparado para isso.

Felizmente, não é realmente tão difícil assim. Nesse artigo, veremos as primeiras linhas de defesa para evitar um desastre nas atualizações. Ainda melhor é que, após a configuração inicial, cada uma dessas soluções pode ser automatizada até certo ponto. Isso economiza seu tempo e, ao mesmo tempo, fornece a proteção necessária.

Mantenha backups do site

Uma das maneiras mais fáceis de se proteger contra as consequências de uma atualização incorreta é ter um conjunto de backups recentes do site disponíveis. Isso permitirá que você reverta para uma configuração funcional. A partir daí, você pode corrigir os problemas em segundo plano (mais sobre isso abaixo).

As empresas de hospedagem geralmente executam backups diários ou pelo menos fornecerão um método para isso. Embora esse seja um ótimo recurso, também há um benefício real em ter backups externos.

Isso pode protegê-lo em caso de interrupção do servidor e acessar os arquivos e o banco de dados do seu site. É algo que salva vidas, caso você precise mover rapidamente seu site para outro servidor. Não, não está exclusivamente relacionado a atualizações de software, mas é importante da mesma forma.

Você pode dar o passo extra de manter backups externos através do uso de um plug-in como o UpdraftPlus ou através de um painel de gerenciamento de sites tudo-em-um, como o ManageWP e o InfiniteWP, ou até mesmo o Jetpack (com backups apenas em suas versões pagas). Eles fazem backusp do seu site em um serviço de nuvem (Amazon S3, Dropbox etc.), fornecendo outra camada de segurança… mas nada lhe impede de usar o UpdraftPlus e manualmente salvar os arquivos de backup na nuvem também.

Tenha um ambiente de homologação!

Outra parte importante de estar preparado é ter ambientes de testes para não fazer alterações diretamente no site que está no ar, e o ideal é que você tenha ao menos 3 ambientes para seu site:

  1. Localhost – Um ambiente de desenvolvimento local, em seu computador, com a mesma versão do PHP e banco de dados utilizado em seu site. Para tal, você pode utilizar ambientes simples como Xamp/Mamp ou até mesmo ambientes de desenvolvimento mais robustos e profissionais com o Docker.
  2. Homologação – Um ambiente de testes no mesmo servidor que seu site está hospedado. Para isso, você pode criar um subdomínio como dev.seusite.com.br com uma cópia fiel do banco de dados e arquivos do site, assim poderá efetuar testes sem derrubar seu site principal. Lembre-se de bloquear esta versão para mecanismos de busca, e você pode ainda bloquear para ser visitada apenas do seu IP (caso possua IP fixo).
  3. Site em produção – O site no ar, o que seu clientes/visitantes realmente visitam quando digitam o domínio do site.

O ambiente de homologação é uma instalação privada e separada do seu site no mesmo servidor em que seu site está hospedado que permite testar atualizações no site antes de aplicá-las ao seu site de produção.

A beleza dessa configuração é que você pode descobrir possíveis problemas sem causar impacto negativo no site público. Se algo não funcionar como o esperado, você tem um local oculto para resolver tudo silenciosamente.

Existem várias maneiras de integrar o ambiente de produção no seu fluxo de trabalho. No caso de hospedagens compartilhadas, o mais simples é encontrar um host que ofereça essa funcionalidade. Alguns até têm um processo de “um clique” que permite criar um ambiente de homologação fazerndo uma cópia do seu site, e enviar atualizações para produção. No caso de um VPS ou servidor mantido por ti, um simples subdominio e cópia de arquivos e banco resolverá facilmente.

Além disso, pode ser necessário criar um clone do seu site e instalá-lo em outro lugar. O ideal é você desenvolver o site em sua máquina local, quando pronto o colocar em um ambiente de homologação e quando tudo estiver certo o colocar no ar. Se seu site já está no ar sem ter seguido esse caminho, você pode copiar os arquivos do site via FTP e os utilizar num ambiente local, e também criar manualmente um ambiente de homologação em seu servidor.

Para facilitar a experiência, você pode utilizar o controle de versão por meio de uma ferramenta como o Git, e isso é o que mais recomendo já que também servirá como um backup do seu código.

No meu processo de trabalho, ao criar novas tarefas primeiro as testo em ambiente local e uma vez funcionando envio todas as alterações para meus repositórios privados no Github, um para cada projeto. Após isso, sincronizo no ambiente de homologação (via SSH no servidor. puxando as alterações salvas no Github), e só quando vejo que tudo está realmente funcionando 100% em homologação, envio todas as alterações para o servidor de produção. Existem ainda soluções pagas para estas sincronizações, como o DeployHQ, e scripts que você pode utilizar em seu servidor.

Independentemente de como seu ambiente de armazenamento temporário esteja configurado, será de grande ajuda para impedir que erros no seu código, bugs de plugins ou temas cheguem ao seu site e o tirem do ar. É altamente recomendado, para todos os tipos de sites!

2 – Conheça mais sobre as atualizações

Os backups do site e um ambiente de homologação são apenas uma parte desta equação. A outra parte é entender quais atualizações do WordPress estão disponíveis, o que elas fazem e priorizá-las com base nessas informações.

Isso vai além de apenas olhar os nomes dos itens na tela Atualizações. Isso requer um pouco de pesquisa para garantir que você esteja tomando a melhor decisão possível quando se trata de atualização. Aqui está o que você deve saber.

Nem toda atualização deve ser tratada como emergência

Às vezes, parece que as atualizações exibidas à nossa frente são um pouco como um título de “Breaking News”, novidades impressionantes e totalmente necessárias, e assim tendemos a tratá-las com atenção imediata. E, embora seja bom manter tudo 100% atualizado, existem algumas que não são tão prioritárias, não significam que precisem ser feitas neste minuto.

Vamos para um exemplo prático!

Digamos que existem dois plugins (plugin A e plugin B) em nosso site. Cada um lançou uma atualização:

  • O changelog (registro de alterações) do plugin A mostra que a nova versão adicionou um novo recurso “impressionante”, mas não tão necessário para você, e que nenhuma alteração adicional foi feita;
  • O changelog do plugin B corrigiu algumas falhas de segurança não reveladas;

Embora novos recursos sejam ótimos, as correções de segurança são vitais! Nesse caso, o plugin B deve ter sua atenção imediata, enquanto o plugin A deve ser atualizado apenas se você realmente precisar da nova funcionalidade.

Então, como saber quais alterações são uma prioridade? Simples, as que corrigem problemas de segurança ou até mesmo de usabilidade do plugin. Para conferir o changelog de um plugin, na tela de atualização de plugins você pode encontrar um link listando as atualizações.

Vejamos o changelog da nova versão do plugin acima: tem várias correções (FIX) , algumas melhorias (TWEAKS) e novidades (NEW). Mas como não foi testado na minha versão do WordPress, poderá causar erros e por isso primeiro testei em ambiente de homologação.

Identifique problemas em potencial

Em geral, correções de bugs e segurança são as atualizações que você deseja mover para o topo da sua lista de prioridades. Outras atualizações, como adições de recursos e pequenos ajustes, não precisam necessariamente ser aplicadas imediatamente.

Às vezes, novos recursos podem ter consequências não intencionais. Eles podem não funcionar como o esperado em seu site específico ou causar conflitos com outro software.

Portanto, antes de atualizar, vale a pena conferir os fóruns de suporte. Se o seu tema ou plugin estiver listado no repositório oficial do WordPress, visite a seção de suporte e veja se outros usuários estão tendo problemas. Costumo sempre esperar alguns dias antes de atualizar justamente para visitar os fórums e ver se alguém já reclamou sobre erros causados por uma atualização de tal plugin.

Software de outras fontes (sim, eu sei que muitos tem a mania de confiar em fontes não tão seguras assim ou sair comprando plugins pagos sem nem saber se realmente tem qualidade técnica ou não) podem demorar um pouco mais para serem atualizados. O autor pode ter seu próprio portal de suporte (normalmente onde foram comprados) ou você pode encontrar informações em um site como o Stack Overflow.

E se você usa plugins/temas “nulled” (baixa plugins pagos em fontes não confiáveis ao invés de os comprar e prestigiar o trabalho de seus deenvolvedores), você está pedindo para se dar mal, e mesmo sem saber vai até merecer tomar uma porradinhas no site para aprender a não confiar nisso. Não vou dizer que torço para isso acontecer, mas é bem claro que isso pode acabar acontecendo um dia e com chances muito maiores do que utilizando produtos de forma certa (quer garantia de qualidade não vai no pirata né).

Sobre atualizações, a conclusão é que é uma boa prática ter algumas informações básicas sobre exatamente o que mudou e as possíveis consequências. Isso pode impedir você de instalar software problemático sem querer (e todo o trabalho para restaurar o site como estava antes).

Não altere temas de terceiros diretamente!

Se você está utilizando um tema que não é desenvolvido e mantido por você (como um tema gratuito do diretório oficial de temas ou um tema comprado em outras fontes como o ThemeForest.net), não é correto alterar arquivos do tema diretamente, pois uma vez atualizado o tema você perderá todos as alterações feitas em arquivos do tema.

O ideal neste caso é você criar um tema filho e aplicar usas alterações nele… ou se precisar apenas colar algumas funções extras em seu site seguindo dicas como “altere o arquivo functions.php do seu tema”, é melhor utilizar um plugin como o Code Snippets para adicionar tais funções no seu site.

Considerações sobre o core do WordPress

As atualizações no core (núcleo) do WordPress (traduzindo, as novas versões do próprio software do WordPress) devem receber a maior prioridade, pois geralmente incluem mudanças importantes e também são extensivamente testadas antes de serem lançadas, aumentando a confiabilidade.

As atualizações podem ser agrupadas em duas categorias gerais:

Principais Lançamentos (Major Releases)

O que chamo de principais lançamentos são as novas versões do WordPress (por exemplo, seu site está usando o WordPress 5.0 ou 5.0.X e saiu a versão 5.1) e estas tendem a ter uma mistura de novos recursos e correções de segurança/bugs. Na maioria dos casos, essas atualizações não causam problemas. No entanto, pode haver algumas situações em que adiar um pouco faz sentido.

Por exemplo, quando o WordPress começar a exigir versões superiores do PHP, talvez você não consiga atualizar da maneira correta se o site não for compatível. Também é possível que um plugin que você instalou em seu site não seja atualizado frequentemente, e com isso causar algum problema (como por exemplo, quando utiliza uma função que já devia ter sido abandonada em seu código e esta foi removida do WordPress por questões de evolução do sistema).

Quando algo grande da estrutura do WordPress muda (por exemplo, o editor visual antigo foi atualizado e agora o editor padrão conta com blocos de conteúdo, que pode não funcionar perfeitamente em temas muito antigos), o ideal é entender bem o que mudou, se isso afeta seu site ou não e caso alguma das alterações possam lhe afetar, testar é o caminho. Ao testar você entenderá o que acontecerá e poderá buscar ajuda no fórum oficial para saber o que fazer para mitigar este problema.

Novamente, é aqui que um ambiente de preparação pode ser uma grande ajuda. É melhor descobrir isso no ambiente de testes apropriado do que derrubar todo um site sem saber o que aconteceu.

Versões menores (Minor Releases)

As atualizações de uma versão secundária (por exemplo, seu site está usando o WordPress 5.0 e saiu a atualização para a versão 5.0.1) geralmente se concentram apenas em bugs e preocupações de segurança. por padrão elas serão instalados automaticamente quando lançadas já que este é o comportamento padrão do WordPress, mas pode depender de nenhum plugin/tema alterar isso, você não ter funções que alterem isso ou seu servidor não impedir a atualizaçao automática. Geralmente, isso é positivo, pois pode protegê-lo de bugs já conhecidos por todos (e é claro que quem tenta invadir um site checa bugs das versões antigas e tenta descobrir qual você está usando).

Você pode preferir desativar essas atualizações automáticas para poder realizar alguns testes primeiro, mesmo sabendo que elas não costumam causar problemas. Mas certifique-se de testar essas versões menores o mais rápido possível pois a segurança do seu site também depende disso.

3 – Dê preferência a SSH no lugar de atualizar clicando no painel ou enviar arquivos por FTP

Essa é uma questão relativamente simples quando você entende como os protocolos FTP/HTTP funcionam, mas que não é tão clara para todos.

Quando você clica no botão de atualizar em seu painel do WordPress, você está fazendo uma requisição HTTP do seu navegador para o seu servidor, e quando você envia arquivos por FTP você estabelece uma comunicação de seu máquina local com o servidor. Ambas funcionam e não costumam causar problemas, entretanto você não sabe ao certo o que aconteceu caso um problema aconteça (por exemplo, sua conexão de internet ficou lenta ou caiu), e no caso do FTP ainda tem que ficar esperando todos os arquivos serem enviados sem poder fazer mais nada no site enquanto isso (e infelizmente, a velocidade de upload no Brasil é baixa na maioria das empresas de acesso a internet).

Quando você faz atualizações via SSH, você está conectado diretamente ao seu servidor e qualquer solicitação é feita diretamente do servidor para o próprio servidor, não dependendo mais da sua conexão (que servirá apenas para dar a ordem e esperar) e funcionando de forma muito mais rápida.

Para meus projetos e projetos de clientes que estejam em servidores VPS e que eu vá prestar qualquer manutenção, dou preferência a instalar o WP CLI no servidor e o utilizar por SSH para tais tarefas (atualizar plugin, exportar backups, etc), assim com rápidos comandos consigo. Quando possível, desabilito também todo e qualquer acesso FTP, evitando assim que enviem arquivos para o servidor de maneira insegura (ou criem outras pastas para hospedar arquivos não relacionados ao projeto, pra isso servem Dropbox, Google Drive e muitos outros projetos).

Caso seja realmente necessário utilizar FTP, dê preferência para conexões SFTP (protegidas por um certificado de segurança).

4 – Consistência leva a melhores resultados

Resumindo, atualizar uma instalação do WordPress e seus plugins/temas requer algum pensamento racional. Dê um passo de cada vez, não saia apertando botões loucamente.

Primeiro crie uma rede de segurança na forma de backups de sites e um ambiente de homologação. Esse ambiente ajudará a detectar problemas, enquanto os backups permitem que você se recupere rapidamente caso ocorra o inesperado.

Em seguida, reserve um tempo para aprender mais sobre seu site. Conheça o tema ativo, plugins e ambiente do servidor (versão do PHP, banco de dados, funcionalidades ativas no servidor). Quando houver atualizações disponíveis, leia os registros de alterações apropriados e navegue nos fóruns de suporte. Isso fornecerá informações vitais sobre o que está sendo alterado e quaisquer complicações que outras pessoas estejam enfrentando.

Esse artigo foi escrito justamente no momento que eu me deparei com 5 atualizações de plugins aqui no TudoParaWP e resolvi não atualizar um plugin de cache justamente por não saber que problemas ele causaria, então o testei em meu ambiente de homologação e ele me causou alguns problemas rapidamente solucionados… felizmente, problemas que ninguém mais saberia se eu não contasse aqui, afinal foram testadas no local correto.

Sobre o artigo: Este artigo é uma tradução livre do artigo A Rational Approach to Updating Your WordPress Install, do WP Shout, com adaptações e informações adicionais incluídas por mim.

Deixe uma resposta