Despliegue Magento eCommerce en Oracle Linux con MySQL Database Service

Puede desplegar Magento eCommerce en Oracle Linux con MySQL Database Service para proporcionar a los usuarios y empresas una arquitectura escalable y sólida, esfuerzos de implantación y mantenimiento bajos, y acceso a una gran base de conocimientos basada en la comunidad.

Magento es una plataforma de comercio electrónico de código abierto escrita en PHP que puede utilizar otros marcos PHP, como Laminas y Symfony. Su código fuente se distribuye en Open Software License (OSL) v3.0. Magento emplea el sistema de gestión de bases de datos relacionales MySQL, el lenguaje de programación PHP y elementos del marco Zend. Aplica las convenciones de programación orientada a objetos y arquitectura modelo-vista-controlador.

Arquitectura

Puede desplegar Magento en una configuración de nodo único o como parte de una configuración de varios nodos con un alto nivel de disponibilidad. Esta arquitectura de referencia incluye la automatización de Terraform, que es compatible con ambas configuraciones.

Para obtener una arquitectura de alto nivel de producción, consulte el siguiente diagrama, que ilustra un escenario de varios nodos.

Descripción de magento-mds-multi.png a continuación
Descripción de la ilustración magento-mds-multi.png

magento-mds-multi-oracle.zip

El diagrama predefinido ilustra un entorno de aplicación de alta disponibilidad simplificado en OCI, con un enfoque en dos instancias de máquina virtual detrás de un equilibrador de carga. Estas instancias existen en dos dominios de errores distintos de un dominio de disponibilidad. Esta arquitectura utiliza el servicio OCI File Storage; Magento se instala en un sistema de archivos de red (NFS) compartido. El sistema de archivos existe en una subred privada dedicada con un grupo de seguridad de red (NSG), que permite el acceso al destino de montaje desde todas las instancias.

El siguiente diagrama ilustra una arquitectura de nodo único simple. Consiste en un despliegue ligero, que podría ser adecuado para fines de aprendizaje o servir como prueba de concepto.

A continuación se muestra la descripción de magento-mds-single.png
Descripción de la ilustración magento-mds-single.png

magento-mds-single-oracle.zip

Las arquitecturas de varios nodos contienen los siguientes componentes de OCI:
  • Políticas

    Una política de Oracle Cloud Infrastructure Identity and Access Management especifica quién puede acceder a qué recursos y cómo. El acceso se otorga en el nivel de grupo y compartimento, lo que significa que puede escribir una política que proporcione a un grupo un tipo específico de acceso dentro de un compartimento específico o al arrendamiento.

  • compartimentos

    Los compartimentos son particiones lógicas entre regiones dentro de un arrendamiento de Oracle Cloud Infrastructure. Utilice compartimentos para organizar los recursos en Oracle Cloud, controlar el acceso a los recursos y definir las cuotas de uso. Para controlar el acceso a los recursos de un compartimento determinado, debe definir políticas que especifiquen quién puede acceder a los recursos y qué acciones pueden realizar.

  • Red virtual en la nube (VCN)

    Uno de sus primeros pasos en OCI es configurar una red virtual en la nube (VCN) para sus recursos en la nube. Una VCN es una red definida por software que se configura en una región de OCI. Las VCN se pueden segmentar en subredes, que pueden ser específicas de una región o de un dominio de disponibilidad. Tanto las subredes específicas de la región como las específicas del dominio de disponibilidad pueden coexistir en la misma VCN. Una subred puede ser pública o privada.

  • Dominios de disponibilidad

    Los dominios de disponibilidad son centros de datos independientes dentro de una región. Los recursos físicos de cada dominio de disponibilidad están aislados de los recursos de los otros dominios de disponibilidad, que ofrecen tolerancia a los fallos. Los dominios de disponibilidad no comparten una infraestructura como la alimentación o la refrigeración, ni la red interna del dominio de disponibilidad. Por lo tanto, es poco probable que un fallo en un dominio de disponibilidad afecte a los otros dominios de disponibilidad de la región.

  • equilibrador de carga

    El servicio Oracle Cloud Infrastructure Load Balancing proporciona una distribución automatizada de tráfico desde un único punto de entrada a varios servidores del backend.

  • Instancia informática

    Oracle Cloud Infrastructure Compute permite aprovisionar y gestionar hosts de recursos informáticos. Puede iniciar instancias informáticas con unidades que cumplan los requisitos de recursos (CPU, memoria, ancho de banda de red y almacenamiento). Después de crear una instancia informática, puede accederla de forma segura, reiniciarla, asociar y desasociar volúmenes y terminarla cuando no lo necesite.

  • Gateway de internet

    El gateway de Internet permite el tráfico entre las subredes públicas de una VCN y la red pública de Internet.

  • Gateway de enrutamiento dinámico (DRG)

    El DRG es un enrutador virtual que proporciona una ruta para el tráfico de red privada entre las redes locales y las VCN, y también se puede utilizar para enrutar el tráfico entre las VCN de la misma región o entre regiones.

  • Almacenamiento de archivos

    El servicio Oracle Cloud Infrastructure File Storage proporciona un sistema de archivos de red duradero, escalable, seguro y empresarial. Puede conectarse a un sistema de archivos del servicio File Storage desde cualquier instancia con hardware dedicado, de máquina virtual o de contenedor en una VCN. También puede acceder a un sistema de archivos desde fuera de la VCN mediante Oracle Cloud Infrastructure FastConnect y la VPN con IPSec.

  • Grupo de seguridad de red (NSG)

    Los NSG actúan como firewalls virtuales para sus recursos en la nube. Con el modelo de seguridad de cero confianza de Oracle Cloud Infrastructure, se deniega todo el tráfico y puede controlar el tráfico de red dentro de una VCN. Un NSG está formado por un conjunto de reglas de seguridad de entrada y salida que se aplican solo a un conjunto especificado de VNIC en una única VCN.

