Despliegue una plataforma de transmisión de vídeo de la parte de observación de baja latencia en Oracle Cloud

La demanda de fiestas de streaming en vivo ha aumentado en los últimos años, creando un mercado creciente para plataformas de streaming como Red5 Pro.

A pesar de la intensa competencia entre los proveedores de streaming, no todas las plataformas son iguales. De hecho, muchos servicios de transmisión vienen con una latencia de 30-120s o superior. Tal retraso puede arruinar una fiesta de reloj, ya que algunos miembros pueden experimentar la emoción de una carrera en el hogar, el tronco de la slam, o el golpe a medida que sucede, mientras que otros sufren a través de los cheers de sus co-observadores segundos antes de ver la acción ellos mismos. Pero Red5 Pro ha desarrollado un sistema de servidor de medios basado en Web Real-Time Communication (WebRTC) que ofrece vídeo en directo con una latencia de menos de 500 ms, o aproximadamente .5 segundos, lo que permite a todos en la parte de observación ver la acción simultáneamente.

Red5 Pro ejecuta su plataforma en Oracle Cloud Infrastructure (OCI) y soporta las partes de observación en KeepBoxingFree.com. Cada despliegue de Red5 Pro soporta 50 000 usuarios, 6 250 partes de observación y ocho usuarios por parte de observación. Red5 Pro es capaz de escalar en incrementos pequeños: un único nodo (el más pequeño que puede escalar) agrega una capacidad de 300-1000 usuarios. La ampliación en incrementos pequeños permite a Red5 Pro ampliar a demanda sin instancias inactivas. Dependiendo de cuántas personas están viendo y cuánto tiempo ven, se estima que el tráfico de salida generará:

  • Bitratos de 4,5 Mbps para hasta 50 000 usuarios
  • Latencia inferior a 500 ms, incluso durante la capacidad máxima

Red5 Pro ha optado por ejecutar su plataforma en Oracle Cloud Infrastructure para aprovechar:

  • Flexibilidad de ampliación rápida durante las ráfagas con la unidad de computación flexible AMD E4
  • Menores costos de las transferencias de datos

    No hay cargos por transferencias de datos entrantes. Para transferencias de datos salientes, los primeros 10 TB por mes son gratuitos.

  • Tiempos coherentes en el inicio de nodos Red5 Pro (instancias)

    Con otros hiperescaladores, los tiempos de lanzamiento antes tardaban de ocho a diez horas. Con OCI, los tiempos de lanzamiento se reducen a dos horas. Esto permite a Red5 Pro ampliar la capacidad cuando necesita rápidamente cientos de nodos/instancias.

Arquitectura

El público en general, las celebridades y los organismos de radiodifusión responsables de proporcionar la fuente de video en vivo para un evento pueden acceder a una fiesta Red5 Pro.

La arquitectura consta de clusters de servidores Red5 Pro en diferentes regiones de Oracle Cloud Infrastructure (OCI), gestionados por gestores de flujos. Estos gestores de flujos son los principales puntos de entrada en el ecosistema Red5 Pro y son responsables de asignar una instancia de servidor adecuada para publicar o suscribirse a un flujo. Los gestores de flujos también tienen un equilibrio de carga y son responsables de supervisar y gestionar los ciclos de vida de los nodos.

Los usuarios se registran para una cuenta accediendo al servidor web de la parte de observación. La información de cuenta de usuario y los detalles del evento se almacenan en un cluster de Oracle MySQL Database Service totalmente gestionado que aloja una base de datos de conferencias. Los titulares de cuentas pueden registrarse para un evento e invitar a sus amigos a unirse a ellos en una fiesta de vigilancia. Después de la autenticación, el tráfico de usuario pasa por un juego de equilibradores de carga y, a continuación, observa los servidores web de parte que se escalan mediante la escala automática de OCI para manejar cualquier aumento en el tráfico de usuario.

Todas las instancias virtuales de la arquitectura se ejecutan en máquinas virtuales (VM) flexibles E4 de AMD. El día de un evento, los organismos de radiodifusión envían sualimentación de evento a un transcodificador, que transforma laalimentación en diferentes variantes (flujos adaptativos develocidad de bits de varias resoluciones) o directamente a losservidores de origen si no se necesita transcodificación. Red5 Pro soporta dos tipos de flujos: un flujo en directo, generado por una emisora, y un flujo web, generado por los suscriptores de la parte de observación que participan en el chat de vídeo a través de sus cámaras web.

Los gestores de flujos dirigen el tráfico de las emisoras a los servidores de origen y el tráfico de suscriptores a los servidores de perímetro. Los gestores de flujos también actúan como servidores de señalización para proxy de sockets web entre pares en una conexión WebRTC. El gestor de flujos mantiene la información de flujo y, a continuación, la almacena en el cluster de Oracle MySQL Database Service que representa la base de datos de conferencias. Para garantizar una baja latencia, Red5 Pro no tiene ningún equilibrador de carga para los servidores de origen y perímetro, lo que minimiza los saltos entre editores y suscriptores. Los grupos de seguridad de red (NSG) controlan el tráfico de red entre los recursos.

El siguiente diagrama ilustra la parte web y el proceso de conexión de difusión.



red5-oci-data-flow-oracle.zip

La alta disponibilidad de la interfaz web la mantienen los servidores de equilibrio de carga de un dominio de disponibilidad en tres dominios de errores. Ambas bases de datos de Oracle MySQL Database Service están en un cluster de alta disponibilidad. Los datos que se escriben en una base de datos principal también se replican en la base de datos en espera. Los gestores de flujos amplían automáticamente los servidores de origen y los servidores de perímetro para soportar los cambios en la carga. Los gestores de flujos utilizan código de terraform para aprovisionar y anular el aprovisionamiento dinámicos de nodos para la ampliación automática. La ampliación se configura y se dispara mediante políticas Pro Red5, que se basan en el número de conexiones a los nodos de origen y perímetro. Por ejemplo, por defecto, se dispara una alarma del 60% para cada componente. Si se define una política de 400 conexiones para un servidor de perímetro, cuando hay 241 conexiones, se despliega un nuevo servidor de perímetro para alojar usuarios adicionales. Las políticas se pueden definir para almacenar previamente un servidor en lugar de escalar según sea necesario. El servicio de nombres de dominio de Oracle Cloud Infrastructure se utiliza para gestionar las zonas de DNS para el evento de soporte. Los servicios Email Delivery de OCI se utilizan para enviar correos electrónicos del sistema Red5 Pro a usuarios registrados.

En el siguiente diagrama se ilustra esta arquitectura de referencia.



red5-oci-architecture-oracle.zip

Red5 La visión de Pro para una futura arquitectura de estado incluye:

  • Despliegue de la plataforma Red5 Pro en varias regiones OCI de todo el mundo
  • Creación de una arquitectura multi-inquilino para soportar muchos canales de difusión por servidor
  • Integración de los servicios de lenguaje y voz de inteligencia artificial de Oracle para la transcripción de voz a texto y las traducciones de idiomas que permiten opciones multilingües tanto para emisores como para usuarios

