Implantar o Magento eCommerce no Oracle Linux com o MySQL Database Service

Você pode implantar o Magento eCommerce no Oracle Linux com o MySQL Database Service para fornecer aos usuários e empresas uma arquitetura escalável e robusta, baixos esforços de implementação e manutenção e acesso a uma ampla base de conhecimento liderada pela comunidade.

Magento é uma plataforma de e-commerce de código aberto escrita em PHP que pode usar outras estruturas PHP, como Laminas e Symfony. Seu código-fonte é distribuído com a Licença de Software Aberto (OSL) v3.0. Magento emprega o sistema de gerenciamento de banco de dados relacional MySQL, a linguagem de programação PHP e elementos do Zend Framework. Ele aplica as convenções da programação orientada a objetos e da arquitetura do controlador de visualizações de modelos.

Arquitetura

Você pode implantar o Magento em uma configuração de nó único ou como parte de uma configuração de vários nós altamente disponível. Essa arquitetura de referência inclui a automação do Terraform, que é compatível com ambas as configurações.

Para obter uma arquitetura de nível de produção altamente disponível, consulte o diagrama a seguir, que ilustra um cenário de vários nós.

Veja a seguir a descrição da ilustração magento-mds-multi.png
Descrição da ilustração magento-mds-multi.png

magento-mds-multi-oracle.zip

O diagrama de pré-implantação ilustra um ambiente de aplicativo de alta disponibilidade simplificado no OCI, com foco em duas instâncias de máquina virtual por trás de um balanceador de carga. Essas instâncias existem em dois domínios de falha distintos dentro de um domínio de disponibilidade. Essa arquitetura faz uso do serviço OCI File Storage; o Magento é instalado em um NFS (Network File System) compartilhado. O sistema de arquivos existe em uma sub-rede privada dedicada com um NSG (Network Security Group) que permite o acesso ao ponto de acesso NFS de todas as instâncias.

O diagrama a seguir ilustra uma arquitetura de nó único simples. Ele consiste em uma implantação leve, que pode ser adequada para fins de aprendizagem ou servir como prova de conceito.

Veja a seguir a descrição da ilustração magento-mds-single.png
Descrição da ilustração magento-mds-single.png

magento-mds-single-oracle.zip

As arquiteturas com vários nós contêm os seguintes componentes do OCI:
  • Políticas

    Uma política do Oracle Cloud Infrastructure Identity and Access Management especifica quem pode acessar quais recursos e como. O acesso é concedido no nível de grupo e compartimento, o que significa que você pode gravar uma política que dá a um grupo um tipo específico de acesso em um compartimento específico ou à tenancy.

  • Compartimentos

    Os compartimentos são partições lógicas entre regiões dentro de uma tenancy do Oracle Cloud Infrastructure. Use compartimentos para organizar seus recursos no Oracle Cloud, controlar o acesso aos recursos e definir cotas de uso. Para controlar o acesso aos recursos em um determinado compartimento, você define políticas que especificam quem pode acessar os recursos e quais ações eles podem executar.

  • Rede virtual na nuvem (VCN)

    Uma de suas primeiras etapas no OCI é configurar uma rede virtual na nuvem (VCN) para seus recursos de nuvem. VCN é uma rede definida por software configurada em uma região do OCI. As VCNs podem ser segmentadas em sub-redes, que podem ser específicas de uma região ou de um domínio de disponibilidade. Tanto sub-redes específicas da região quanto específicas do domínio de disponibilidade podem coexistir na mesma VCN. Uma sub-rede pode ser pública ou privada.

  • Domínios de disponibilidade

    Os domínios de disponibilidade são data centers independentes e independentes dentro de uma região. Os recursos físicos em cada domínio de disponibilidade são isolados dos recursos dos outros domínios de disponibilidade, que fornecem tolerância a falhas. Os domínios de disponibilidade não compartilham infraestrutura, como energia ou resfriamento, ou rede interna. Portanto, é improvável que uma falha em um domínio de disponibilidade afete os outros domínios de disponibilidade da região.

  • 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.

  • Instâncias de computação

    O Oracle Cloud Infrastructure Compute permite provisionar e gerenciar hosts de computação. Você pode iniciar instâncias de computação com formas que atendam aos seus requisitos de recursos (CPU, memória, largura de banda da rede e armazenamento). Após criar uma instância de computação, você pode acessá-la de forma segura, reiniciá-la, anexar e desconectar volumes e encerrá-la quando não precisar dela.

  • Gateway de Internet

    O gateway de internet permite tráfego entre as sub-redes públicas em uma VCN e a internet pública.

  • Gateway de roteamento dinâmico (DRG)

    O DRG é um roteador virtual que fornece um caminho para o tráfego de rede privada entre redes locais e VCNs e também pode ser usado para rotear o tráfego entre VCNs na mesma região ou entre regiões.

  • 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 VPN IPSec.

  • Grupo de segurança de rede (NSG)

    Os NSGs atuam como firewalls virtuais para seus recursos de nuvem. Com o modelo de segurança de confiança zero do Oracle Cloud Infrastructure, todo o tráfego é negado, e você pode controlar o tráfego da rede dentro de uma VCN. Um NSG consiste em um conjunto de regras de segurança de entrada e saída que se aplicam a apenas um conjunto especificado de VNICs em uma única VCN.

