Implante uma Plataforma de Streaming de Vídeo Watch Party de Baixa Latência no Oracle Cloud

A demanda por partes de relógios de transmissão ao vivo cresceu nos últimos anos, criando um mercado crescente para plataformas de streaming como o Red5 Pro.

Apesar da intensa concorrência entre os provedores de streaming, nem todas as plataformas são criadas da mesma forma. Na verdade, muitos serviços de streaming vêm com latência de 30-120s ou mais. Tal atraso pode arruinar uma festa de relógio, uma vez que alguns membros conseguem experimentar a emoção de uma corrida em casa, uma folga ou uma batida como acontece, enquanto outros sofrem pelos torcedores de seus colegas segundos antes de ver a própria ação. Mas o Red5 Pro desenvolveu um sistema de servidor de mídia com base na Comunicação em Tempo Real da Web (WebRTC) que entrega vídeo de transmissão ao vivo com uma latência inferior a 500ms, ou cerca de 5 segundos, permitindo que todos na parte do relógio vejam a ação simultaneamente.

Red5 O Pro executa sua plataforma no Oracle Cloud Infrastructure (OCI) e suporta partes de observação no KeepBoxingFree.com. Cada implantação do Red5 Pro suporta 50.000 usuários, 6.250 partes de observação e oito usuários por parte de observação. Red5 Pro é capaz de dimensionar em pequenos incrementos: um único nó (o menor que você pode dimensionar) adiciona uma capacidade de 300-1000 usuários. O dimensionamento em pequenos incrementos permite que o Red5 Pro seja dimensionado sob demanda sem instâncias ociosas. Dependendo de quantas pessoas estão assistindo e quanto tempo elas observam, estima-se que o tráfego de saída gerará:

  • Bitrates de 4,5 Mbps para até 50.000 usuários
  • Latência inferior a 500 ms, mesmo durante o pico de capacidade

Red5 A Pro escolheu executar sua plataforma no Oracle Cloud Infrastructure para que ela pudesse aproveitar:

  • Flexibilidade de expansão rápida durante bursts usando o formato de computação flexível AMD E4
  • Custos mais baixos de transferências de dados

    Não há encargos para transferências de dados de entrada. Para transferências de dados de saída, os primeiros 10 TB por mês são gratuitos.

  • Tempos consistentes na inicialização de nós Pro Red5 (instâncias)

    Com outros hiperescaladores, os tempos de lançamento eram de oito a dez horas. Com a OCI, os tempos de lançamento são reduzidos a duas horas. Isso permite que o Red5 Pro seja dimensionado para capacidade quando ele precisa rapidamente de centenas de nós/instâncias.

Arquitetura

Uma festa de relógio Red5 Pro pode ser acessada pelo público em geral, celebridades e emissoras responsáveis por fornecer o feed de vídeo ao vivo para um evento.

A arquitetura consiste em clusters de servidores Red5 Pro em diferentes regiões do OCI (Oracle Cloud Infrastructure), que são gerenciados por gerentes de fluxo. Esses gerentes de fluxo são os principais pontos de entrada no ecossistema Red5 Pro e são responsáveis por designar uma instância de servidor adequada para publicar ou assinar um fluxo. Os gerentes de fluxo também são balanceados de carga e são responsáveis pelo monitoramento e gerenciamento dos ciclos de vida dos nós.

Os usuários se registram em uma conta acessando o servidor Web da parte de observação. As informações da conta do usuário e os detalhes do evento são armazenados em um cluster totalmente gerenciado do Oracle MySQL Database Service que hospeda um banco de dados de conferência. Os titulares da conta podem se registrar para um evento e convidar seus amigos para se juntar a eles em uma festa de relógio. Após a autenticação, o tráfego do usuário passa por um conjunto de balanceadores de carga e, em seguida, para assistir a servidores Web de terceiros que são dimensionados usando o OCI Autoscaling para tratar qualquer aumento no tráfego do usuário.

Todas as instâncias virtuais na arquitetura são executadas em VMs (máquinas virtuais) flexíveis AMD E4. No dia de um evento, as empresas de radiodifusão enviam seu feed de eventos para um transcodificador, que transforma o feed em variantes diferentes (fluxos Adaptive Bit Rate de várias resoluções) ou diretamente para os servidores de origem se a transcodificação não for necessária. Red5 Pro suporta dois tipos de fluxos: um fluxo ao vivo, que é gerado por uma emissora e um fluxo web, que é gerado por assinantes da parte do relógio que estão envolvidos no bate-papo por vídeo através de suas câmeras web.

Os gerentes de fluxo direcionam o tráfego da emissora para servidores de origem e o tráfego de assinantes para servidores de borda. Os gerenciadores de fluxo também atuam como servidores de sinalização para soquetes Web proxy entre pares em uma conexão WebRTC. As informações de streaming são mantidas pelo gerenciador de fluxos e, em seguida, armazenadas no cluster do Oracle MySQL Database Service que representa o banco de dados de conferência. Para garantir baixa latência, o Red5 Pro não tem balanceadores de carga para os servidores de origem e de borda, minimizando o pulo entre editores e assinantes. Os grupos de segurança de rede (NSGs) controlam o tráfego de rede entre recursos.

O diagrama a seguir ilustra a parte da Web e o processo de conexão de transmissão.



red5-oci-data-flow-oracle.zip

A alta disponibilidade da interface Web é mantida pelos servidores de balanceamento de carga em um domínio de disponibilidade entre três domínios de falha. Os bancos de dados do Oracle MySQL Database Service estão em um cluster altamente disponível. Os dados gravados em um banco de dados principal também são replicados no banco de dados stand-by. Os gerenciadores de fluxo dimensionam automaticamente os servidores de origem e os servidores de borda para suportar as alterações no carregamento. Os gerentes de fluxo usam o código terraform para provisionar e desprovisionar dinamicamente nós para dimensionamento automático. O dimensionamento é configurado e acionado por meio de políticas Pro Red5, que se baseiam no número de conexões com os nós de origem e de borda. Por exemplo, por padrão, um alarme de 60% é acionado para cada componente. Se uma política de 400 conexões for definida para um servidor de borda, quando houver 241 conexões, um novo servidor de borda será implantado para acomodar usuários adicionais. As políticas podem ser definidas para preparar um servidor em vez de dimensionar conforme necessário. O Serviço de Nome de Domínio do Oracle Cloud Infrastructure é usado para gerenciar zonas DNS para o evento de suporte. Os serviços do OCI Email Delivery são usados para enviar e-mails do sistema Red5 Pro para usuários registrados.

O diagrama a seguir ilustra essa arquitetura de referência.



red5-oci-architecture-oracle.zip

Red5 A visão do Pro para uma arquitetura de estado futura inclui:

  • Implantando a plataforma Red5 Pro em várias regiões da OCI em todo o mundo
  • Criando uma arquitetura multitenant para suportar muitos canais de transmissão por servidor
  • Integração dos serviços de fala e linguagem de inteligência artificial da Oracle para transcrição de fala para texto e traduções de idiomas que permitem opções multilíngues para emissoras e usuários