Recomendaciones

Utilice las siguientes recomendaciones como punto de partida para desplegar Magento eCommerce en Oracle Linux con MySQL Database Service. Sus requisitos pueden diferir de la arquitectura descrita aquí.
  • VCN

    Al crear una VCN, determine el número de bloques de CIDR necesarios y el tamaño de cada bloque en función del número de recursos que planea asociar a las subredes de la VCN. Utilice bloques CIDR que se encuentren dentro del espacio de direcciones IP privadas estándar.

    Seleccione un rango de direcciones que no se solape con su red local o con cualquier otra red, para que pueda configurar una conexión entre la VCN y la red local, si es necesario.

    Al diseñar las subredes, tenga en cuenta el flujo de tráfico y los requisitos de seguridad. Conecte todos los recursos de un nivel o rol específico a la misma subred, que puede servir como límite de seguridad.

  • Seguridad

    Utilice políticas para restringir quién puede acceder a los recursos de OCI que tiene su compañía y cómo puede acceder a ellos. Utilice Vault para obtener protección adicional de sus claves, certificados y secretos.

    El servicio de red ofrece dos funciones de firewall virtual que utilizan reglas de seguridad para controlar el tráfico en el nivel de paquete: listas de seguridad y grupos de seguridad de red (NSG). Un NSG está formado por un conjunto de reglas de seguridad de entrada y salida que se aplican solo a un conjunto de VNIC que se pueden elegir en una única VCN. Por ejemplo, puede seleccionar todas las instancias informáticas que actúan como servidores web en el nivel web de una aplicación de varios niveles en la VCN.

    Las reglas de seguridad NSG son las mismas que las reglas de listas de seguridad. Sin embargo, para el origen o el destino de una regla de seguridad de un NSG, puede especificar un NSG en lugar de un bloque de CIDR. Por lo tanto, puede escribir con facilidad reglas de seguridad para controlar el tráfico entre dos grupos de seguridad de red en la misma VCN o el tráfico dentro de un solo grupo de seguridad de red. Al crear un sistema de base de datos, puede especificar uno o más NSG. También puede actualizar un sistema de base de datos existente para usar uno o más grupos de servicios de red.

  • Recursos informáticos

    Seleccione unidades con la combinación adecuada de OCPU y memoria y aprovisione el almacenamiento local de bloques y/o NVMe según sea necesario para cada instancia. Considere el uso de las unidades flexibles disponibles, lo que proporciona más flexibilidad a la hora de combinar las OCPU y la memoria.

  • Base de Datos

    Seleccione la unidad de Oracle MySQL Database Service en función de la carga de trabajo planificada. Active la alta disponibilidad de MySQL para tres nodos redundantes.

Consideraciones

