Despliegue WordPress con MySQL Database Service en Oracle Cloud Infrastructure Kubernetes Engine

Aproveche las ventajas de flexibilidad y costos de alojar sus páginas web y blogs de WordPress en Oracle Cloud Infrastructure (OCI).

WordPress es uno de los sistemas de gestión de contenido (CMS) más populares utilizados para la gestión de páginas web y blogs. Haga que su despliegue de WordPress sea altamente escalable y esté disponible con los siguientes servicios de OCI:
  • Oracle Cloud Infrastructure Kubernetes Engine (OCI Kubernetes Engine u OKE) para proporcionar un despliegue de Wordpress altamente escalable y disponible sin necesidad de desplegar o gestionar un cluster de Kubernetes.
  • MySQL Database Service para proporcionar una base de datos de alto rendimiento para la aplicación WordPress sin necesidad de aprovisionar o gestionar la base de datos.
  • Servicio de almacenamiento de archivos para el almacenamiento de persistencia compartido (necesario para WordPress) al que pueden acceder todas las instancias de la aplicación para que tenga alta disponibilidad.

Arquitectura

Esta arquitectura de referencia muestra un despliegue de WordPress escalable y de alta disponibilidad en un cluster de OKE. Este despliegue utiliza el servicio File Storage como almacenamiento persistente y MySQL Database Service como base de datos. Se asigna un equilibrador de carga con una IP externa para proporcionar acceso a la aplicación WordPress.

El siguiente diagrama ilustra esta arquitectura de referencia.

A continuación se muestra la descripción de oci-mysql-oke-wordpress-arch.png
Descripción de la ilustración oci-mysql-oke-wordpress-arch.png

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

En la siguiente sección, se describe esta arquitectura de referencia:

En el cluster de OKE, puede seleccionar el número de pods de aplicación WordPress para el despliegue. Cada pod requiere acceso a almacenamiento compartido persistente. Para proporcionar el almacenamiento, se crea en el cluster un recurso de clase de almacenamiento que se asigna a un recurso compartido NFS en File Storage. A continuación, un recurso de volumen persistente hace que el almacenamiento ofrecido por la clase de almacenamiento sea consumible por los recursos del cluster. Se crea un recurso persistente-volume-claim (PVC) para indicar que los pods desean utilizar el almacenamiento. La PVC se asigna en los pods de aplicación WordPress para acceder al almacenamiento.

La base de datos de la aplicación WordPress utiliza MySQL Database Service. La instancia de MySQL Database Service se crea y gestiona desde el cluster de OKE como un recurso personalizado definido con OCI Service Operator for Kubernetes (OSOK).

MySQL Database Service se despliega con alta disponibilidad (HA) mediante el uso de tres instancias de MySQL Database Service desplegadas en distintos dominios de disponibilidad o dominios de errores. La aplicación WordPress se conecta a un único punto final para leer y escribir en la base de datos. En caso de fallo, el sistema de base de datos realizará automáticamente un failover en una instancia secundaria sin volver a configurar la aplicación WordPress.

Se crea y gestiona un equilibrador de carga desde el cluster de OKE como recurso de servicio con el tipo LoadBalancer.

La arquitectura tiene los siguientes componentes:

  • Región

    Una región de Oracle Cloud Infrastructure es un área geográfica localizada que contiene uno o más centros de datos, denominados dominios de disponibilidad. Las regiones son independientes entre sí y puede haber grandes distancias que las separen (entre países e incluso continentes).

  • 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, lo que proporciona tolerancia a fallos. Los dominios de disponibilidad no comparten infraestructura, como la alimentación o la refrigeración, ni la red interna del dominio de disponibilidad. Por lo tanto, un fallo en un dominio de disponibilidad no debería afectar a los otros dominios de disponibilidad de la región.

  • Dominios de errores

    Un dominio de errores es una agrupación de hardware e infraestructura dentro de un dominio de disponibilidad. Cada dominio de disponibilidad cuenta con tres dominios de errores con energía y hardware independientes. Al distribuir los recursos entre varios dominios de errores, las aplicaciones pueden tolerar fallos físicos del servidor, mantenimiento del sistema y fallos de energía en un dominio de errores.

  • Red y subredes virtuales en la nube (VCN)

    Una VCN es una red personalizable y definida por software que puede configurar en una región de Oracle Cloud Infrastructure. Al igual que las redes de los centros de datos tradicionales, las redes virtuales le proporcionan el control de su entorno de red. Una VCN puede tener varios bloques de CIDR no superpuestos que puede cambiar después de crear la VCN. Puede segmentar una VCN en subredes, las cuales se pueden acotar a una región o a un dominio de disponibilidad. Cada subred está formada por un rango contiguo de direcciones que no se solapan con las demás subredes de la VCN. Puede cambiar el tamaño de una subred después de la creación. Una subred puede ser pública o privada.

  • Kubernetes Engine

    Oracle Cloud Infrastructure Kubernetes Engine (OCI Kubernetes Engine u OKE) es un servicio totalmente gestionado, escalable y disponible que puede utilizar para desplegar las aplicaciones en contenedores en la nube. Especifique los recursos informáticos que necesitan sus aplicaciones y Kubernetes Engine los provisionará en Oracle Cloud Infrastructure en un arrendamiento existente. OKE utiliza Kubernetes para automatizar el despliegue, la ampliación y la gestión de aplicaciones en contenedores en clusters de hosts.

  • Oracle MySQL Database Service

    Oracle MySQL Database Service es un servicio de base de datos de Oracle Cloud Infrastructure (OCI) totalmente gestionado que permite a los desarrolladores desarrollar e implementar rápidamente aplicaciones nativas seguras en la nube. Optimizado y disponible exclusivamente en OCI, Oracle MySQL Database Service está 100 % creado, gestionado y soportado por los equipos de ingeniería de OCI y MySQL.

    Oracle MySQL Database Service cuenta con un motor de análisis integrado y de alto rendimiento (HeatWave) para ejecutar análisis sofisticados en tiempo real directamente en una base de datos MySQL operativa.

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

  • WordPress sistema de gestión de contenido (CMS)

    WordPress CMS le permite crear un sitio de blog totalmente funcional o un sitio web de uso general.

  • Gateway de traducción de direcciones de red (NAT)

    Un gateway de NAT permite que los recursos privados de una VCN accedan a hosts en Internet, sin exponer dichos recursos a conexiones de Internet entrantes.

  • Gateway de servicio

    El gateway de servicios proporciona acceso desde una VCN a otros servicios, como Oracle Cloud Infrastructure Object Storage. El tráfico de la VCN al servicio Oracle viaja por el tejido de red de Oracle y no atraviesa Internet.

  • Registro

    Oracle Cloud Infrastructure Registry es un registro gestionado por Oracle que permite simplificar el desarrollo y el flujo de trabajo de producción. El registro facilita el almacenamiento, el uso compartido y la gestión de artefactos de desarrollo, como imágenes de Docker. La arquitectura altamente disponible y escalable de Oracle Cloud Infrastructure garantiza que pueda desplegar y gestionar sus aplicaciones de forma fiable.

  • Equilibrador de carga

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

  • Tabla de rutas

    Las tablas de rutas virtuales contienen reglas para enrutar el tráfico de subredes a destinos fuera de una VCN, normalmente a través de gateways.

  • Lista de seguridad

    Para cada subred, puede crear reglas de seguridad que especifiquen el origen, el destino y el tipo de tráfico que se debe permitir dentro y fuera de la subred.

Recomendaciones

Utilice las siguientes recomendaciones como punto de partida. Sus requisitos pueden diferir de la arquitectura descrita aquí.
  • VCN

    Al crear una VCN, determine el número de bloques 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 estén dentro del espacio de direcciones IP privadas estándar.

    Seleccione bloques de CIDR que no se solapen con ninguna otra red (en Oracle Cloud Infrastructure, su centro de datos local u otro proveedor en la nube) a la que desee configurar conexiones privadas.

    Después de crear una VCN, puede cambiar, agregar y eliminar sus bloques CIDR.

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

  • Ancho de banda de equilibrador de carga

    Al crear el equilibrador de carga, puede seleccionar una unidad predefinida que proporcione un ancho de banda fijo o especificar una unidad personalizada (flexible) en la que defina un rango de ancho de banda y permita que el servicio amplíe el ancho de banda automáticamente en función de los patrones de tráfico. Con cualquiera de los enfoques, puede cambiar la unidad en cualquier momento después de crear el equilibrador de carga.

  • Listas de seguridad

    Utilice listas de seguridad para definir las reglas de entrada y salida que se aplican a toda la subred.

  • Oracle MySQL Database Service

    En esta arquitectura, WordPress CMS almacena los datos relacionales en Oracle MySQL Database Service. Recomendamos utilizar la última versión.

Consideraciones

Al desplegar WordPress en Oracle Cloud, tenga en cuenta lo siguiente en cuanto a escalabilidad y disponibilidad:

  • Disponibilidad de aplicación

    La aplicación WordPress se despliega con varios pods en el despliegue para proporcionar alta disponibilidad.

  • Disponibilidad y escalabilidad de mi servicio de base de datos SQL

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

Despliegue

Esta arquitectura de referencia se puede desplegar y gestionar desde el cluster de OKE sin utilizar la consola o la CLI de OCI y automatizada con un gráfico de Helm. El gráfico de Helm de ejemplo para esta arquitectura de referencia muestra cómo iniciar un despliegue de WordPress mediante un sistema de MySQL Database como base de datos en un cluster de Kubernetes desplegado en OCI para alta disponibilidad o sin HA. Puede descargar el código de GitHub y personalizarlo para que se adapte a sus necesidades específicas.

  1. Vaya a GitHub - HA o GitHub - non-HA.
  2. Clone o descargue el repositorio en su computadora local.
  3. Siga las instrucciones del documento README.

Agradecimientos

  • Autores: Chiping Hwang, Hassan Ajan
  • Contribuyentes: Anupama Pundpal