Editar

Partilhar via


WordPress em máquinas virtuais

Azure Front Door
Azure Key Vault
Azure Load Balancer
Azure Virtual Network
Azure Virtual Machine Scale Sets

Este artigo descreve uma solução para hospedar uma instalação grande e com uso intensivo de armazenamento do WordPress no Azure. A solução maximiza a escalabilidade e a segurança. Os principais componentes da solução incluem o Azure Front Door, as Máquinas Virtuais do Azure e os Arquivos NetApp do Azure.

Arquitetura

Diagrama de arquitetura de uma implantação do WordPress em Conjuntos de Escala de Máquina Virtual do Azure. O Azure NetApp Files armazena conteúdo estático.

Transfira um ficheiro do Visio desta arquitetura.

Nota

Você pode estender esta solução implementando dicas e recomendações que não são específicas para qualquer método de hospedagem WordPress específico. Para obter dicas gerais para implantar uma instalação do WordPress, consulte WordPress no Azure.

Fluxo de dados

  • Os usuários acessam o site front-end por meio do Azure Front Door com o Azure Web Application Firewall habilitado.
  • O Azure Front Door usa uma instância interna do Azure Load Balancer como origem. O Azure Front Door recupera todos os dados que não estão armazenados em cache.
  • O balanceador de carga interno distribui solicitações para Conjuntos de Dimensionamento de Máquina Virtual do Azure. Os conjuntos de escala consistem em servidores web Ubuntu.
  • As chaves e outros segredos são armazenados no Cofre de Chaves do Azure.
  • O aplicativo WordPress usa um ponto de extremidade privado para acessar uma instância de servidor flexível do Banco de Dados do Azure para MySQL. O aplicativo WordPress recupera informações dinâmicas do banco de dados.
  • Todo o conteúdo estático é hospedado nos Arquivos NetApp do Azure e montado nas máquinas virtuais (VMs) por meio do protocolo NFS.

Componentes

  • O Azure Front Door é uma moderna rede de entrega de conteúdo na nuvem. Como uma rede distribuída de servidores, o Azure Front Door fornece conteúdo Web de forma eficiente aos utilizadores. As redes de entrega de conteúdo minimizam a latência armazenando conteúdo armazenado em cache em servidores de borda em locais de ponto de presença próximos aos usuários finais.
  • A Rede Virtual do Azure fornece uma forma de os recursos implementados comunicarem entre si, com a Internet e com as redes locais. As redes virtuais proporcionam isolamento e segmentação. Eles também filtram e roteiam o tráfego e possibilitam estabelecer conexões entre vários locais. Nesta solução, as duas redes são conectadas via emparelhamento de rede virtual.
  • A Proteção contra DDoS do Azure fornece recursos aprimorados de mitigação de DDoS. Quando você combina esses recursos com as práticas recomendadas de design de aplicativos, eles ajudam a se defender contra ataques DDoS. Você deve habilitar a Proteção contra DDoS em redes virtuais de perímetro.
  • Os grupos de segurança de rede usam uma lista de regras de segurança para permitir ou negar o tráfego de rede de entrada ou saída com base no endereço IP de origem ou de destino, porta e protocolo. Nas sub-redes desse cenário, as regras do grupo de segurança de rede restringem o fluxo de tráfego entre os componentes do aplicativo.
  • O Load Balancer distribui o tráfego de entrada com base em regras e resultados de investigação de integridade. Um balanceador de carga fornece baixa latência e alta taxa de transferência. Ao distribuir o tráfego entre vários servidores, um balanceador de carga adiciona escalabilidade aos aplicativos TCP (Transmission Control Protocol) e UDP (User Datagram Protocol). Nesse cenário, um balanceador de carga distribui o tráfego da rede de entrega de conteúdo para os servidores Web front-end.
  • Os Conjuntos de Dimensionamento de Máquina Virtual fornecem uma maneira de criar e gerenciar um grupo de VMs com balanceamento de carga idêntico. O número de instâncias de VM pode aumentar ou diminuir automaticamente como resposta à procura ou horário definido. Dois conjuntos de escala separados são usados neste cenário. Um é para os servidores Web front-end que servem conteúdo e outro é para os servidores Web front-end que são usados para criar novo conteúdo.
  • O Azure NetApp Files fornece uma solução de armazenamento totalmente gerenciada, com uso intensivo de desempenho e sensível à latência. Nesta solução, o Azure NetApp Files hospeda todo o conteúdo do WordPress para que todos os pods tenham acesso aos dados.
  • O Cache Redis do Azure é um armazenamento de dados na memória. Você pode usar o Cache Redis do Azure para hospedar um cache de chave-valor nesta solução. Esse cache é compartilhado entre todos os pods e é usado para plug-ins de otimização de desempenho do WordPress.
  • O Cofre de Chaves armazena e controla o acesso a senhas, certificados e chaves.
  • Banco de Dados do Azure para MySQL - servidor flexível é um serviço de banco de dados relacional baseado no mecanismo de banco de dados MySQL de código aberto. A opção de implantação de servidor flexível é um serviço totalmente gerenciado que fornece controle granular e flexibilidade sobre funções de gerenciamento de banco de dados e definições de configuração. Nesse cenário, o Banco de Dados do Azure para MySQL armazena dados do WordPress.

