Implantar una página de error personalizado para un equilibrador de carga mediante Cloud Native Services
Mejore la experiencia del usuario sustituyendo los mensajes de error del equilibrador de carga por mensajes de error personalizados creados mediante servicios de supervisión, notificación y funciones nativos de la nube.
El servicio Oracle Cloud Infrastructure Load Balancing mejora el uso de recursos, facilita la ampliación y garantiza una alta disponibilidad. Puede configurar varias políticas de equilibrio de carga y comprobaciones de estado específicas de la aplicación para garantizar que el equilibrador de carga dirija el tráfico sólo a instancias saludables. Si uno o varios servidores backend informan de que no están sanos, un usuario que intenta acceder al listener del equilibrador de carga recibe un código de error estándar y un mensaje como respuesta. Sin embargo, al utilizar los servicios Oracle Cloud Infrastructure Monitoring, Oracle Cloud Infrastructure Notifications y Oracle Functions, los usuarios finales pueden recibir una página de error personalizada alojada por el servicio Oracle Cloud Infrastructure Object Storage. Esta arquitectura de referencia muestra tal escenario para proporcionar una mejor experiencia de usuario final.
Arquitectura
Esta arquitectura de referencia utiliza servicios nativos de Oracle Cloud Infrastructure Monitoring y Notificación para responder a las condiciones de umbral del equilibrador de carga y llamar a Oracle Functions para evaluar la condición y utilizar reglas de redireccionamiento para reenviar mensajes de error personalizados almacenados en Oracle Cloud Infrastructure Object Storage.
Oracle Cloud Infrastructure Monitoring define una alarma que dispara cada vez que los servidores backend del equilibrador de carga no saludables alcanzan un valor de umbral. El servicio Oracle Cloud Infrastructure Notifications envía el mensaje de alarma a los suscriptores que, en este caso, incluyen una función. Cuando se notifica, la función implementa la lógica necesaria para activar o desactivar juegos de reglas que están asociados a un listener de equilibrador de carga. Una regla de redireccionamiento de URL evalúa una URL entrante y la redirige a una página de error personalizada de Oracle Cloud Infrastructure Object Storage que el listener del equilibrador de carga reenvía a los usuarios finales.
El siguiente diagrama ilustra esta arquitectura de referencia.
La arquitectura de Oracle Functions 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 dentro de una región. Los recursos físicos de cada dominio de disponibilidad están aislados de los recursos de los demás dominios de disponibilidad, lo que proporciona tolerancia a fallos. Los dominios de disponibilidad no comparten infraestructura, como energía o refrigeración, ni la red de dominio de disponibilidad interna. Por lo tanto, es improbable que un fallo en un dominio de disponibilidad afecte a los demás dominios de disponibilidad de la región.
- Red virtual en la nube (VCN) y subredes
Un VCN es una red personalizable definida por software que configura en una región de Oracle Cloud Infrastructure. Al igual que las redes tradicionales de centros de datos, las VCN le proporcionan un control completo sobre su entorno de red. Un VCN puede tener varios bloques CIDR no superpuestos que puede cambiar después de crear VCN. Puede segmentar un VCN en subredes, que se pueden incluir en un ámbito de una región o en un dominio de disponibilidad. Cada subred consta de un rango contiguo de direcciones que no se solapan 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.
- Equilibrador de carga
El servicio Oracle Cloud Infrastructure Load Balancing proporciona distribución automática de tráfico desde un único punto de entrada a varios servidores en el backend.
- Funciones
Oracle Functions es una plataforma de funciones como servicio totalmente gestionada, multitenante, altamente escalable y bajo demanda. Está alimentado por el motor de código abierto Fn Project. Las funciones permiten desplegar el código y llamarlo directamente o dispararlo en respuesta a los eventos. Oracle Functions utiliza contenedores Docker alojados en Oracle Cloud Infrastructure Registry.
- Notificaciones
El servicio Oracle Cloud Infrastructure Notifications transmite mensajes a componentes distribuidos mediante un patrón de suscripción de publicación, proporcionando mensajes seguros, altamente fiables, de baja latencia y duraderos para aplicaciones alojadas en Oracle Cloud Infrastructure.
- Supervisión
El servicio Oracle Cloud Infrastructure Monitoring supervisa activa y pasivamente los recursos en la nube mediante métricas para supervisar los recursos y las alarmas para notificarle cuando estas métricas cumplen los disparadores especificados por la alarma.
- Almacenamiento de objetos
El almacenamiento de objetos proporciona acceso rápido a grandes cantidades de datos estructurados y no estructurados de cualquier tipo de contenido, incluidas copias de seguridad de la base de datos, datos analíticos y contenido enriquecido, como imágenes y vídeos. Utilice el almacenamiento estándar para el almacenamiento "caliente" al que necesita acceder de forma rápida, inmediata y frecuente. Utilice el almacenamiento de archivos para el almacenamiento "frío" que conserva durante largos períodos de tiempo y rara vez o raramente acceda a él.
Recomendaciones
Sus requisitos pueden diferir de la arquitectura descrita aquí. Utilice las siguientes recomendaciones como punto de partida.
- 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 desea asociar a las subredes de VCN. Utilice bloques CIDR que estén dentro del espacio de dirección IP privada estándar.
Después de crear un VCN, puede cambiar, agregar y eliminar sus bloques CIDR.
En esta arquitectura, la función se aloja en una subred regional privada en los servidores backend VCN. se alojan en una subred privada a la que se accede desde un equilibrador de carga en una subred pública.
- Funciones
Oracle Functions admite Python, Java, Nodo, Ir y Ruby. Utilice un lenguaje de programación de su elección. Active siempre el registro para permitir la depuración si se produce un error. En esta arquitectura, la programación de Python se utiliza para desarrollar la lógica de funciones que agrega o elimina juegos de reglas.
- Almacenamiento de Objetos
Esta arquitectura utiliza Oracle Cloud Infrastructure Object Storage estándar para alojar una página web personalizada que se sirve como respuesta a las solicitudes de usuario final.
- Supervisión
Oracle Cloud Infrastructure Monitoring utiliza métricas para supervisar recursos y alarmas para notificarle cuando estas métricas cumplen los disparadores especificados por la alarma. En esta arquitectura, el equilibrador de carga publica métricas y la alarma se dispara cuando la métrica
UnHealthyBackendServers
es igual al número total de backends disponibles durante más de tres minutos. Una alarma separada elimina la respuesta personalizada de la página web cuando la métricaUnHealthyBackendServers
es menor que el número total de backends disponibles durante más de tres minutos. - Notificaciones
Oracle Cloud Infrastructure Notifications publica mensajes cuando se disparan reglas de eventos, se violan alarmas o alguien publica directamente un mensaje. En este caso, Oracle Cloud Infrastructure Notifications se utiliza para disparar las funciones cuando se dispara la alarma.
Consideraciones
- Disponibilidad
Oracle garantiza una alta disponibilidad de los servicios de funciones, supervisión y notificaciones, que son nativos de la nube y están completamente gestionados. Oracle Functions escala de forma automática y sin problemas horizontalmente para servir a todas las solicitudes entrantes.
- Gestión
Esta arquitectura utiliza Python para escribir la lógica de función. La infraestructura se aprovisiona mediante Terraform.
- Seguridad
Utilice políticas para restringir quién puede acceder a los recursos de Oracle Cloud Infrastructure que tiene la compañía y cómo pueden acceder a ellos.
Para el almacenamiento de objetos, el cifrado está activado por defecto y no se puede desactivar.
Todo el acceso a las funciones desplegadas en Oracle Functions se controla mediante Oracle Cloud Infrastructure Identity and Access Management (IAM). IAM permite asignar privilegios de gestión de funciones y de llamada de funciones a usuarios y grupos de usuarios específicos.
- Costo
Solo paga los recursos utilizados mientras se ejecuta una función.
Desplegar
El código de función y Terraform para esta arquitectura de referencia está disponible en GitHub.
El repositorio de GitHub incluye el código Terraform para crear la infraestructura para esta arquitectura de referencia. GitHub también incluye el código de función que proporciona lógica de toma de decisiones basada en notificaciones y juegos de reglas.
- Vaya a GitHub.
- Clone o descargue el repositorio en su computadora local.
- Siga las instrucciones del documento
README
.