A arquitetura tem os seguintes componentes:

  • Locação

    Uma tenancy é uma partição segura e isolada que a Oracle configura no Oracle Cloud quando você acessa o Oracle Cloud Infrastructure. Você pode criar, organizar e administrar seus recursos no Oracle Cloud em sua tenancy. Uma tenancy é sinônimo de empresa ou organização. Geralmente, uma empresa terá uma única tenancy e refletirá sua estrutura organizacional dentro dessa tenancy. Em geral, uma única tenancy é associada a uma única assinatura e, em geral, uma única assinatura só tem uma tenancy.

  • Região

    Uma região do Oracle Cloud Infrastructure é uma área geográfica localizada que contém um ou mais data centers, denominada domínios de disponibilidade. As regiões são independentes de outras regiões, e grandes distâncias podem separá-las (entre países ou até mesmo continentes).

  • Compartimento

    Os compartimentos são partições lógicas entre regiões em uma tenancy do Oracle Cloud Infrastructure. Use compartimentos para organizar seus recursos no Oracle Cloud, controlar o acesso aos recursos e definir cotas de uso. Para controlar o acesso aos recursos em um determinado compartimento, você define políticas que especificam quem pode acessar os recursos e quais ações eles podem executar.

  • Domínio de disponibilidade

    Os domínios de disponibilidade são data centers independentes e independentes dentro de uma região. Os recursos físicos em cada domínio de disponibilidade são isolados dos recursos dos outros domínios de disponibilidade, o que oferece tolerância a falhas. Os domínios de disponibilidade não compartilham infraestrutura como energia ou resfriamento ou a rede interna do domínio de disponibilidade. Portanto, provavelmente uma falha em um domínio de disponibilidade não afetará os outros domínios de disponibilidade da região.

  • Serviço Bastion

    O Oracle Cloud Infrastructure Bastion oferece acesso seguro restrito e com tempo limitado a recursos que não têm pontos finais públicos e que exigem controles rígidos de acesso a recursos, como bare metal e máquinas virtuais, Oracle MySQL Database Service, Autonomous Transaction Processing (ATP), Oracle Container Engine for Kubernetes (OKE) e qualquer outro recurso que permita acesso ao Secure Shell Protocol (SSH). Com o serviço Oracle Cloud Infrastructure Bastion, você pode ativar o acesso a hosts privados sem implantar e manter um host de salto. Além disso, você ganha melhor postura de segurança com permissões baseadas em identidade e uma sessão SSH centralizada, auditada e limitada por tempo. O Oracle Cloud Infrastructure Bastion elimina a necessidade de um IP público para acesso bastion, eliminando o incômodo e a potencial superfície de ataque ao fornecer acesso remoto.

  • DNS

    O serviço DNS (Domain Name System) do Oracle Cloud Infrastructure é uma rede DNS (Domain Name System) anycast global altamente escalável que oferece desempenho, resiliência e escalabilidade aprimorados do DNS, para que os usuários finais se conectem ao aplicativo dos clientes o mais rápido possível, de onde quer que estejam.

  • Política

    Uma política do Oracle Cloud Infrastructure Identity and Access Management especifica quem pode acessar quais recursos e como. O acesso é concedido no nível de grupo e compartimento. Isso significa que você pode gravar uma política que dá a um grupo um tipo específico de acesso em um compartimento específico ou à tenancy.

  • Serviço Email Delivery

    O Oracle Cloud Infrastructure Email Delivery é um serviço de entrega de e-mail altamente escalável, barato e confiável para enviar e-mails de alto volume gerados por aplicativo para marketing, notificação e comunicações transacionais de missão crítica, como recibos, alertas de detecção de fraude, verificação de identidade multifator e redefinições de senha.

  • Terraform

    O Oracle Cloud Infrastructure Resource Manager permite automatizar o processo de provisionamento de recursos do Terraform. Ele ajuda a instalar, configurar e gerenciar recursos usando o modelo de infraestrutura como código.

  • Rede virtual na nuvem (VCN) e sub-redes

    Uma VCN é uma rede personalizável e definida por software que você configura em uma região do Oracle Cloud Infrastructure. Como as redes tradicionais de data center, as VCNs oferecem total controle sobre seu ambiente de rede. Uma VCN pode ter vários blocos CIDR não sobrepostos que você pode alterar após criar a VCN. Você pode segmentar uma VCN em sub-redes, que podem ter escopo em uma região ou em um domínio de disponibilidade. Cada sub-rede consiste em um intervalo ininterrupto de endereços que não se sobrepõem às outras sub-redes da VCN. Você pode alterar o tamanho de uma sub-rede após a criação. Uma sub-rede pode ser pública ou privada.

  • Lista de segurança

    Para cada sub-rede, você pode criar regras de segurança que especifiquem a origem, o destino e o tipo de tráfego que deve ser permitido dentro e fora da sub-rede.

  • Tabela de roteamento

    As tabelas de roteamento virtual contêm regras para rotear o tráfego de sub-redes para destinos fora de uma VCN, geralmente por meio de gateways.

  • Gateway de Internet

    O gateway de internet permite tráfego entre as sub-redes públicas em uma VCN e a internet pública.

  • Gateway de serviço

    O gateway de serviço fornece acesso de uma VCN a outros serviços, como o Oracle Cloud Infrastructure Object Storage. O tráfego da VCN para o serviço Oracle passa pela malha da rede Oracle e nunca atravessa a internet.

  • Grupo de segurança de rede (NSG)

    O grupo de segurança de rede (NSG) atua como um firewall virtual para seus recursos de nuvem. Com o modelo de segurança de confiança zero do Oracle Cloud Infrastructure, todo o tráfego é negado, e você pode controlar o tráfego de rede dentro de uma VCN. Um NSG consiste em um conjunto de regras de segurança de entrada e saída que se aplicam somente a um conjunto especificado de VNICs em uma única VCN.

  • Balanceador de carga

    O serviço Oracle Cloud Infrastructure Load Balancing fornece distribuição automatizada de tráfego de um único ponto de entrada para vários servidores no back-end.

  • Serviço Compute

    O serviço Oracle Cloud Infrastructure Compute permite provisionar e gerenciar hosts de computação na nuvem. Você pode iniciar instâncias de computação com formas que atendam aos seus requisitos de recursos para CPU, memória, largura de banda da rede e armazenamento. Após criar uma instância de computação, você pode acessá-la com segurança, reiniciá-la, anexar e desanexar volumes e encerrá-la quando não precisar mais dela.

  • Oracle MySQL Database Service

    O Oracle MySQL Database Service é um serviço de banco de dados Oracle Cloud Infrastructure (OCI) totalmente gerenciado que permite aos desenvolvedores desenvolver e implantar rapidamente aplicativos seguros e nativos da nuvem. Otimizado e disponível exclusivamente na OCI, o Oracle MySQL Database Service é 100% construído, gerenciado e suportado pelas equipes de engenharia OCI e MySQL.

    O Oracle MySQL Database Service tem um mecanismo de análise integrado de alto desempenho (HeatWave) para executar análises sofisticadas em tempo real diretamente em um banco de dados MySQL operacional.

Seja Destaque na Criação e Implantação

Deseja mostrar o que você criou no Oracle Cloud Infrastructure? É importante compartilhar suas lições aprendidas, melhores práticas e arquiteturas de referência com nossa comunidade global de arquitetos de nuvem? Vamos ajudá-lo a começar.

  1. Faça download do modelo (PPTX)

    Ilustre sua própria arquitetura de referência arrastando e soltando os ícones no quadro de fios de amostra.

  2. Assistir ao tutorial de arquitetura

    Obtenha instruções passo a passo sobre como criar uma arquitetura de referência.

  3. Enviar seu diagrama

    Envie um e-mail com seu diagrama. Nossos arquitetos de nuvem verificarão seu diagrama e entrarão em contato com você para discutir sua arquitetura.

Confirmações

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