Conteúdo[Esconder][Mostrar]
Há uma possibilidade bastante decente de você ter transmitido algo se passou algum tempo online.
O streaming é um dos usos mais comuns para os aplicativos mais conhecidos da internet, seja através do YouTube, Spotify, Netflix ou uma centena de outros.
No entanto, considerando o quão comum o streaming é, é simples dar como certo. Por exemplo: O que é streaming, exatamente?
Qualquer material de mídia, seja ao vivo ou gravado, enviado pela Internet para computadores e dispositivos móveis e reproduzido em tempo real é chamado de streaming.
Tipos comuns de material de streaming incluem podcasts, webcasts, filmes, programas de televisão e vídeos de música.
Itens de mídia como música, vídeo e outros tipos são planejados e transferidos em pacotes de dados consecutivos para que possam ser transmitidos instantaneamente.
Um dispositivo adequado, acesso a um serviço ou aplicativo de streaming e uma conexão de internet rápida e confiável de alta velocidade são tudo o que você precisa para transmitir.
Nota: Usaremos um serviço de streaming de vídeo como nosso exemplo.
Esta postagem analisará profundamente o design do sistema do serviço de streaming e os principais fatores a serem considerados ao desenvolver aplicativos de streaming de vídeo.
Requisitos de Sistema
Entre os serviços de streaming de vídeo mais populares do mundo estão o YouTube e o Netflix. Para melhorar a experiência do usuário, sua arquitetura inclui vários elementos.
Esse serviço inclui filmes populares, faturamento, sistemas de recomendação baseados em IA e funcionalidade de exibição posterior, mas nos concentraremos nos elementos essenciais.
Qualidades essenciais
Incluímos os seguintes recursos em nosso conceito para um streaming de vídeo serviço:
- Os criadores de conteúdo podem postar vídeos.
- Os espectadores podem usar muitos dispositivos para assistir a vídeos (celular, TV etc.).
- Nos vídeos, os usuários podem comentar, gostar ou não gostar.
- Os títulos dos vídeos podem ser usados para procurá-los.
- Para mostrar essas estatísticas aos usuários, o sistema pode armazenar visualizações, gostos e desgostos.
Objetivos do sistema
- Não deve haver nenhum buffer para que os espectadores possam assistir a vídeos em tempo real.
- O armazenamento para vídeo deve ser confiável. Você não deve perder os vídeos que carregou.
- Com um aumento de usuários, o sistema deve ser escalável.
- Baixa latência e alta disponibilidade devem ser características do sistema. Nessa situação, a consistência não é tão importante porque não há problema em um usuário esperar algum tempo antes de ver um filme recém-enviado.
Um único servidor não pode lidar com o volume de dados, pois o sistema deve gerenciar tráfego intenso regularmente. Um grupo de servidores será usado para atender o sistema.
Não deve haver nenhum impacto perceptível de velocidade para os clientes, mesmo que um servidor falhe.
Arquitetura de alto nível
Um programa de streaming de vídeo pode aceitar um dos três tipos diferentes de solicitações:
- Carregar (gravar)
- Pesquisar (ler)
- Ver (ler)
Como as consultas de leitura (pesquisa e visualização) costumam ser várias vezes mais frequentes do que as solicitações de gravação (upload), cada uma delas é tratada por um cluster separado de servidores.
Como o programa é de leitura intensiva, você precisará configurar mais servidores para lidar com solicitações de leitura do que uploads.
Cada solicitação feita por um cliente é roteada para o microsserviço apropriado pelo balanceador de carga quando é recebido.
Serviço de carregamento
O serviço de upload, que processa o vídeo, carrega-o nos servidores Open Connect e o torna acessível a todos os usuários, atende a uma solicitação de upload.
Serviço de pesquisa
O load balancer envia a solicitação de pesquisa para o microsserviço de pesquisa, que a envia para a pesquisa elástica da Netflix. O cliente recebe a resposta do Elastic search.
A pesquisa elástica, um mecanismo de pesquisa de código aberto de texto completo incrivelmente escalável, é usado pela Netflix para pesquisar milhões de vídeos.
A pesquisa elástica é usada pela Netflix para analisar as operações de atendimento ao cliente.
Ver serviço
A maioria das solicitações de visualização não será enviada ao balanceador de carga ou aos servidores da Netflix. Em vez disso, os usuários se conectarão a ISPs locais e serão alimentados diretamente do servidor Open Connect mais próximo.
No entanto, se o vídeo solicitado não estiver acessível, ele será enviado ao balanceador de carga e ao microsserviço de visualização.
O vídeo é então pesquisado no banco de dados de metadados, recuperado do caminho especificado nos metadados e transmitido ao cliente.
Obviamente, essa técnica inclui latência, razão pela qual praticamente todas as solicitações de visualização são fornecidas via Open Connect.
Envie vídeos
O principal objetivo do YouTube é enviar um filme ou vídeo. Um serviço de streaming de vídeo deve superar uma série de obstáculos antes de tornar um vídeo acessível a seus consumidores.
Mantendo em pedaços
Cada vídeo enviado será dividido em vários arquivos menores, em vez de ser mantido como um único arquivo enorme.
Isso é essencial, pois os produtores de conteúdo podem enviar vídeos enormes. Um único arquivo grande pode demorar um pouco para ser processado ou transmitido.
O espectador não terá que baixar o vídeo completo para reproduzi-lo se for salvo e disponibilizado a eles em pedaços.
Para garantir que haja pouca latência entre os blocos e que o usuário tenha uma experiência de visualização suave, o cliente primeiro solicitará o primeiro bloco do servidor e, em seguida, solicitará o bloco seguinte enquanto esse bloco estiver sendo reproduzido.
Fila de processamento
Cada vídeo tem vários pedaços, e a Netflix utilizará vários trabalhadores simultâneos para analisá-los, portanto, é necessária uma fila de processamento. Ao adicioná-los à fila, isso fica mais simples.
Os trabalhos serão coletados pelos trabalhadores (ou codificadores, que abordaremos a seguir), codificados em vários formatos e armazenados no armazenamento de arquivos distribuído.
Codificação de vídeo
É crucial converter e salvar os pedaços de vídeo em vários formatos para que os espectadores possam acessá-los usando a tecnologia e a conexão com a Internet que funcionam melhor para eles.
O vídeo pode ser visto em um laptop, telefone, TV ou outros gadgets pelos espectadores. Os formatos ideais para vários dispositivos diferem uns dos outros.
De maneira semelhante, vários espectadores podem utilizar várias larguras de banda para acessar a Internet.
Alguns espectadores podem transmitir filmes de alta resolução com facilidade, dependendo da velocidade de sua conexão com a Internet ou largura de banda, enquanto aqueles com menor largura de banda poderão transmitir vídeos de baixa qualidade com muito mais facilidade.
Abrir conexão
Quando você usa seu navegador para solicitar Netflix.com, seu ISP (Internet Service Provider) é realmente solicitado a estabelecer uma conexão entre seu computador e o servidor Netflix.
Seu ISP entra em contato com o endereço IP da Netflix em seu nome e retorna o resultado para você. O público em uma nação remota como Tóquio sofrerá atrasos significativos na transmissão e recepção de sinais devido à concentração desses servidores nos EUA.
Com vídeos, os atrasos são muito mais preocupantes, pois muitos dados devem ser transmitidos ao espectador e, se for, o streaming será atrasado e a experiência do usuário será prejudicada.
A Netflix utiliza uma técnica inteligente para corrigir o problema. É conhecido como Open Connect (OC). Open Connect é a CDN que a Netflix usa (Content Delivery Network).
Para armazenar em cache as informações online e entregá-las rapidamente aos consumidores, reduzindo a distância física entre o usuário e o material, a CDN é uma rede de servidores espalhados e data centers associados.
Balanceamento de carga
A aplicativo único servidor não consegue lidar com o volume de solicitações (incluindo solicitações de upload, pesquisa e visualização) que chegam a cada segundo.
Deve haver um balanceador de carga para distribuir efetivamente a carga de trabalho entre os vários servidores, pois há vários servidores envolvidos.
A Netflix emprega hashing constante para distribuir cargas entre os servidores porque pode lidar com falhas de servidor e acomodar a instalação de servidores adicionais com facilidade.
Como a popularidade de cada vídeo varia, os servidores reais que hospedam esses filmes podem sofrer uma carga desigual. Usando redirecionamentos HTTP dinâmicos, que permitem que um servidor ocupado desvie uma nova solicitação para um servidor aberto, podemos corrigir esse problema.
Considerações ao desenvolver um aplicativo de streaming de vídeo
Encontre e desenvolva seu nicho
Com tantos tipos diferentes de materiais disponíveis, desde entretenimento até educação e fitness, é fundamental construir um diferencial com uma especialidade especializada. Você pode criar uma plataforma para documentários ou filmes independentes.
A monetização do aplicativo
A interrupção dos padrões tradicionais de monetização pode resultar em inovação e crescimento. Os planos devem sempre ser adaptados ao público-alvo.
Como os operadores históricos já monopolizaram o mercado, você pode tentar monetizar associações gratuitas com anúncios ou colocação de produtos.
Junto com isso, se você deseja construir uma plataforma global de serviço de streaming, deve considerar as necessidades de várias moedas.
Melhor Experiência
O desempenho do programa deve ser aprimorado para circunstâncias de ponta, como internet lenta ou usuários com acesso restrito.
Streaming de vídeos
A Netflix não apenas transmite conteúdo, mas também usa técnicas de engenharia de usuário e sugestões personalizadas para manter os usuários conectados ao serviço.
Planeje estabelecer um serviço de streaming semelhante ao Netflix com ênfase em análise de dados e personalização do usuário.
Gerenciando as muitas funções do aplicativo
No aplicativo Netflix, a visualização do usuário é simplesmente uma das várias funções do usuário. O planejamento é necessário para uma variedade de usuários e seus acessos, incluindo administrador, proprietário do vídeo, parceiros, moderadores etc.
Conclusão
Concluindo, é assim que serviços de streaming de vídeo como Netflix, YouTube e outros vídeos integrados os mantêm rastreados e os mostram a milhões de consumidores.
Embora cada um desses aplicativos possa ter alguns recursos adicionais que os diferenciam, a funcionalidade fundamental é baseada nos mesmos algoritmos.
Fiz o meu melhor para fornecer uma visão geral da arquitetura do sistema de serviço de streaming, mas há muito mais acontecendo em segundo plano.
Eu realmente espero que você ache esse conhecimento valioso e faça uso dele.
Deixe um comentário