Despliegue de una aplicación web de alta disponibilidad

Una pila de aplicaciones web suele incluir un equilibrador de carga, varios servidores web y un almacén de datos. Para obtener una alta disponibilidad, necesita una topología que incluya recursos redundantes en todos los niveles de la pila.

Arquitectura

Esta arquitectura de referencia muestra una aplicación web de alta disponibilidad que se ejecuta en Oracle Cloud con una base de datos de Oracle Autonomous Transaction Processing.

Un equilibrador de carga público recibe solicitudes de cliente de Internet y direcciona las solicitudes a un pool de servidores web que se distribuyen en varios dominios de errores. El nivel de datos consta de una base de datos autónoma con un punto final privado.

El siguiente diagrama ilustra esta arquitectura de referencia.

Descripción de ha-webapp-oci.png a continuación
Descripción de la ilustración ha-webapp-oci.png

ha-webapp-oci-atp-oracle.zip

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 de otras regiones y las grandes distancias pueden separarlas (entre países e, incluso, continentes).

    Todos los recursos de esta arquitectura se despliegan en una única región.

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

    Los recursos de esta arquitectura se despliegan en un único dominio de disponibilidad.

  • Dominios de errores

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

    La topología que se muestra en esta arquitectura abarca varios dominios de errores.

  • Redes y subredes virtuales en la nube

    Una VCN es una red personalizada y definida por software que se configura en una región de Oracle Cloud Infrastructure. Al igual que las redes del centro de datos tradicionales, las VCN le proporcionan un control completo sobre su entorno de red. Una VCN puede tener varios bloques CIDR no superpuestos que puede cambiar después de crear la VCN. Puede segmentar una VCN en subredes, que 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.

    En esta arquitectura, los servidores web están asociados a una subred pública y la base de datos utiliza una subred privada.

  • 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 en el backend.

  • servidores web

    El servicio Oracle Cloud Infrastructure Compute permite aprovisionar y gestionar hosts de recursos informáticos en la nube. Puede iniciar instancias informáticas con unidades que cumplan los requisitos de recursos para 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 ya no lo necesite.

    Los servidores web de esta arquitectura se ejecutan en máquinas virtuales de recursos informáticos.

  • Base de datos de procesamiento de transacciones autónomas

    Oracle Autonomous Transaction Processing es un servicio de base de datos que se ha optimizado para las cargas de trabajo de procesamiento de transacciones y que es independiente y autosegura. No es necesario configurar ni gestionar ningún hardware, ni instalar ningún software. Oracle Cloud Infrastructure gestiona la creación de la base de datos, así como la realización de copias de seguridad, la aplicación de parches, la actualización y el ajuste de la base de datos.

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

    En esta arquitectura, se utilizan NSG independientes para el equilibrador de carga, los servidores web y la base de datos.

  • Tablas de rutas

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

  • 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 traducción de direcciones de red (NAT)

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

Recomendaciones

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

  • Unidades de computación para los servidores web

    Al desplegar la arquitectura, seleccione una unidad adecuada para las instancias informáticas que alojan los servidores web, según los requisitos de memoria y procesamiento de la aplicación.

  • Diseño de Red

    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 bloques CIDR que no se superpongan con ninguna otra red (en Oracle Cloud Infrastructure, su centro de datos local u otro proveedor en la nube) a la que desea configurar conexiones privadas.

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

    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.

    Utilice subredes regionales.

Consideraciones

Al diseñar una pila de aplicaciones de alta disponibilidad en la nube, tenga en cuenta los siguientes factores:

  • Escalabilidad
    • Base de Datos

      Puede ampliar o reducir el número de núcleos de CPU de la base de datos en cualquier momento. La función de ampliación automática de bases de datos autónomas permite que la base de datos utilice hasta tres veces el número base actual de núcleos de CPU en cualquier momento. A medida que la demanda aumenta, la escala automática aumenta automáticamente el número de núcleos en uso. Las bases de datos autónomas permiten ampliar la capacidad de almacenamiento en cualquier momento sin que ello afecte a la disponibilidad o al rendimiento.

    • Aplicación

      Puede ampliar la aplicación mediante el uso del grupo de instancias y las funciones de ampliación automática.

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

      Utilice la escala automática para 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 a reducir sus costos cuando la demanda es baja.

  • Disponibilidad
    • Base de Datos

      El diagrama de arquitectura muestra una única base de datos de Oracle Autonomous Transaction Processing. Al desplegar la arquitectura, puede activar Oracle Autonomous Data Guard para aprovisionar y gestionar una base de datos en espera.

    • Aplicación

      Los dominios de errores proporcionan resiliencia dentro de un dominio de disponibilidad. Cuando sea posible, considere la posibilidad de distribuir sus recursos en varios dominios de disponibilidad o en varias regiones.

  • Seguridad
    • Control de acceso

      Utilice políticas para restringir quién puede acceder a sus recursos en la nube y las acciones que puede realizar.

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

Desplegar

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. También puede 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 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. Revise y acepte las condiciones.
    3. Seleccione la región en la que desea desplegar la pila.
    4. Siga las indicaciones e instrucciones en pantalla para crear la pila.
    5. Después de crear la pila, haga clic en Acciones de Terraform y seleccione Plan.
    6. 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.

    7. 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 la CLI de Terraform:
    1. Vaya a GitHub.
    2. Descargue o clone el código en su equipo local.
    3. Siga las instrucciones del archivo README (Léame).

Log de Cambios

Este log solo muestra los cambios significativos: