Plataforma de vídeos UOLMais
Load Balacing + Proxy + Cache de Arquivos
George Vieira Jr – gvieira@uolinc.com
Plataforma de Vídeos UOLMais 22/04/2012
Agenda
•O que é o UOLMais
•Problemas do passado
•Soluções avaliadas
•Premissas e d...
Plataforma de Vídeos UOLMais 22/04/2012
UOLMais
• Plataforma de conteúdo multimídia do UOL
●
Vídeo, Fotos, Áudio, Slides, ...
Plataforma de Vídeos UOLMais 22/04/2012
Plataforma de Vídeos UOLMais 22/04/2012
•Arquitetura antiga
●
Apache + Squid
Plataforma de Vídeos UOLMais 22/04/2012
Características do Sistema
•Variações de tamanhos de arquivos de 5 MB a 4 GB
•Perf...
Plataforma de Vídeos UOLMais 22/04/2012
O slide obrigatório sobre Longtail
Plataforma de Vídeos UOLMais 22/04/2012
Problemas – Longtail
•Longtail acentuado
●
64% das mídias são chamadas apenas 1 ve...
Plataforma de Vídeos UOLMais 22/04/2012
0
10000
20000
30000
40000
50000
60000
70000
80000
90000
Quantidade de Requests
Mes...
Plataforma de Vídeos UOLMais 22/04/2012
Soluções Avaliadas
●
Disk Cache grava em hash
Nginx
●
Seek não funciona com proxy
...
Plataforma de Vídeos UOLMais 22/04/2012
Premissas e Desafios
•Não deixar vídeo “quente” sair do cache
•Aliviar carga no st...
Plataforma de Vídeos UOLMais 22/04/2012
Solução UOL
Por que não agrupar as boas
características de cada solução em
uma úni...
Plataforma de Vídeos UOLMais 22/04/2012
Resultados
•Queda de IO nos storages
Início da migração ->
(Fevereiro 2012)
Hoje -...
Plataforma de Vídeos UOLMais 22/04/2012
Resultados
•Hit Rate Alto
Antes da migração ->
(Agosto 2011)
Hoje ->
Resultados
Plataforma de Vídeos UOLMais 22/04/2012
Resultados
•Clientes
●
Assistem a todos os tipos de mídia com qualidade
•Produção
...
Plataforma de Vídeos UOLMais 22/04/2012
Olhando debaixo do capô
Revelando a “mágica”
Plataforma de Vídeos UOLMais 22/04/2012
Roteiro
croupier
Plataforma de Vídeos UOLMais 22/04/2012
Storage 1
(Spare)
Cenário Inicial
browser
Squid 1 Squid 2 Squid 3
...
DNS
Storage ...
Plataforma de Vídeos UOLMais 22/04/2012
Croupier – Mudança na arquitetura
browser
Cache 1 Cache 2 Cache N
...
API do playe...
Plataforma de Vídeos UOLMais 22/04/2012
Regra de distribuição
• Permite configurar distribuição da carga por máquina (nó)
...
Plataforma de Vídeos UOLMais 22/04/2012
Plataforma de Vídeos UOLMais 22/04/2012
Roteiro
balaiobalaio
Plataforma de Vídeos UOLMais 22/04/2012
-Problema do “cobertor curto” com as demais soluções tentadas
●
Experiência para c...
Plataforma de Vídeos UOLMais 22/04/2012
Balaio – Níveis de cache
Old
Young
Popular
HD
RAMDISK
RAMDISK
video.mp4.seg1
video...
Plataforma de Vídeos UOLMais 22/04/2012
Internet
Balaio – Segmentação de arquivos
video.mp4
file server
(apache)
video.mp4...
Plataforma de Vídeos UOLMais 22/04/2012
Balaio – Screenshot
Balaio – Interface de monitoração (por máquina)
Plataforma de Vídeos UOLMais 22/04/2012
Balaio – Screenshot
Balaio – Vantagens
• Requests de cliente “colapsados” pro back...
Perguntas?
Plataforma de vídeos do UOL : Desenvolvimento de Cache+Proxy de alta performancePlataforma videosuol mais
Upcoming SlideShare
Loading in …5
×

Plataforma de vídeos do UOL : Desenvolvimento de Cache+Proxy de alta performancePlataforma videosuol mais

738 views

Published on

Essa palestra apresenta a plataforma de vídeos do UOL, projetada para atender à grande audiência de todo o portal, bem como seus parceiros, com baixo custo e alta disponibilidade. Descrevemos a abordagem técnica utilizada para desenvolver um servidor HTTP específico para vídeos em download progressivo: o “Balaio”.



