Qual é a arquitetura do YouTube?
A arquitectura do Youtube's pode ser bastante complicada agora pois's já é um sistema bastante grande. Acho que este artigo tem uma boa visão geral sobre a arquitetura do Youtube's.>br>No entanto, eu acho que muitas pessoas estão curiosas sobre como várias decisões de design foram tomadas para o Youtube. Por exemplo, como armazenar vídeos para acesso rápido? Como desenhar a sua base de dados? Como dimensionar o sistema?
>br>I'gostaria de falar brevemente sobre alguns destes tópicos e você pode verificar Como Projetar o Youtube I e Como Projetar o Youtube II para mais informações.
>br>Armazenamento e modelo de dados
Se você está usando uma base de dados relacional como o MySQL, projetar o esquema de dados pode ser simples. E na realidade, o Youtube usa o MySQL como sua base de dados principal desde o início e funciona muito bem.
>br>Primeiro e acima de tudo, precisamos definir o modelo do usuário, que pode ser armazenado em uma única tabela incluindo e-mail, nome, dados de registro, informações de perfil e assim por diante. Outra abordagem comum é manter os dados do usuário em duas tabelas - uma para informações relacionadas à autenticação como e-mail, senha, nome, data de registro, etc. e a outra para informações adicionais de perfil como endereço, idade e assim por diante.
O segundo modelo principal é o vídeo. Um vídeo contém muitas informações incluindo meta dados (título, descrição, tamanho, etc.), arquivo de vídeo, comentários, contagens de visualização, como contagens e assim por diante. Aparentemente, informações básicas do vídeo devem ser mantidas em tabelas separadas para que possamos primeiro ter uma tabela de vídeo.
>br>A relação autor-vídeo será outra tabela para mapear o id do usuário para o id do vídeo. E a relação usuário-vídeo também pode ser uma tabela separada. A idéia aqui é a normalização da base de dados - organizando as colunas e tabelas para reduzir a redundância de dados e melhorar a integridade dos dados.
>br>Vídeo e armazenamento de imagens
Uma das abordagens mais comuns é a utilização de CDN (Content delivery network). Em suma, CDN é uma rede distribuída globalmente de servidores proxy implantados em múltiplos centros de dados. O objetivo de um CDN é servir conteúdo aos usuários finais com alta disponibilidade e alto desempenho. É uma espécie de rede de terceiros e muitas empresas estão armazenando arquivos estáticos em CDN hoje.
>br> O maior benefício de usar CDN é que CDN replica conteúdo em múltiplos lugares para que haja uma maior chance do conteúdo estar mais próximo do usuário, com menos lúpulos, e o conteúdo será executado em uma rede mais amigável. Além disso, CND cuida de questões como escalabilidade e você só precisa pagar pelo serviço.
>br>Vídeos populares de cauda longa VS
Se você pensou que a CDN é a solução definitiva, então você está completamente errado. Dado o número de vídeos que o Youtube tem hoje (819.417.600 horas de vídeo), será extremamente caro hospedar todos eles em CDN, especialmente a maioria dos vídeos são de cauda longa, que são vídeos com apenas 1-20 visualizações por dia.
>br>No entanto, uma das coisas mais interessantes sobre a Internet é que, normalmente, são os conteúdos de cauda longa que atraem a maioria dos usuários. A razão é simples - esses conteúdos populares podem ser encontrados em qualquer lugar e apenas coisas de cauda longa tornam o produto especial.
>br> Voltando ao problema de armazenamento. Uma abordagem simples é hospedar vídeos populares em CDN e vídeos menos populares são armazenados em nossos próprios servidores por localização. Isto tem um par de vantagens:
- Vídeos populares são vistos por um grande número de audiências em diferentes localizações, que é o que o CND tem de bom. Ele replica o conteúdo em vários lugares para que seja mais provável que sirva o vídeo de uma rede próxima e amigável.
- Vídeos de cauda longa são normalmente consumidos por um grupo particular de pessoas e se você puder prever com antecedência, é possível armazenar esses conteúdos de forma eficiente.
Artigos semelhantes
- Um Samsung Galaxy Tab S6 Lite pode ser usado em estudos de arquitetura por estudantes de arquitetura?
- O que é o m.YouTube? Quando eu estava no YouTube no meu laptop, ele mudou para m.YouTube e quando eu digito www.YouTube.com ele muda para m.YouTube.
- Qual é a arquitetura de Kubernetes?
- Em termos de desempenho por unidade de consumo de energia, qual arquitetura de CPU é melhor, ARM ou x86?