A cópia raramente é o que parte uma mudança de WordPress. O que a parte é aquilo que ninguém escreveu: um cron, um webhook, um plugin que gravou o hostname antigo numa linha, uma caixa que ainda sai do servidor antigo. Trato o inventário como a migração. A transferência de ficheiros é a tarde fácil que vem a seguir.
Escreve o sistema antes de lhe tocar
Antes de um ficheiro se mover, escrevo uma página que um estranho poderia usar. Versão de PHP. Tamanho da base. As linhas de cron e as acções agendadas dentro do WordPress, que não são a mesma lista. Correio: quem envia, por onde, e se o SPF já nomeia esse alojamento. Cada integração que chama o site ou que o site chama. Os webhooks de pagamento e uma sincronização com o CRM são as surpresas habituais, porque vivem numa definição de plugin que ninguém exportou.
Também escrevo o que significa “funcionar” para esta loja em concreto. O checkout de um produto físico. O checkout de um produto virtual. O início de sessão. Uma reposição de palavra-passe. O formulário de contacto, incluindo o correio que deve chegar. A pesquisa, se o catálogo depende dela. Se não consigo nomear o caminho, não estou pronto para mudar o DNS.
| Linha | Porque está aqui |
|---|---|
| PHP, tamanho da base, cache de objetos | O host novo pode estar «no ar» e continuar a ser o runtime errado. |
| Cron e ações agendadas | Uma tarefa nocturna falhada parece bem até o relatório da manhã estar vazio. |
| Caminho do correio | O site pode carregar enquanto cada correio de encomenda morre na máquina nova. |
| Webhooks e APIs de saída | Costumam não estar documentados, e reparam no nome do host primeiro. |
| Os cinco caminhos que ganham dinheiro | Uma verificação da página inicial não os percorre. |
Baixa o TTL no dia anterior
Põe o TTL do DNS a 300 segundos um dia antes da mudança. Se o saltares e o novo alojamento estiver errado, parte do público fica com o registo antigo durante horas. Não consegues apressar uma cache que não encurtaste. Prefiro esperar um dia de propósito a descobrir a espera durante uma falha.
Um URL de staging não é o nome real
Levanto o servidor novo e aponto só a minha própria máquina para ele, com uma excepção no ficheiro hosts, enquanto o DNS público continua a servir o alojamento antigo. Depois percorro os caminhos no nome real. Um URL de staging esconde os plugins que guardaram o domínio de produção na base de dados. Comportam-se até o nome real estar no pedido, que é exactamente o momento em que já não queres uma surpresa.
Se o caminho crítico não foi percorrido no nome real do host, a migração não foi testada.
Mantém o host antigo ligado
Não cancelo o alojamento antigo na semana da mudança. Fica no ar, só de leitura, pelo menos duas semanas. Custa pouco. É a única reversão que não depende de uma cópia que ainda não precisei de usar. Se o novo alojamento se portar mal ao terceiro dia, o registo antigo ainda significa alguma coisa.
O correio é a verificação que se esquece
O site pode parecer acabado enquanto cada correio de encomenda morre na máquina nova. Escrevo o endereço From, o relay e se a porta 25 está sequer aberta. Em mais de um alojamento não está, e o único caminho que funciona é um relay autenticado na 587. O SPF já tem um registo. Não acrescento um segundo. Dois registos SPF não se fundem. Os dois ficam inválidos, e o correio que antes chegava começa a desaparecer na semana a seguir a uma mudança que, de resto, correu bem.
Envio um correio real de encomenda e uma reposição de palavra-passe a partir do novo alojamento, para uma caixa que controlo, antes de dar a mudança por feita. Uma linha de log que diz “sent” não é o mesmo que uma mensagem na caixa. A segunda é o teste.
HTTPS no apex e em www. O certificado renova-se sozinho. O correio continua a sair. Os cinco caminhos continuam a completar-se. Depois olho para o registo de erros durante um dia, não para a página inicial. A página inicial é aquilo por que um monitor já te está a felicitar. O registo é onde um webhook começou a devolver 404 a um fornecedor de pagamentos.
Uma mudança feita assim é aborrecida. É mesmo esse o ponto. As histórias interessantes sobre migrações são quase todas a história de uma linha que faltava no inventário.
