Back-End

13 fev, 2017

Estrutura em cloud para grandes sites WordPress

Publicidade

Estamos em uma era que não podemos negar o poder do WordPress em administrar sites, muito além dos antigos blogs que víamos sempre por aí. Grandes sites, portais e até mesmos lojas virtuais já podem utilizar esta plataforma para se estabelecerem online – e estão fazendo isso! É o caso de sites como o da USP (Universidade de São Paulo) e o próprio iMasters.

Sites como esses têm em comum alguns pontos que não permitem mais que eles funcionem normalmente dentro de uma estrutura compartilhada. A utilização de plugins para controle
e segurança do WordPress, e o nível de personalização do próprio WordPress para atender às demandas destes tipos de projetos podem ser um fator a se analisar. Mas sem dúvida o
fluxo de processos, acessos e atualizações de banco de dados que superam, e muito, qualquer estrutura fornecida por planos comuns de hospedagem são o maior fator a se considerar aqui.

Estrutura dedicada do cloud

Ao contrário das hospedagens compartilhadas, uma estrutura em cloud computing permite a disponibilização de recursos dedicados ao projeto. Isto quer dizer, mais segurança, estabilidade e desempenho para o projeto, que não será influenciado por outros sites que estão no mesmo servidor.

Nesta estrutura é possível pensar os recursos que vão atender a esta alta demanda do projeto de forma escalável. Sejam recursos para o fluxo normal de utilização do site ou para um momento de pico, o cloud computing permite aos administradores de desenvolvedores se precaverem contra ultrapassar o uso de recursos como memória, espaço em disco e VCPUs conforme o crescimento do uso destes sites.

O patamar de informações que circula neste tipo de projeto precisa estar muito bem alinhado com os recursos aplicados ao servidor que o sustenta, se não pode ser o fim da estabilidade do site.

Separação de banco de dados

O WordPress, como um bom CMS, realiza o controle de informações dentro de banco de dados. Assim, pode não parecer tão claro mas, se preocupar com o acesso, estabilidade e cacheamento desta base de dados é o fator que deve estar no top 1 das preocupações do seu projeto.

A notícia boa é que com uma estrutura em cloud é possível criar um cluster de banco de dados. Este cluster é responsável por separar em diferentes instâncias sua aplicação web (que vai possuir acesso dos seus usuário) e a escrita/leitura dos dados no banco de dados que serão feitas pela aplicação. Em um post feito no Blog da DialHost expliquei sobre o funcionamento do cluster de banco de dados e como esta arquitetura balanceia a quantidade de requisições ao banco.

Balanceando as cargas de acesso

Do lado da aplicação é possível balancear os processos direcionando os acessos ao WordPress para instâncias separadas de forma uniforme, otimizando a utilização dos recursos e evitando sobrecargas que poderiam ocorrer em uma instância única.

Cacheamento dos dados em nível de servidor com Redis

O Redis é um servidor de estruturas de dados que pode ser usado como um servidor de banco de dados ou utilizando em paralelo com o MySQL para aumentar o seu desempenho. Ele é recomendado para ser configurado como cache para aliviar o consumo que as queries de banco de dados usam para renderizar a página em WordPress.

Como resultado teremos um WordPress renderizado muito mais rápido, o consumo bem menor dos bancos de dados e cache persistente e ajustável.

 

Como podem ver, este artigo não foca mais naquelas simples soluções baseadas em otimizações feitas por plugins do WordPress que funcionam em diversos blogs menores. Aqui, estamos falando em soluções para grandes sites, que têm acessos e processos bem mais robustos. Nesses casos, ter o controle total das requisições, rede, banco de dados é, de fato,  o maior responsável pela estabilidade do site.

Para o próximo artigo, já estou planejando escrever sobre a configuração do Redis para manter o cacheamento das informações do WordPress. Então até lá.