Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

Dissecando a plataforma de vídeos da globo

408 Aufrufe

Veröffentlicht am

Veröffentlicht in: Ingenieurwesen
  • Als Erste(r) kommentieren

Dissecando a plataforma de vídeos da globo

  1. 1. A plataforma de vídeos da globo.com
  2. 2. Analisando apenas um evento de 2018
  3. 3. > 500K Usuários simultâneos (live)
  4. 4. POP SP POP RJ *intervalo
  5. 5. 422K req/s *só na cdn live de vídeos
  6. 6. 84.2 Gbps *pico de uma máquina
  7. 7. 99.3% cache hit
  8. 8. ????
  9. 9. > 1TB / dia
  10. 10. > 1PB / dia
  11. 11. 1Bi min assistidos por mês (vod)
  12. 12. Usuário consumidor Usuário produtor datastore Player CDN Ingest Plataforma de vídeos
  13. 13. datastore Player IngestCDN
  14. 14. CDN :: principais componentes
  15. 15. CDN :: o quê? player CDN GET /video1.mp4
  16. 16. CDN :: load balancing player CDN ? Least conn Round robin Hash IP ...
  17. 17. CDN :: distribuição por região SP RJ
  18. 18. ISPx ISPy ISPk SPBGP announcement 186.192.81.0/24 ISPx ISPy ISPk RJ 186.192.81.2 BGP announcement 186.192.81.0/24 PoP PoP
  19. 19. CDN :: transbordo para CDN de terceiros SP RJ 3rd party CDN A 3rd party CDN B
  20. 20. CDN :: distribuição por audiência 1k videos.globo.com v0.videos.globo.com v1.videos.globo.com v2.videos.globo.com10k 1m
  21. 21. CDN :: caching front-end back-end 1.mp4 1.mp4 1.mp4
  22. 22. CDN :: estratégia para aumentar o hit 1k videos.globo.com v0.videos.globo.com v1.videos.globo.com v2.videos.globo.com10k 1m
  23. 23. CDN :: caching multi levels https:// 1st Browser 2nd RAM 3rd SSD 4th HDD
  24. 24. CDN :: caching priorizado + vistos - vistos
  25. 25. CDN :: IO bounded NODE
  26. 26. CDN :: caching escalar IO NODE
  27. 27. CDN :: caching escalar IO proxy_cache_path /mnt/disk1/cache keys_zone=disk1:100m ...; proxy_cache_path /mnt/disk2/cache keys_zone=disk2:100m ...; proxy_cache_path /mnt/disk3/cache keys_zone=disk3:100m ...; split_clients $request_uri $cache { 33% disk1; 33% disk2; * disk3; }
  28. 28. CDN :: seja stateless stateful stateless 1x Caminho crítico
  29. 29. FE BE DS CDN :: identificar serviços mínimos *serviços importantes mas auxiliares
  30. 30. CDN :: melhorias constantes Hardware (NIC, CPU …) Kernel (Network, IO…) Application (nginx, lua…)
  31. 31. CDN :: não compre antes de testar TRY BEFORE YOU BUY
  32. 32. CDN :: roteia X % para o nó em teste
  33. 33. CDN :: métricas base latência 503, 403... taxa de erros bandausuários
  34. 34. CDN :: monitorar e aletar
  35. 35. datastore CDN IngestPlayer
  36. 36. Player :: principais componentes
  37. 37. Player :: plugins
  38. 38. Player :: plugins
  39. 39. Player :: clappr
  40. 40. Player :: fluxo API's CDN ads analytics
  41. 41. datastore Player CDN Ingest
  42. 42. Ingest / encoding :: principais componentes
  43. 43. Ingest / encoding upload packager encoding segmenter security metadata Ingest / encoding :: desafios
  44. 44. Ingest / encodingIngest / encoding :: macro visão Entrada Fila Saída Data store CDN Encoder
  45. 45. Ingest / encodingIngest / encoding :: sanitização de entrada Regras: Codec Resolução Aspecto Bitrate Frame rate ...
  46. 46. Ingest / encodingIngest / encoding :: múltiplas saídas 1080p 720p 648p 504p 360p 144p 1080p 720p 648p 504p 360p 144p 1080p 720p 648p 504p 360p 144p 0-5s 5-10s 10-15s
  47. 47. 1 video N resoluções x M formatos x K segmentos de X segundos x Y dispositivos
  48. 48. Obrigado, Perguntas? Github @leandromoreira

×