Onde ir para aprender sobre arquitetura web? Exemplo do Youtube?

4

Estou tentando criar um aplicativo da Web semelhante ao Youtube (não é uma desculpa), mas acho que não sei como o vídeo é veiculado na Internet muito bem.

Eu sei como construir aplicações web baseadas em banco de dados, mas nada como a escalabilidade do Youtube. Todos os aplicativos criados anteriormente foram executados em um servidor com os arquivos armazenados na mesma caixa do servidor da Web.

Como se dissocia o servidor de aplicativos do armazenamento de arquivos do servidor de mídia? Eu gostaria mais ou menos quatro máquinas (clusters de máquinas):

  1. Servidores de aplicativos - Apresente a página da Web, manipule os envios de usuários, vincule o flash player do usuário ao servidor de mídia correto, etc.
  2. Compartilhamento de banco de dados - armazene informações do usuário, verifique favoritos, etc.
  3. Armazenamento de arquivos - armazene os arquivos de mídia
  4. Servidores de mídia - veicule os arquivos de mídia

Como faço para juntar tudo isso? Quais tecnologias devo alavancar? Onde eu vou aprender mais sobre como arquitetar isso?

Como funciona o material flash embutido do Youtube? Quero incorporar meu flash player em outros sites e vinculá-lo à minha arquitetura.

Observação: examinei: link

Mas eu ainda não entendi como essa coisa se liga. Se alguém pode explicar em termos de alto nível como funciona tudo isso?

Existem servidores clientes dedicados rodando internamente para misturar tudo isso entre os servidores de aplicativos, armazenamento de arquivos, etc. É tudo via HTTP usando JSON, o que está acontecendo aqui!

Obrigado!

    
por splattne 14.08.2009 / 09:07

3 respostas

2

Você pode conferir o link para ver algumas coisas bem interessantes sobre esse assunto.

    
por 14.08.2009 / 15:08
1

How does one decouple the application server from the file storage from the media server?

Você usa um sistema de arquivos de cluster como o OCFS2: link

Armazenamento SAN, OCFS2, cada servidor de aplicativos monta o sistema de arquivos compartilhado por meio do iSCSI.

Uma solução mais exótica é o MogileFS, usado pelo LiveJournal: link

Felicidades

    
por 14.08.2009 / 14:14
1

Bem, como tudo se encaixa é, no entanto, você quer se encaixar realmente. Há tantas opções sobre como arquitetar um sistema do tipo que você está descrevendo, o que realmente depende é o aplicativo específico, o que você está confortável e o quanto ele realmente precisa dimensionar.

O melhor que você pode realmente fazer é dar uma olhada em todos os diferentes softwares em uso para sites altamente escaláveis, e ler tutoriais, documentação e olhar para implementações reais, se você for capaz. Dê uma olhada no software de mensagens como o ZeroMQ ou outro software baseado no AMQP. Observe os armazenamentos de dados escalonáveis que não exigem fragmentação manual e normalização de bancos de dados. Há tantas coisas sobre as quais você pode ler que lhe darão uma ideia de como tudo realmente se encaixa, e você pode ter uma boa visão panorâmica de todo um sistema.

    
por 02.09.2009 / 21:53