Recomendações

Use as recomendações a seguir como ponto de partida para implantar o Magento eCommerce no Oracle Linux com o MySQL Database Service. 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 estão dentro do espaço de endereço IP privado padrão.

    Selecione uma faixa de endereços que não se sobreponha à sua rede local ou a qualquer outra rede, para que você possa configurar uma conexão entre a VCN e sua rede local, se necessário.

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

  • Segurança

    Use políticas para restringir quem pode acessar os recursos do OCI que sua empresa tem e como eles podem acessá-los. Use o Vault para proteção adicional de suas chaves, certificados e segredos.

    O serviço Networking oferece duas funcionalidades de firewall virtual que usam regras de segurança para controlar o tráfego no nível do pacote: listas de segurança e grupos de segurança de rede (NSG). Um NSG consiste em um conjunto de regras de segurança de entrada e saída que se aplicam somente a um conjunto de VNICs de sua escolha em uma única VCN. Por exemplo, você pode escolher todas as instâncias de computação que agem como servidores web na camada web de um aplicativo de várias camadas em sua VCN.

    As regras de segurança NSG funcionam da mesma forma que as regras de lista de segurança. No entanto, para a origem ou o destino de uma regra de segurança NSG, você pode especificar um NSG em vez de um bloco CIDR. Portanto, você pode criar facilmente regras de segurança para controlar o tráfego entre dois NSGs na mesma VCN ou o tráfego em um único NSG. Ao criar um sistema de banco de dados, você pode especificar um ou mais NSGs. Você também pode atualizar um sistema de banco de dados existente para usar um ou mais NSGs.

  • Calcular

    Separe as formas com a combinação apropriada de OCPUs e memória e provisione o armazenamento em blocos e/ou no NVMe local de acordo com a necessidade, para cada instância. Considere o uso de formas flexíveis disponíveis, que oferecem mais flexibilidade na combinação de OCPUs e memória.

  • Banco de Dados

    Escolha sua forma do Oracle MySQL Database Service com base na carga de trabalho planejada. Ative a Alta Disponibilidade do MySQL para três nós redundantes.

Considerações

