Despliegue de una Caché Distribuida y Altamente Disponible con Redis

Redis es un almacén de estructura de datos de código abierto y memoria que se utiliza como base de datos, caché y broker de mensajes. Admite estructuras de datos como cadenas, hashes, listas, juegos, juegos ordenados con consultas de rango, mapas de bits, HyperLogLogs, índices geoespaciales con consultas de radio y flujos.

Note:

OCI ofrece también su propio servicio Redis totalmente gestionado. Puede encontrar más información en la página del servicio OCI Cache with Redis.

Arquitectura

Esta arquitectura de referencia muestra un despliegue típico de seis nodos de un cluster de Redis en instancias de Oracle Cloud Infrastructure Compute.

El siguiente diagrama ilustra esta arquitectura de referencia.

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

Esta 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 grandes distancias pueden separarlas (entre países o incluso continentes).

  • Dominios de disponibilidad

    Los dominios de disponibilidad son centros de datos independientes e 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 energía o refrigeración, o la red de dominio de disponibilidad interna. 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.

  • Dominios de Fallos

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

  • Red virtual en la nube (VCN) y subredes

    VCN es una red personalizable definida por software que se configura en una región de Oracle Cloud Infrastructure. Al igual que sucede con las redes del centro de datos tradicional, las VCN le proporcionan un control total de 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 asignar a una región o a un dominio de disponibilidad. Cada subred consta de un rango contiguo de direcciones que no se superponen con las demás subredes de 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, todas las instancias informáticas que alojan el cluster de Redis están asociadas a una sola subred regional.

  • Listas de seguridad

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

    Esta arquitectura agrega reglas de entrada para los puertos TCP 16379 y 6379. El puerto 6379 sirve a los clientes de Redis y el bus de cluster de Redis utiliza el puerto 16379.

Recomendaciones

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

  • Formas informáticas

    Esta arquitectura utiliza una imagen del sistema operativo Oracle Linux 7.6 con una forma VM.Standard2.2. Si su aplicación necesita más memoria, núcleos o ancho de banda de red, puede elegir una forma diferente.

  • VCN

    Al crear un 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 tiene previsto asociar a subredes en VCN. Utilice bloques CIDR que estén dentro del espacio de direcciones IP privadas estándar.

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

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

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

    Utilice subredes regionales.

Consideraciones

  • Escalabilidad

    El número mínimo de nodos necesarios para garantizar la disponibilidad de un cluster de Redis es de tres nodos maestros. Esta arquitectura despliega tres nodos maestros y tres nodos de réplica. Es posible que necesite más nodos para cumplir con los requisitos de rendimiento o alta disponibilidad de su aplicación.

    Puede escalar horizontalmente el cluster de Redis agregando más nodos de cálculo.

    Puede escalar verticalmente el cluster Redis cambiando la forma de VM de cada nodo Compute. La selección de una forma con una forma de recuento de núcleos más alta también aumenta la memoria asignada a la instancia de Compute y al ancho de banda de red.

  • Disponibilidad de la aplicación

    Los dominios de fallo proporcionan la mejor resiliencia dentro de un único dominio de disponibilidad. Esta arquitectura utiliza otro enfoque de alta disponibilidad, que está desplegando instancias informáticas que realizan las mismas tareas en regiones que tienen varios dominios de disponibilidad. Este diseño elimina un único punto de fallo introduciendo redundancia.

    Una vez desplegada la arquitectura, puede conectarse a la dirección IP pública del nodo Redis mediante herramientas SSH como PuTTY o Git Bash. Puede utilizar la interfaz de línea de comandos Redis, redis-cli, para interactuar con el despliegue Redis.

  • Costos

    Seleccione la forma de máquina virtual (VM) basada en los núcleos, la memoria y el ancho de banda de red que necesita para la base de datos. Puede empezar con una forma de un núcleo y cambiar la forma de VM más tarde si necesita más rendimiento, memoria o ancho de banda de red para el nodo Redis.

Desplegar

El código necesario para desplegar esta arquitectura de referencia está disponible en GitHub. Puede extraer el código a Oracle Cloud Infrastructure Resource Manager con un solo clic, crear la pila y desplegarlo. También puede descargar el código de GitHub en el equipo, personalizar el código y desplegar la arquitectura mediante la CLI de Terraform.

  • Desplegar mediante Oracle Cloud Infrastructure Resource Manager:
    1. Haga clic en Desplegar en Oracle Cloud

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

    2. Revise y acepte los términos y condiciones.
    3. Seleccione la región en la que desea desplegar la pila.
    4. Siga las instrucciones y peticiones de datos 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 se complete el trabajo y revise el plan.

      Para realizar cualquier cambio, 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 son necesarios otros cambios, vuelva a la página Detalles de Pila, haga clic en Acciones de Terraform y seleccione Aplicar.
  • Despliegue mediante la CLI de Terraform:
    1. Vaya a GitHub.
    2. Descargue o clone el código en su computadora local.
    3. Siga las instrucciones de README.md.

Cambiar Log

Este log muestra solo los cambios significativos: