Seu site WordPress é escalonável?
Publicados: 2017-05-16O seu site WordPress é escalonável? Existem muitos exemplos de instalações do WordPress em grande escala no ambiente selvagem. O WordPress.com, por exemplo, é uma grande instalação multisite que obtém dezenas de milhões de visualizações de página por mês. Ele também atende milhares de usuários a qualquer momento.
Outros exemplos incluem Time, TechCrunch e CNN. Não há dúvidas sobre isso. Você pode definitivamente construir um site escalável com WordPress que seja poderoso o suficiente para lidar com qualquer quantidade de tráfego, contanto que você crie o ambiente certo. Configurar sua instalação em escala pode ser complexo, mas é um investimento que vale a pena para qualquer proprietário de site. Nesta postagem, abordamos algumas áreas nas quais você pode se concentrar para garantir a escalabilidade e oferecemos dicas sobre como configurar um ambiente escalável.
O que queremos dizer com escalável?
O que torna um site WordPress escalonável? Um site WordPress escalável tem a capacidade de aumentar a capacidade aumentando ou diminuindo a escala.
- Aumentar a escala - aumente a potência do hardware (mais RAM, uma CPU mais poderosa).
- Expanda - aumente a capacidade adicionando mais nós (com cópias idênticas de seu site distribuídas entre várias máquinas).
Isso lhe dá flexibilidade para acomodar o crescimento. Basicamente, você deseja expandir seu site sem problemas. Com o WordPress, você não precisa se preocupar com o software. O núcleo do WordPress implementa convenções de arquitetura de software em camadas, como separar a marcação (HTML e CSS) dos dados (banco de dados MySQL). A seguir, exploraremos algumas maneiras de garantir a escalabilidade máxima.
Ambiente de desenvolvimento

Imagem de Sentavio / shutterstock.com
Uma das partes mais difíceis de dimensionar um site WordPress é configurar um ambiente de desenvolvimento. Um bom ambiente de desenvolvimento irá espelhar o ambiente de produção sem problemas. Se você tem um site pequeno, pode desenvolver ao vivo, embora ele definitivamente não seja escalonado.
Você precisará de algum tipo de controle de versão para garantir que os desenvolvedores não pisem nos calcanhares uns dos outros. O software de controle de versão registra as alterações nos arquivos ao longo do tempo para que possam ser recuperados posteriormente. Além disso, é uma maneira muito mais eficiente e profissional de desenvolver um site WordPress escalável.
Existem muitas soluções elegantes disponíveis graças ao trabalho árduo da comunidade de código aberto. Git é um software de controle de versão distribuído que permite que vários desenvolvedores trabalhem remotamente em repositórios separados. É confiável, rápido e capaz de lidar com projetos incrivelmente grandes. Afinal, o Git foi criado por Linus Torvalds para o desenvolvimento do Linux.
Você pode construir um ambiente de desenvolvimento matador com VVV (Varying Vagrant Vagrants). Este software de código aberto gratuito é ideal para criar ambientes de desenvolvimento distribuídos com WordPress. Confira nosso Guia definitivo para configurar seu ambiente de desenvolvimento WordPress para obter um tutorial aprofundado sobre isso. WordPress.org também tem um tutorial útil sobre como instalar o VVV.
Escalabilidade Horizontal
O dimensionamento, ou dimensionamento horizontal, é um dos conceitos mais importantes da criação de um ambiente dimensionável. Isso permite que você execute seu site em muitas máquinas (servidores) diferentes. Algumas pessoas chamam a infraestrutura de “arquitetura elástica” - porque a quantidade de recursos que você tem pode expandir ou diminuir com base na quantidade necessária.
Isso é feito por meio de métodos de computação em nuvem, como clustering, balanceamento de carga e virtualização. Na ciência da computação, agrupamento é o processo de organizar objetos semelhantes em grupos. Portanto, um único cluster conterá os arquivos, o banco de dados e o software do seu site. O clustering garante que seu site tenha alta disponibilidade, eliminando problemas devido a falhas de hardware e software. Como funciona?
Se o seu site obtiver um pico de tráfego, um balanceador de carga determinará como alocar apropriadamente mais recursos para compensar a redução de escala - isso acontece dinamicamente e os visitantes nunca percebem nada. A ideia é que você tenha cópias idênticas do seu site distribuídas em várias máquinas e todas se conheçam. Portanto, sempre haverá um computador no cluster em espera se houver um aumento no tráfego ou um componente da pilha falhar.
Serviços de hospedagem em nuvem como Amazon Web Services (AWS) ou RackSpace são dois provedores de hospedagem em nuvem populares que permitem escalabilidade horizontal. Confira este tutorial sobre como implantar um site WordPress altamente disponível com AWS para ver um exemplo de uma infraestrutura de servidor típica com arquitetura elástica.
Cache
Um cache é um espaço de armazenamento temporário para memória. O cache pode ajudá-lo a entregar conteúdo mais rápido e evitar problemas com simultaneidade. Todo CMS precisa de algum tipo de cache, o WordPress não é diferente. A má notícia é que o armazenamento em cache pode ser ridiculamente complexo. A boa notícia é que a comunidade de código aberto surgiu com muitas soluções diferentes sobre o assunto. Existem muitas ferramentas para ajudá-lo, incluindo WP Super Cache e Batcache.

Cache de proxy reverso (cache de página)
O cache de proxy reverso é uma maneira eficiente de carregar páginas da web dinâmicas. O proxy reverso é um serviço que atua como intermediário entre o WordPress e o navegador. Isso pode ajudar a reduzir a carga em seu servidor principal e diminuir o tempo percebido de carregamento da página.
O problema é que os servidores PHP consomem muitos recursos. Eles executam um grande número de tarefas complexas, que podem paralisar seu servidor. Você pode aliviar a carga em seu servidor implementando um proxy reverso.
Por exemplo, digamos que você tenha um visitante na página inicial do seu site. É a primeira visita do dia. Neste ponto, ainda não há uma versão em cache da página inicial.
- O usuário insere o URL na barra de endereço, solicitando uma página do servidor.
- A solicitação passa pelo proxy, que ainda não tem uma versão em cache da página, para o WordPress.
- O WordPress gera a página inicial e fornece a resposta de volta ao proxy reverso.
- O proxy então envia a resposta ao navegador e salva uma cópia em cache dessa página.
- Enquanto o cache estiver lá, qualquer usuário que solicitar essa página receberá a versão em cache da página.
Cache de objetos
O conceito por trás do cache de objeto é semelhante ao cache de página, exceto que funciona em objetos individuais. Muitos problemas de simultaneidade podem surgir quando há muitos usuários conectados ao seu site. O cache de objetos salva um objeto de aplicativo (como um vídeo, imagem, documento) em um armazenamento de dados. Ao armazenar em cache os objetos do aplicativo, você fica menos dependente do banco de dados, liberando muita memória.
Existem muitas opções de armazenamento em cache. Redes de distribuição de conteúdo como Cloudflare, Akamai, EdgeCast e KeyCDN podem atuar como proxies reversos massivos. Varnish e WP Super Cache são duas opções populares para implementar o cache com WordPress.
Desempenho de consulta

Imagem de Oleg Erin / shutterstock.com
O banco de dados geralmente pode ser a causa dos piores gargalos. Consultas lentas podem bloquear o aplicativo PHP em seu servidor e paralisar todas as atividades - mesmo se você tiver uma arquitetura elástica. Como mencionei antes, os servidores PHP podem tornar o servidor significativamente lento. Se o armazenamento em cache não estiver funcionando, você pode encontrar maneiras de melhorar o desempenho de sua consulta, identificando consultas lentas.
Consultas lentas são devidas a problemas com o banco de dados SQL, a rede que executa seu site ou o servidor. Existem vários motivos pelos quais isso pode acontecer. Definitivamente, não há soluções de tamanho único. A primeira etapa para melhorar o desempenho da consulta é identificar consultas lentas.
Depois de identificar o problema, você pode agir. Às vezes, a resposta pode ser tão simples quanto comprar mais largura de banda, outras vezes você pode precisar ajustar o código, o que pode ser complicado.
Confira o plugin do Monitor de Consultas do WordPress se você estiver procurando por uma ferramenta para monitorar consultas.
Melhorar a pesquisa
Se você tiver uma grande quantidade de postagens, digamos 1 milhão, deverá estar ciente de como seus bancos de dados são configurados. A maioria dos sites maiores possui um índice de pesquisa otimizado. Que é um mecanismo de busca personalizado adicionado ao WordPress.
A consulta de pesquisa de conteúdo no WordPress não funciona bem se você tiver um grande número de postagens em seu site. Também deixa a desejar em termos de velocidade. Uma correção comum para esse problema é criar um índice de pesquisa dedicado. Isso mantém essas consultas fora do banco de dados, proporcionando aos usuários uma melhor experiência de navegação, além de aumentar o desempenho do seu banco de dados.
Os mecanismos de pesquisa populares para sites WordPress de grande escala incluem ElasticSearch e ApacheSolr.
Empacotando
Começar na escala certa também é importante. Comece simples e otimize depois. Para citar Donald Knuth, “a otimização prematura é a raiz de todos os males”. Acomode-se para o crescimento, mas não tente espremer um grande site de comércio eletrônico em uma base minúscula ou vice-versa. Você pode não precisar construir um site escalável se for para algo simples como uma página de evento.
Normalmente, a arquitetura elástica é o padrão para sites de comércio eletrônico. Embora algumas dessas coisas possam parecer incrivelmente complexas, você realmente não precisa entender tudo. Contanto que você tenha um domínio do básico, pode construir um ambiente robusto para um site de grande escala. Tudo o que você precisa fazer é encontrar os serviços de nuvem certos e conectar-se com o CDN certo.
Sinta-se à vontade para compartilhar suas experiências na seção de comentários. Quais etapas você executou para tornar seu site WordPress escalonável?
Imagem em miniatura do artigo por turbodesign / shutterstock.com