Alternativas

Em vez de usar o serviço gerenciado do Cache do Azure para Redis, você pode usar um pod autohospedado em uma VM como o cache.

Detalhes do cenário

Este cenário de exemplo é apropriado para instalações grandes e com uso intensivo de armazenamento do WordPress. Esse modelo de implantação pode ser dimensionado para atender a picos de tráfego no site.

Potenciais casos de utilização

  • Blogs de alto tráfego que usam o WordPress como seu sistema de gerenciamento de conteúdo
  • Sites de negócios ou e-commerce que usam WordPress

Considerações

Essas considerações implementam os pilares do Azure Well-Architected Framework, que é um conjunto de princípios orientadores que podem ser usados para melhorar a qualidade de uma carga de trabalho. Para obter mais informações, consulte Microsoft Azure Well-Architected Framework.

Fiabilidade

A confiabilidade garante que seu aplicativo possa atender aos compromissos que você assume com seus clientes. Para obter mais informações, consulte Visão geral do pilar de confiabilidade.

Considere as seguintes recomendações ao implantar esta solução:

  • A solução usa Conjuntos de Dimensionamento de Máquina Virtual e um balanceador de carga para distribuir o tráfego de entrada. Essa abordagem fornece alta disponibilidade mesmo se uma VM falhar.
  • Esta solução suporta várias regiões, replicação de dados e dimensionamento automático. Os componentes de rede distribuem tráfego para as VMs. Os testes de integridade são usados para que o tráfego seja distribuído apenas para VMs íntegras.
  • Todos os componentes de rede são frontados pelo Azure Front Door. Essa abordagem torna os recursos de rede e o aplicativo resilientes a problemas que, de outra forma, interromperiam o tráfego e afetariam o acesso do usuário final.
  • O Azure Front Door é um serviço global que dá suporte a conjuntos de dimensionamento de máquinas virtuais implantados em outra região.
  • Ao usar o Azure Front Door para armazenar em cache todas as respostas, você obtém um pequeno benefício de disponibilidade. Especificamente, quando a origem não responde, você ainda pode acessar o conteúdo. Mas o cache não fornece uma solução de disponibilidade completa.
  • Para aumentar a disponibilidade, replique o armazenamento dos Arquivos NetApp do Azure entre regiões emparelhadas. Para obter mais informações, consulte Replicação entre regiões com arquivos NetApp do Azure.
  • Para aumentar a disponibilidade do Banco de Dados do Azure para MySQL, siga as opções de alta disponibilidade que atendem às suas necessidades.

Segurança

A segurança oferece garantias contra ataques deliberados e o abuso de seus valiosos dados e sistemas. Para obter mais informações, consulte Visão geral do pilar de segurança.