Contamos o histórico tecnológico da plataforma desde 2007: quais soluções de mercado eram anteriormente adotadas, os pontos fortes e fracos de cada solução – e os principais motivos que nos levaram a desenvolver uma aplicação internamente, reduzindo e especializando o escopo de uma tarefa conhecida que é servir arquivos por HTTP.



São também explicadas a estratégia de balanceamento de carga, a distribuição lógica e física das aplicações, as técnicas para caching de objetos, os motivos para se ter adotado Java e os frameworks utilizados, além dos resultados alcançados.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
738
On SlideShare
0
From Embeds
0
Number of Embeds
48
Actions
Shares
0
Downloads
8
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Plataforma de vídeos do UOL : Desenvolvimento de Cache+Proxy de alta performancePlataforma videosuol mais

  1. 1. Plataforma de vídeos UOLMais Load Balacing + Proxy + Cache de Arquivos George Vieira Jr – gvieira@uolinc.com
  2. 2. Plataforma de Vídeos UOLMais 22/04/2012 Agenda •O que é o UOLMais •Problemas do passado •Soluções avaliadas •Premissas e desafios para o sistema •Solução UOL ● Resultados ● Croupier ● Balaio
  3. 3. Plataforma de Vídeos UOLMais 22/04/2012 UOLMais • Plataforma de conteúdo multimídia do UOL ● Vídeo, Fotos, Áudio, Slides, Texto • mais.uol.com.br ● Administração/visualização do conteúdo ● Usuários comuns (assinantes e visitantes) ● Usuários editoriais (internos e parceiros) • tvuol.uol.com.br ● Conteúdo editorial do UOL • Parceiros UOL ● band.com.br, folha.com, TV Caras, TV Trama, etc.
  4. 4. Plataforma de Vídeos UOLMais 22/04/2012
  5. 5. Plataforma de Vídeos UOLMais 22/04/2012 •Arquitetura antiga ● Apache + Squid
  6. 6. Plataforma de Vídeos UOLMais 22/04/2012 Características do Sistema •Variações de tamanhos de arquivos de 5 MB a 4 GB •Perfil de clientes por tipo de mídia ● Banda dos usuários heterogênea ● Conexões de longa duração em um protocolo sem suporte inerente a falhas de conexão •Acesso em grande parte do acervo diariamente •Longtail •Thundering herd - Vídeos repentinamente populares •Interface com o storage é HTTP / DAV
  7. 7. Plataforma de Vídeos UOLMais 22/04/2012 O slide obrigatório sobre Longtail
  8. 8. Plataforma de Vídeos UOLMais 22/04/2012 Problemas – Longtail •Longtail acentuado ● 64% das mídias são chamadas apenas 1 vez por dia ● 73% dos requests se concentram nas 350 mídias mais vistas. 73% 27%
  9. 9. Plataforma de Vídeos UOLMais 22/04/2012 0 10000 20000 30000 40000 50000 60000 70000 80000 90000 Quantidade de Requests Meses QuantidadedeMídias Problemas – Imprevisibilidade sazonal
  10. 10. Plataforma de Vídeos UOLMais 22/04/2012 Soluções Avaliadas ● Disk Cache grava em hash Nginx ● Seek não funciona com proxy ● Arquivo precisa ser copiado inteiro antes de ser lido Lighttpd ● Seek não funciona com proxy ● Apresentou degradação na taxa de transferência com proxy ● Content-Lenght falhava com proxy •Bom ● Boa experiência com cache de imagens ● Na versão 3 só faz 1 fetch com backend Varnish •Ruim ● Não performa em disco ● Vídeos entram todos em arquivos binários (heap)
  11. 11. Plataforma de Vídeos UOLMais 22/04/2012 Premissas e Desafios •Não deixar vídeo “quente” sair do cache •Aliviar carga no storage (uso máximo 60% capacidade) •Seek •Vídeos HD (720p, 1080p) •Melhorar experiência do usuário •Concluir os pontos acima com o menor custo possível •Cache eficiente (hit-rate)
  12. 12. Plataforma de Vídeos UOLMais 22/04/2012 Solução UOL Por que não agrupar as boas características de cada solução em uma única?
  13. 13. Plataforma de Vídeos UOLMais 22/04/2012 Resultados •Queda de IO nos storages Início da migração -> (Fevereiro 2012) Hoje -> Resultados
  14. 14. Plataforma de Vídeos UOLMais 22/04/2012 Resultados •Hit Rate Alto Antes da migração -> (Agosto 2011) Hoje -> Resultados
  15. 15. Plataforma de Vídeos UOLMais 22/04/2012 Resultados •Clientes ● Assistem a todos os tipos de mídia com qualidade •Produção ● Melhor aproveitamento dos hardwares ● Redução de incidentes (~2.000 mensais para 0) ● Crescimento de tráfego em mais de 120% ● Melhor uso da capacidade de storage ● Flexibilidade para lidar em tempo real com balanceamento e thundering herd Resultados
  16. 16. Plataforma de Vídeos UOLMais 22/04/2012 Olhando debaixo do capô Revelando a “mágica”
  17. 17. Plataforma de Vídeos UOLMais 22/04/2012 Roteiro croupier
  18. 18. Plataforma de Vídeos UOLMais 22/04/2012 Storage 1 (Spare) Cenário Inicial browser Squid 1 Squid 2 Squid 3 ... DNS Storage 1 Storage 2 Storage N storage.mais.uol.com.br Autorização e distribuição round robin DNS Request pelo id da midia * Tradução de mídia por file * Validação de visibilidade * Distribuição e esparsamento no file system Proxy reverso dos files nos storagesStorage 2 (Spare) Storage N (Spare)
  19. 19. Plataforma de Vídeos UOLMais 22/04/2012 Croupier – Mudança na arquitetura browser Cache 1 Cache 2 Cache N ... API do player requisita qual servidor de cache a mídia se encontra. Croupier Usando a regra de distribuição, informa diretamente o domínio do servidor a ser acessado. videoN.mais.uol.com.br Storage 1 (Spare) Storage 1 Storage 2 Storage N Storage 2 (Spare) Storage N (Spare) Autorização e distribuição
  20. 20. Plataforma de Vídeos UOLMais 22/04/2012 Regra de distribuição • Permite configurar distribuição da carga por máquina (nó) • Busca estatísticas de carga de cada servidor • Permite segmentar tipo de vídeo x hardware específico ● Máquinas com muita capacidade de disco, recebem cache heterogêneo ● Máquinas capacidade de CPU recebem “seek” e “SSL” ● Máquinas com muita RAM e rede 10G recebem os vídeos “bombados” • Capacidade de reação ● Vídeos populares se espalham em vários nós ● Vídeos longtail são estimulados a ir sempre no mesmo nó ● Remoção de servidores em estado crítico
  21. 21. Plataforma de Vídeos UOLMais 22/04/2012
  22. 22. Plataforma de Vídeos UOLMais 22/04/2012 Roteiro balaiobalaio
  23. 23. Plataforma de Vídeos UOLMais 22/04/2012 -Problema do “cobertor curto” com as demais soluções tentadas ● Experiência para combinar o que funciona em 1 único server -Limite de banda de cada máquina (1Gb) ● Limite de download por cliente / evasive. ● Bloqueio de user-agents / referers. -Aumento da média de tamanho individual dos vídeos (vídeos HD) -Balanceamento / Monitoração. -Regras específicas para lidar com longtail e thundering herd. ● Níveis de cache conforme a audiência do vídeo. -Minimização de chamadas de fetch para o backend ● Segmentação de arquivos ● Fetch “colapsado” / download preventivo do segmento. -Foco em vídeos (conexões longas e arquivos grandes) -Ponto fraco do Java (CPU + GC) não exerce fator limitante (zero-copy). -Toda arquitetura da aplicação é assíncrona: Java NIO.2 + Netty.
  24. 24. Plataforma de Vídeos UOLMais 22/04/2012 Balaio – Níveis de cache Old Young Popular HD RAMDISK RAMDISK video.mp4.seg1 video.mp4.seg1 1 hit x hits y hits
  25. 25. Plataforma de Vídeos UOLMais 22/04/2012 Internet Balaio – Segmentação de arquivos video.mp4 file server (apache) video.mp4.seg1 balaio video.mp4.seg2 video.mp4.segN HTTP GET video.mp4 HTTP GET (Range-Request)
  26. 26. Plataforma de Vídeos UOLMais 22/04/2012 Balaio – Screenshot Balaio – Interface de monitoração (por máquina)
  27. 27. Plataforma de Vídeos UOLMais 22/04/2012 Balaio – Screenshot Balaio – Vantagens • Requests de cliente “colapsados” pro backend • “Seek” com custo de processamento muito baixo ● Primeiro acesso cria tabela de keyframes ● Demais acessos remontam header e custo de CPU é o custo de um http range-request • Redirect (HTTP 302) pra outro server, em caso de servidor em estado critico, ou servidor vir direto via Round-Robin DNS • Baixa latência – novo paradigma + arquivos pequenos • Alta escalabilidade horizontal • Quanto maior o thundering heard, melhor • Controle de banda adaptativo por bitrate
  28. 28. Perguntas?

×