Al desplegar Magento eCommerce en Oracle Linux con MySQL Database Service, tenga en cuenta estos factores:

  • Disponibilidad y escalabilidad de las aplicaciones

    En este ejemplo, en la arquitectura de alta disponibilidad, se muestran dos instancias en distintos dominios de errores dentro del mismo dominio de disponibilidad. Podría optar por colocar las instancias en diferentes dominios de disponibilidad (en regiones donde estén disponibles), para lograr una tolerancia ante fallos aún mayor. Un enfoque alternativo que representa una adaptación más dinámica a necesidades de rendimiento más exigentes y diversas es el uso de un pool de instancias y la ampliación automática.

    Los pools de instancias permiten aprovisionar y crear varias instancias de Compute basadas en la misma configuración en la misma región.

    La escala automática le permite ajustar automáticamente el número de instancias informáticas en un grupo de instancias en función de las métricas de rendimiento, como la utilización de la CPU. La ampliación automática le ayuda a proporcionar un rendimiento constante para los usuarios durante los períodos de alta demanda y le ayuda a reducir sus costos durante los períodos de baja demanda.

  • Disponibilidad y escalabilidad de la base de datos

    El sistema MySQL Database que se muestra en la arquitectura de alta disponibilidad utiliza la opción incorporada MySQL High Availability, que crea tres instancias y las coloca en diferentes dominios de errores.

  • copias de seguridad de bases de datos
    MySQL Database Service soporta dos tipos de copias de seguridad: copia de seguridad completa de todos los datos incluidos en el sistema de base de datos y copia de seguridad incremental de solo los datos que se han agregado o cambiado desde la última copia de seguridad completa. Las copias de seguridad se ejecutan de las siguientes formas:
    • Manual: una acción en la consola o una solicitud realizada a través de la API inicia la copia de seguridad. Las copias de seguridad manuales se pueden conservar durante un mínimo de un día y un máximo de 365 días.
    • Automático: las copias de seguridad programadas automáticamente se ejecutan sin ninguna interacción necesaria a la hora de elegir el usuario. Las copias de seguridad automáticas se conservan entre uno y 35 días. El valor de retención por defecto es siete días. Cuando se define, no puede editar el período de retención de una copia de seguridad automática
  • Copias de seguridad de recursos informáticos

    El servicio Oracle Cloud Infrastructure Block Volumes permite realizar copias de seguridad puntuales de los datos en un volumen en bloque. A continuación, puede restaurar estas copias de seguridad en volúmenes nuevos de forma inmediata o posterior.

    También puede utilizar el servicio para realizar una copia de seguridad puntual y coherente frente a bloqueos de un volumen de inicio sin interrupción ni tiempo de inactividad de la aplicación. Las mismas funciones que las funciones de copia de seguridad de volúmenes en bloque son las mismas.

  • Políticas de Seguridad

    Utilice políticas para restringir quién puede acceder a los recursos de OCI que tiene su compañía y cómo.

  • Seguridad de red

    El servicio de red ofrece dos funciones de firewall virtual que utilizan reglas de seguridad para controlar el tráfico en el nivel de paquete: listas de seguridad y grupos de seguridad de red (NSG). Un NSG está formado por un conjunto de reglas de seguridad de entrada y salida que se aplican solo a un conjunto de VNIC que se pueden elegir en una única VCN. Por ejemplo, puede seleccionar todas las instancias informáticas que actúan como servidores web en el nivel web de una aplicación de varios niveles en la VCN.

    Las reglas de seguridad NSG son las mismas que las reglas de listas de seguridad. Sin embargo, para el origen o el destino de una regla de seguridad de un NSG, puede especificar un NSG en lugar de un bloque de CIDR. Por lo tanto, puede escribir con facilidad reglas de seguridad para controlar el tráfico entre dos grupos de seguridad de red en la misma VCN o el tráfico dentro de un solo grupo de seguridad de red. Al crear un sistema de base de datos, puede especificar uno o más NSG. También puede actualizar un sistema de base de datos existente para usar uno o más grupos de servicios de red.

    En estos ejemplos, las instancias se muestran como existentes en una subred pública. Considere colocarlos en una subred privada para mayor seguridad. En ese caso, se necesita un bastión para acceder a las instancias.

Despliegue

El código de Terraform para esta arquitectura de referencia está disponible en GitHub. Puede extraer el código de Oracle Cloud Infrastructure Resource Manager con un solo clic, crear la pila y desplegarla, o bien descargar el código de GitHub en la computadora, personalizar el código y desplegar la arquitectura mediante la CLI de Terraform.

  • Realice el despliegue con la pila de ejemplo en Oracle Cloud Infrastructure Resource Manager:
    1. Haga clic en Despliegue en Oracle Cloud.

      Si aún no ha iniciado sesión, introduzca las credenciales de usuario y arrendamiento.

    2. Seleccione la región en la que desea desplegar la pila.
    3. Siga las indicaciones e instrucciones en pantalla para crear la pila.
    4. Después de crear la pila, haga clic en Acciones de Terraform y seleccione Plan.
    5. Espere a que finalice el trabajo y revise el plan.

      Para realizar cambios, vuelva a la página Detalles de pila, haga clic en Editar pila y realice los cambios necesarios. A continuación, vuelva a ejecutar la acción Plan.

    6. Si no es necesario realizar más cambios, vuelva a la página Detalles de pila, haga clic en Acciones de Terraform y seleccione Aplicar.
  • Realice el despliegue con el código de Terraform en GitHub:
    1. Vaya a GitHub.
    2. Clone o descargue el repositorio en su computadora local.
    3. Siga las instrucciones del documento README.

Agradecimientos

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