Considere as seguintes recomendações ao implantar esta solução:

  • Use o Web Application Firewall no Azure Front Door para ajudar a proteger o tráfego de rede virtual que flui para a camada de aplicativo front-end. Para obter mais informações, consulte Azure Web Application Firewall on Azure Front Door.
  • Não permita que o tráfego de saída da Internet flua da camada de banco de dados.
  • Não permita o acesso público ao armazenamento privado.
  • Desative o acesso público aos recursos, quando aplicável. Use pontos de extremidade privados para o Banco de Dados do Azure para MySQL, o Cache do Azure para Redis e o Cofre da Chave.

Para obter mais informações sobre a segurança do WordPress, consulte Dicas gerais de segurança e desempenho do WordPress e Documentação de segurança do Azure.

Otimização de custos

A otimização de custos consiste em procurar formas de reduzir despesas desnecessárias e melhorar a eficiência operacional. Para obter mais informações, consulte Visão geral do pilar de otimização de custos.

Analise as seguintes considerações de custo ao implantar esta solução:

  • Expectativas de tráfego (GB/mês). O seu volume de tráfego é o fator que tem o maior efeito no seu custo. A quantidade de tráfego que você recebe determina o número de VMs que você precisa e o preço para a transferência de dados de saída. O volume de tráfego também se correlaciona diretamente com a quantidade de dados fornecidos pela sua rede de entrega de conteúdo, onde os custos de transferência de dados de saída são mais baratos.
  • Quantidade de dados hospedados. É importante considerar a quantidade de dados que você hospeda, porque o preço dos Arquivos NetApp do Azure é baseado na capacidade reservada. Para otimizar custos, reserve a capacidade mínima necessária para os seus dados.
  • Percentagem de escrita. Considere a quantidade de novos dados que você escreve em seu site e o custo para armazená-los. Para implantações em várias regiões, a quantidade de novos dados que você grava em seu site está correlacionada com a quantidade de dados espelhados em suas regiões.
  • Conteúdo estático versus dinâmico. Monitore o desempenho e a capacidade do armazenamento do banco de dados para determinar se um SKU mais barato pode oferecer suporte ao seu site. O banco de dados armazena conteúdo dinâmico e a rede de entrega de conteúdo armazena em cache conteúdo estático.
  • Otimização de VM. Para otimizar os custos de VMs, siga as dicas gerais para VMs. Para obter mais informações, consulte Dicas de otimização de custos.

Eficiência de desempenho

Eficiência de desempenho é a capacidade da sua carga de trabalho para dimensionar para satisfazer as exigências que os utilizadores lhe colocam de forma eficiente. Para obter mais informações, consulte Visão geral do pilar de eficiência de desempenho.

Este cenário usa Conjuntos de Escala de Máquina Virtual para os dois clusters de servidor Web front-end em cada região. Com conjuntos de escala, o número de instâncias de VM que executam a camada de aplicativo front-end pode ser dimensionado automaticamente em resposta à demanda do cliente. As VMs também podem ser dimensionadas com base em um cronograma definido. Para obter mais informações, consulte Visão geral do dimensionamento automático com conjuntos de dimensionamento de máquina virtual.

Importante

Para obter o melhor desempenho, é essencial montar o armazenamento via protocolo NFS versão 4.1. O seguinte exemplo bash para Ubuntu mostra como configurar a vers opção:

# Install an NFS driver and create a directory.
$ apt-get install -y nfs-common && mkdir -p /var/www/html
# Add auto-mount on startup. (Replace the following code with
# instructions from the Azure portal, but change the vers value to 4.1.)
$ echo '<netapp_private_ip>:/<volume_name> /var/www/html nfs rw,hard,rsize=262144,wsize=262144,sec=sys,vers=4.1,tcp 0 0' >> /etc/fstab
# Mount the storage.
$ mount -a

Contribuidores

Este artigo é mantido pela Microsoft. Foi originalmente escrito pelos seguintes contribuidores.

Autor principal:

Outros contribuidores:

  • Adrian Calinescu - Brasil | Arquiteto de Soluções Cloud Sênior

Para ver perfis não públicos do LinkedIn, inicie sessão no LinkedIn.

Próximos passos

Documentação do produto:

Módulos de formação da Microsoft: