Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Dissecando a plataforma de vídeos da globo

263 views

Published on

Published in: Engineering
  • Be the first to comment

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

×