La arquitectura tiene los siguientes componentes:

  • arrendamiento

    Un arrendamiento es una partición segura y aislada que Oracle configura en Oracle Cloud al registrarse en Oracle Cloud Infrastructure. Puede crear, organizar y administrar sus recursos en Oracle Cloud dentro de su arrendamiento. Un arrendamiento es sinónimo de una compañía u organización. Normalmente, una compañía tendrá un solo arrendamiento y reflejará su estructura organizativa dentro de ese arrendamiento. Un único arrendamiento suele estar asociado a una sola suscripción, y una única suscripción suele tener un solo arrendamiento.

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

  • Compartimento

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

  • Dominio 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 una infraestructura, como la alimentación o la refrigeración, ni la red interna del dominio de disponibilidad. Por lo tanto, es improbable que un fallo en un dominio de disponibilidad afecte a los otros dominios de la región.

  • Servicio de Bastion

    Oracle Cloud Infrastructure Bastion proporciona acceso seguro restringido y limitado en el tiempo a recursos que no tienen puntos finales públicos y que requieren estrictos controles de acceso a recursos, como máquinas virtuales y con hardware dedicado, Oracle MySQL Database Service, Autonomous Transaction Processing (ATP), Oracle Container Engine for Kubernetes (OKE) y cualquier otro recurso que permita el acceso al protocolo de shell seguro (SSH). Con el servicio Oracle Cloud Infrastructure Bastion, puede activar el acceso a hosts privados sin desplegar y mantener un host de salto. Además, obtiene una estrategia de seguridad mejorada con permisos basados en identidad y una sesión SSH centralizada, auditada y con límite de tiempo. Oracle Cloud Infrastructure Bastion elimina la necesidad de una IP pública para el acceso bastión, lo que elimina la molestia y la posible superficie de ataque al proporcionar acceso remoto.

  • DNS

    El servicio de sistema de nombres de dominio (DNS) de Oracle Cloud Infrastructure es una red de sistema de nombres de dominio (DNS) global con grandes posibilidades de ampliación que ofrece rendimiento, resiliencia y escalabilidad de DNS mejorados, para que los usuarios finales se conecten a la aplicación de los clientes lo antes posible, desde cualquier lugar.

  • Política

    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.

  • Entrega de correo electrónico

    Oracle Cloud Infrastructure Email Delivery es un servicio de entrega de correo electrónico fiable, rentable y con grandes posibilidades de ampliación para enviar correos electrónicos de gran volumen generados por las aplicaciones para el marketing, la notificación y las comunicaciones transaccionales esenciales, como confirmaciones, alertas de detección de fraudes, verificación de identidad multifactor y restablecimientos de contraseña.

  • Terraform

    Oracle Cloud Infrastructure Resource Manager permite automatizar el proceso de aprovisionamiento de recursos de Terraform. Le ayudará a instalar, configurar y gestionar recursos con el modelo de infraestructura como código.

  • Red virtual en la nube (VCN) y subredes

    Una VCN es una red personalizable y definida por software que se configura en una región de Oracle Cloud Infrastructure. Al igual que las redes de centros de datos tradicionales, las redes virtuales le proporcionan un control completo 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 acotar a una región o a un dominio de disponibilidad. Cada subred está compuesta 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.

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

  • Tabla de ruta

    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 servicio

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

  • Grupo de seguridad de red (NSG)

    El grupo de seguridad de red (NSG) actúa como firewall virtual para sus recursos en la nube. Con el modelo de seguridad de confianza cero 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 sólo a un conjunto especificado de VNIC en una única VCN.

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

  • Recursos informáticos

    El servicio Oracle Cloud Infrastructure Compute permite aprovisionar y gestionar hosts informáticos en la nube. Puede iniciar instancias informáticas con unidades que cumplan los requisitos de recursos de CPU, memoria, ancho de banda de red y almacenamiento. Después de crear una instancia informática, puede acceder a ella de forma segura, reiniciarla, asociar y desconectar volúmenes y terminarla cuando ya no lo necesite.

  • 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 y desplegar rápidamente aplicaciones nativas seguras en la nube. Optimizado y disponible exclusivamente en OCI, Oracle MySQL Database Service está 100% construido, gestionado y respaldado 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.

Consiga una posición destacada en la creación y el despliegue

¿Desea mostrar lo que ha creado en Oracle Cloud Infrastructure? ¿Le interesa compartir sus lecciones aprendidas, mejores prácticas y arquitecturas de referencia con nuestra comunidad global de arquitectos en la nube? Permítanos ayudarle a comenzar.

  1. Descargar la plantilla (PPTX)

    Ilustre su propia arquitectura de referencia arrastrando y soltando los iconos en el esquema de ejemplo.

  2. Ver el tutorial de arquitectura

    Obtenga instrucciones paso a paso sobre cómo crear una arquitectura de referencia.

  3. Enviar el diagrama

    Envíenos un correo electrónico con su diagrama. Nuestros arquitectos en la nube revisarán su diagrama y se pondrán en contacto con usted para analizar su arquitectura.

Agradecimientos

  • Autores: Robert Huie, Sasha Banks-Louie
  • Colaborador: Praveen Coca, Bill Wimsatt, Robert Lies