Ao implantar o Magento eCommerce no Oracle Linux com o MySQL Database Service, considere estes fatores:

  • Disponibilidade e escalabilidade do aplicativo

    Neste exemplo, na arquitetura altamente disponível, mostramos duas instâncias em domínios de falha diferentes dentro do mesmo domínio de disponibilidade. Um poderia optar por colocar as instâncias em diferentes domínios de disponibilidade (em regiões onde disponível), para uma tolerância a falhas ainda mais alta. Uma abordagem alternativa que representa uma adaptação mais dinâmica a necessidades de desempenho mais exigentes e variáveis é o uso de um pool de instâncias e dimensionamento automático.

    Os pools de instâncias permitem provisionar e criar várias instâncias do serviço Compute com base na mesma configuração dentro da mesma região.

    O dimensionamento automático permite ajustar automaticamente o número de instâncias do serviço Compute em um pool de instâncias com base nas métricas de desempenho, como utilização da CPU. O dimensionamento automático ajuda a fornecer um desempenho consistente para usuários durante períodos de alta demanda e ajuda a reduzir seus custos durante períodos de demanda baixa.

  • Disponibilidade e escalabilidade do banco de dados

    O Sistema MySQL Database exibido na arquitetura altamente disponível faz uso da opção MySQL High Availability incorporada, que cria três instâncias e as coloca em domínios de falha diferentes.

  • Backups de banco de dados
    O MySQL Database Service suporta dois tipos de backup: backup completo de todos os dados contidos no sistema de banco de dados e backup incremental de somente os dados adicionados ou alterados desde o último backup completo. Os backups são executados das seguintes maneiras:
    • Manual: Uma ação na Console ou solicitação feita por meio da API inicia o backup. Os backups manuais podem ser retidos por, no mínimo, um dia e, no máximo, 365 dias.
    • Automático: Os backups programados automaticamente são executados sem qualquer interação necessária em um momento de sua escolha. Os backups automáticos são mantidos por um período entre um e 35 dias. O valor de retenção padrão é sete dias. Quando definido, você não pode editar o período de retenção de um backup automático
  • Backups de computação

    O serviço Oracle Cloud Infrastructure Block Volumes permite fazer backups pontuais dos dados em um volume em blocos. Você poderá então restaurar esses backups para novos volumes imediatamente ou mais tarde.

    Você também pode usar o serviço para fazer um backup pontual consistente em seguida a um crash de um volume de inicialização, sem interrupção do aplicativo ou indisponibilidade. Os recursos de backup de volume de inicialização são os mesmos do volume em blocos.

  • Políticas de segurança

    Use políticas para restringir quem pode acessar quais recursos do OCI sua empresa tem e como.

  • Segurança de rede

    O serviço Networking oferece duas funcionalidades de firewall virtual que usam regras de segurança para controlar o tráfego no nível do pacote: listas de segurança e grupos de segurança de rede (NSGs). Um NSG consiste em um conjunto de regras de segurança de entrada e saída que se aplicam somente a um conjunto de VNICs de sua escolha em uma única VCN. Por exemplo, você pode escolher todas as instâncias do serviço Compute que agem como servidores web na camada web de um aplicativo multicamadas na sua VCN.

    As regras de segurança NSG funcionam da mesma forma que as regras de lista de segurança. No entanto, para a origem ou o destino de uma regra de segurança NSG, você pode especificar um NSG em vez de um bloco CIDR. Portanto, você pode criar facilmente regras de segurança para controlar o tráfego entre dois NSGs na mesma VCN ou o tráfego em um único NSG. Ao criar um sistema de banco de dados, você pode especificar um ou mais NSGs. Você também pode atualizar um sistema de banco de dados existente para usar um ou mais NSGs.

    Nesses exemplos, as instâncias são exibidas como existentes em uma sub-rede pública. Considere colocá-los em uma sub-rede privada para segurança adicional. Nesse caso, um bastion é necessário para acessar as instâncias.

Implantar

O código Terraform para esta arquitetura de referência está disponível no GitHub. Você pode obter o código no Oracle Cloud Infrastructure Resource Manager com um único clique, criar a pilha e implantá-lo ou pode fazer download do código do GitHub para o seu computador, personalizar o código e implantar a arquitetura usando a CLI do Terraform.

  • Implante usando a pilha de amostra no Oracle Cloud Infrastructure Resource Manager:
    1. Clique em Implante no Oracle Cloud

      Se você ainda não estiver conectado, informe a tenancy e as credenciais do usuário.

    2. Selecione a região na qual você deseja implantar a pilha.
    3. Siga os prompts na tela e as instruções para criar a pilha.
    4. Após criar a pilha, clique em Ações do Terraform e selecione Planejar.
    5. Aguarde a conclusão da tarefa e revise o plano.

      Para fazer qualquer alteração, retorne à página Detalhes da Pilha, clique em Editar Pilha e faça as alterações necessárias. Em seguida, execute a ação Planejar novamente.

    6. Se nenhuma outra alteração for necessária, retorne à página Detalhes da Pilha, clique em Ações do Terraform e selecione Aplicar.
  • Implante usando o código do Terraform no GitHub:
    1. Vá para GitHub.
    2. Clone ou faça download do repositório para seu computador local.
    3. Siga as instruções no documento README.

Agradecimentos

  • Autor: Lukasz Feldman
  • Colaborador: Nuno Gonçalves