Implemente o WordPress com o MySQL Database Service no Oracle Cloud Infrastructure Kubernetes Engine

Aproveite a flexibilidade e os benefícios de custo de hospedar suas páginas Web e blogs do WordPress na Oracle Cloud Infrastructure (OCI).

O WordPress é um dos sistemas de gerenciamento de conteúdo (CMS) mais populares usados para gerenciar páginas da web e blogs. Torne sua implantação do WordPress altamente escalável e disponível com os seguintes serviços da OCI:
  • Oracle Cloud Infrastructure Kubernetes Engine (OCI Kubernetes Engine ou OKE) para fornecer uma implantação do Wordpress altamente escalável e disponível sem a necessidade de implantar ou gerenciar um cluster do Kubernetes.
  • O MySQL Database Service fornece um banco de dados de alto desempenho para seu aplicativo WordPress sem a necessidade de provisionar ou gerenciar o banco de dados.
  • O serviço File Storage para armazenamento de persistência compartilhado (obrigatório por WordPress) que é acessível a todas as instâncias do aplicativo para torná-lo altamente disponível.

Arquitetura

Essa arquitetura de referência mostra uma implantação WordPress altamente disponível e escalável em um cluster do OKE. Esta implantação usa o serviço File Storage como armazenamento persistente e o MySQL Database Service como banco de dados. Um Balanceador de Carga com um IP externo é alocado para fornecer acesso ao aplicativo WordPress.

O diagrama a seguir ilustra essa arquitetura de referência.

Veja a seguir a descrição da oci-mysql-oke-wordpress-arch.png
Descrição da ilustração oci-mysql-oke-wordpress-arch.png

oci-mysql-oke-wordpress-arch-oracle.zip

A seção a seguir descreve esta arquitetura de referência:

No cluster do OKE, você pode selecionar o número de pods de aplicativos WordPress para a implantação. Cada pod requer acesso a armazenamento compartilhado persistente. Para fornecer o armazenamento, um recurso de classe de armazenamento que é mapeado para um compartilhamento NFS no File Storage é criado no cluster. Um recurso de volume persistente torna o armazenamento oferecido pela classe de armazenamento consumível por recursos dentro do cluster. Um recurso de reivindicação de volume persistente (PVC) é criado para indicar que os pods desejam utilizar o armazenamento. A PVC é mapeada nos pods do aplicativo WordPress para acessar o armazenamento.

O banco de dados do aplicativo WordPress usa o MySQL Database Service. A instância do MySQL Database Service é criada e gerenciada no cluster do OKE como um recurso personalizado definido com o OCI Service Operator for Kubernetes (OSOK).

O MySQL Database Service é implantado com Alta Disponibilidade (HA) usando três instâncias do MySQL Database Service implantadas em diferentes domínios de disponibilidade ou domínios de falha. O aplicativo WordPress se conecta a um único ponto final para ler e gravar no banco de dados. Em caso de falha, o sistema de banco de dados fará failover automaticamente para uma instância secundária sem reconfiguração do aplicativo WordPress.

Um Balanceador de Carga é criado e gerenciado no cluster do OKE como um recurso de serviço com o tipo LoadBalancer.

A arquitetura tem os seguintes componentes:

  • Região

    Região do Oracle Cloud Infrastructure é uma área geográfica localizada que contém um ou mais data centers, denominada domínios de disponibilidade. As regiões são independentes de outras regiões, e grandes distâncias podem separá-las (entre países ou até mesmo continentes).

  • Domínios de disponibilidade

    Domínios de disponibilidade são data centers stand-alone e independentes dentro de uma região. Os recursos físicos de cada domínio de disponibilidade são isolados dos recursos de outros domínios de disponibilidade, o que oferece tolerância a falhas. Os domínios de disponibilidade não compartilham infraestrutura como energia ou refrigeração ou a rede interna do domínio de disponibilidade. Portanto, uma falha em um domínio de disponibilidade não deve afetar os outros domínios de disponibilidade na região.

  • Domínios de falha

    Um domínio de falha é um agrupamento de hardware e infraestrutura dentro de um domínio de disponibilidade. Cada domínio de disponibilidade tem três domínios de falha com energia e hardware independentes. Quando você distribui recursos entre vários domínios de falha, seus aplicativos podem tolerar falha no servidor físico, manutenção do sistema e falhas de energia dentro de um domínio de falha.

  • Rede virtual na nuvem (VCN) e sub-redes

    Uma VCN é uma rede personalizável definida por software que você configura em uma região do Oracle Cloud Infrastructure. Como as redes tradicionais de data center, as VCNs oferecem controle sobre seu ambiente de rede. Uma VCN pode ter vários blocos CIDR não sobrepostos que você pode alterar após a criação da VCN. Você pode segmentar uma VCN em sub-redes, com escopo definido para uma região ou para um domínio de disponibilidade. Cada sub-rede consiste em um intervalo contíguo de endereços que não se sobrepõem a outras sub-redes da VCN. Você pode alterar o tamanho de uma sub-rede após a criação. Uma sub-rede pode ser pública ou privada.

  • Kubernetes Engine

    O Oracle Cloud Infrastructure Kubernetes Engine (OCI Kubernetes Engine ou OKE) é um serviço totalmente gerenciado, escalável e altamente disponível que você pode usar para implantar seus aplicativos em contêineres na nuvem. Você especifica os recursos de computação necessários, e o serviço Kubernetes Engine os provisiona no Oracle Cloud Infrastructure em uma tenancy existente. O OKE usa o Kubernetes para automatizar a implantação, o dimensionamento e o gerenciamento de aplicativos em contêineres entre clusters de hosts.

  • Oracle MySQL Database Service

    O Oracle MySQL Database Service é um serviço de banco de dados da Oracle Cloud Infrastructure (OCI) totalmente gerenciado que permite aos desenvolvedores desenvolver e implementar rapidamente aplicativos seguros e nativos na nuvem. Otimizado e disponível exclusivamente na OCI, o Oracle MySQL Database Service é 100% construído, gerenciado e suportado pelas equipes de engenharia da OCI e da MySQL.

    O Oracle MySQL Database Service tem um mecanismo de análise integrado de alto desempenho (HeatWave) para executar análises sofisticadas em tempo real diretamente em um banco de dados MySQL operacional.

  • Armazenamento de arquivos

    O serviço Oracle Cloud Infrastructure File Storage fornece um sistema de arquivos de rede durável, escalável e seguro e de nível empresarial. Você pode se conectar a um sistema de arquivos do serviço File Storage de qualquer instância bare metal, de máquina virtual ou de contêiner em uma VCN. Você também pode acessar um sistema de arquivos de fora da VCN usando o Oracle Cloud Infrastructure FastConnect e a IPSec VPN.

  • WordPress sistema de gerenciamento de conteúdo (CMS)

    WordPress O CMS permite que você crie um site de blog totalmente funcional ou um site de uso geral.

  • Gateway de conversão de endereço de rede (NAT)

    Um gateway NAT permite que recursos privados em uma VCN acessem hosts na internet, sem expor esses recursos a conexões de internet de entrada.

  • Gateway de serviço

    O gateway de serviço fornece acesso de uma VCN a outros serviços, como o Oracle Cloud Infrastructure Object Storage. O tráfego da VCN para o serviço Oracle percorre a malha da rede Oracle e não passa pela internet.

  • Registro

    O Oracle Cloud Infrastructure Registry é um registro gerenciado pela Oracle que permite simplificar seu desenvolvimento para o workflow de produção. O registro facilita o armazenamento, o compartilhamento e o gerenciamento de artefatos de desenvolvimento, como imagens do Docker. A arquitetura altamente disponível e escalável do Oracle Cloud Infrastructure garante que você possa implantar e gerenciar seus aplicativos de forma confiável.

  • Balanceador de carga

    O serviço Oracle Cloud Infrastructure Load Balancing fornece distribuição automatizada de tráfego de um único ponto de entrada para vários servidores no back-end.

  • Tabela de roteamento

    As tabelas de roteamento virtual contêm regras para rotear o tráfego de sub-redes para destinos fora de uma VCN, geralmente por meio de gateways.

  • Lista de segurança

    Para cada sub-rede, você pode criar regras de segurança que especifiquem a origem, o destino e o tipo de tráfego que deve ser permitido dentro e fora da sub-rede.

Recomendações

Use as recomendações a seguir como ponto de partida. Seus requisitos podem ser diferentes da arquitetura descrita aqui.
  • VCN

    Ao criar uma VCN, determine o número de blocos CIDR necessários e o tamanho de cada bloco com base no número de recursos que você planeja anexar a sub-redes na VCN. Use blocos CIDR que estejam dentro do espaço de endereço IP privado padrão.

    Selecione blocos CIDR que não se sobreponham a nenhuma outra rede (no Oracle Cloud Infrastructure, em seu data center local ou em outro provedor de nuvem) para a qual você pretende configurar conexões privadas.

    Depois de criar uma VCN, você poderá alterar, adicionar e remover seus blocos CIDR.

    Ao projetar as sub-redes, considere seus requisitos de fluxo de tráfego e segurança. Anexe todos os recursos dentro de uma camada ou atribuição específica à mesma sub-rede, que pode servir como um limite de segurança.

  • Largura de banda do balanceador de carga

    Ao criar o balanceador de carga, você pode selecionar uma forma predefinida que forneça uma largura de banda fixa ou especificar uma forma personalizada (flexível), na qual você define uma faixa de largura de banda e permite que o serviço dimensione a largura de banda automaticamente com base nos padrões de tráfego. Com qualquer uma das abordagens, você pode alterar a forma a qualquer momento após criar o balanceador de carga.

  • Listas de segurança

    Use listas de segurança para definir regras de entrada e saída que se aplicam a toda a sub-rede.

  • Oracle MySQL Database Service

    Nesta arquitetura, o WordPress CMS armazena os dados relacionais no Oracle MySQL Database Service. Recomendamos o uso da versão mais recente.

Considerações

Ao implementar o WordPress no Oracle Cloud, considere o seguinte para escalabilidade e disponibilidade:

  • Disponibilidade do aplicativo

    O aplicativo WordPress é implantado com vários pods na implantação para fornecer alta disponibilidade.

  • Disponibilidade e escalabilidade do My SQL Database Service

    O MySQL Database Service exibido na arquitetura de alta disponibilidade usa a opção incorporada MySQL High Availability, que cria três instâncias e as coloca em diferentes domínios de falha.

Implante

Essa arquitetura de referência pode ser implantada e gerenciada no cluster do OKE sem usar a console ou a CLI do OCI e automatizada com um gráfico Helm. O gráfico de amostra do Helm para essa arquitetura de referência demonstra como inicializar uma implantação WordPress usando um Sistema MySQL Database como banco de dados em um cluster do Kubernetes implantado no OCI para HA ou não HA. Você pode fazer download do código em GitHub e personalizá-lo para atender às suas necessidades específicas.

  1. Vá para GitHub - HA ou GitHub - non-HA.
  2. Clone ou faça download do repositório para seu computador local.
  3. Siga as instruções no documento README.

Agradecimentos

  • Autors: Chiping Hwang, Hassan Ajan
  • Contribuintes: Anupama Pundpal