SlideShare a Scribd company logo
Globo.com’s Live
Video Platform
for FIFA World Cup 14
09/23/15
#nginx #nginxconf
an amazing teamwork
Leandro
Moreira
other teamsDaniel
Martins
Flávio
Ribeiro
Juarez
Bochi
Hugo
Roque
Robson
Soares
Rafael
Borsani
Bernardo
Camilo
Lucas
Mundim
Juan
Almeida
more people
streaming rights for Brazil only
Agenda (4+ years of work)
2010 Architecture for FIFA World Cup 10
2012 Mobile support
2013 HLS adoption
2014 DVR
2014 Waiting room
2014 FIFA World Cup results
2015 Recap & Next steps
architecture in 2010
#nginx #nginxconf
{2010} in the beginning
encoderh264+aacrtmptcp
h264+aacrtmptcp
flash player
firewall
1935
1º
2º3º
4º
RTMP
{2010} good part
small delay (2-5s)
{2010} issue :: instrumentation
tail -f
kill -9
ps aux
{2010} issue :: scalability
$$$$$
{2010} issue :: scalability
{2010} some data from FIFA10
● ~= 285k simult. users *
● max bitrate 800 Kbps
*peak
mobile support
#nginx #nginxconf
{2012} and then multi-devices...
hls
h264+aacrtmptcp
h264+aacrtmptcp
h264+aacrtmptcp
hls
{2012} how does HLS work?
seg1.ts
seg2.ts
seg3.ts
seg4.ts
240p.m3u8
480p.m3u8
720p.m3u8
seg1.ts
seg2.ts
seg3.ts
seg4.ts
seg1.ts
seg2.ts
seg3.ts
seg4.ts
1 - GET /variant.m3u8 (text)
2 - GET /720p.m3u8 (text)
240p.m3u8
variant.m3u8
480p.m3u8 720p.m3u8
3 - GET /seg3.ts (video)
4 - GET /seg4.ts (video)
5 - GET /720p.m3u8 (text)
6 - GET /seg5.ts (video)
7 - GET /seg6.ts (video)
8 - ...
http
http
seg3.ts
seg4.ts
seg5.ts
seg6.ts
seg3.ts
seg4.ts
seg5.ts
seg6.ts
seg3.ts
seg4.ts
seg5.ts
seg6.ts
{2012} first hls solution
encoderh264+aacrtmptcp
h264+aachttptcp
flash player
2º3º
5º
4º
android
ios
1º
HTTP
{2012} generation and distribution
rtmp
video
playlists
files
location ~ /hls {
root "/vol/hls/";
}
dest = "/vol/hls";
http
BEFE segmenter
{2012} first solution architecture
BEFE LB SELB LB
auth & cache mostly cache hls generation
upstream upstream
http
HLS adoption
#nginx #nginxconf
{2012} one protocol to rule them all
{2013} buffering hls x rtmp
6x less buffering with HLS
{2013} instrumentation
Graphite
● status code
● request t.
● cache hit
● cpu usage
● memory
● buffer rate
● bitrate
time-series data
graph api
http
enqueue
dequeuemetric x t
snmp
metric x t
agents
{2013} sauron
Graphite
{2014} caching configuration
don’t forget to: proxy_cache_use_stale updating
011011100
110011101
101001011
011100111
1000
video0.ts
video0.ts expired
UPDATING
FE BE
proxy_cache_lock
{2014} OS fine tuning
{2014} OS fine tuning
19Gpbs maxconn: 70k, cpu affinity
15Gpbs maxconn: 40k, cpu affinity
12Gpbs maxconn: 25k, irqbalance
packet loss
4Gbps, no fine tuning
*each machine has 2 NIC bonded (10GB each one)
{2014} what we’ve got here is
Scalabilityport:80 UX Instrumentation
2G
4G
Wifi
1080p
720p
320p
Caching
{2014} farm size
FE: 80 nodes
24 cores 64 GB 1TB
10 Gbps 10 Gbps
BE: 6 nodes
SE: 2 nodes
DVR
#nginx #nginxconf
FIFA 2014 World Cup Brasil
{2014} what is DVR for hls?
/720p.m3u8
#EXTM3U
#EXT-X-TARGETDURATION:10
#EXT-X-VERSION:3
#EXT-X-MEDIA-SEQUENCE:1
#EXTINF:5,
seg1.ts
#EXTINF:5,
seg2.ts
#EXTINF:5,
seg3.ts
/720p.m3u8
#EXTM3U
#EXT-X-TARGETDURATION:10
#EXT-X-VERSION:3
#EXT-X-MEDIA-SEQUENCE:1
#EXTINF:5,
seg1.ts
#EXTINF:5,
seg2.ts
#EXTINF:5,
seg3.ts
#EXTINF:5,
seg4.ts
#EXTINF:5,
seg5.ts
#EXTINF:5,
seg6.ts
#EXTINF:5,
seg7.ts
#EXTINF:5,
seg8.ts
#EXTINF:5,
seg9.ts
#EXTINF:5,
seg10.ts
ingest
{2014} reviewing current solution
frontend
encoderh264+aacrtmptcp
h264+aachttptcp
flash player
2º3º
5º
4º
android
ios
1º
{2014} dvr challenges :: failover
didn’t have a failover option for DVR
#EXTM3U
#EXT-X-TARGETDURATION:10
#EXT-X-VERSION:3
#EXT-X-MEDIA-SEQUENCE:10
#EXTINF:5,
seg10.ts
#EXTINF:5,
seg11.ts
#EXTINF:5,
seg12.ts
#EXTINF:5,
seg13.ts
#EXTINF:5,
seg14.ts
#EXTINF:5,
seg15.ts
#EXTM3U
#EXT-X-TARGETDURATION:10
#EXT-X-VERSION:3
#EXT-X-MEDIA-SEQUENCE:1
#EXTINF:5,
seg1.ts
{2014} dvr challenges :: storage
2h * 60m * 60s / 5s * 4.5mb ~= 6.4GB
}1.6MB 1.1MB 0.8MB 0.5MB 0.3MB 0.1MB
4.5MB
per 5s
2 games + 4 other streams ~= 38.4GB
02:00:0000:00:00
{2014} redis as a datastore
ingest
embed-script: fetch and serve hls
frontend
daemon: mon file change and save hls
{2014} Brazil’s general election
too many simultaneous live streams
{2014} from redis to cassandra
ingest
embed-script: fetch and serve hls
frontend
daemon: mon file change and save hls
waiting room
#nginx #nginxconf
{2014} multihoming (anycast)
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
{2014} user’s bandwidth
ISP X
ISP Y
20Gbps
5Gbps
IXP
ISP K
80Gbps
8Gbps
FIFA World Cup 2014 results
#nginx #nginxconf
FIFA 2014 World Cup results
FIFA 2014 World Cup Brazil data
● > 500k simult. users (peak 1 game)
● ~= 125.000 video req/s (peak 1 game)
● > 640 Gbps (peak 1 game)
FIFA 2014 World Cup Brazil data
FIFA 2014 World Cup Brazil data
● ~= 1600 watched years (sum all)
● > 40M video views (sum all)
● ~= avg 6 Gbps, max 19 Gbps
● ~= cpu usage max 10% (per node, FE)
● ~= avg bitrate 480 Kbps (crowded)
● ~= avg bitrate 1864 Kbps (less crowded)
FIFA 2014 World Cup Brazil data
Recap and next steps
#nginx #nginxconf
● video streaming:
○ delivery and caching
○ geolocation (geofencing)
○ authorization / authentication
● microservices
○ playlist generation
○ waiting room
○ streams per account locking system
Nginx usage
is amazing
Lua was made in Brazil :)
TDD with busted
easier to develop
performance near C (lang)
OSS from this history
m3u8 parser
cassandra
driver
clappr
evostream
api
live_thumb
nginx-audio-track-module
BemTV
iprange
summary and future
2010
FIFA
2012
BBB
2014
FIFA
Elections
● hls
● http
● flash
● rtmp
● hls
● http
● dvr
2016
Olympic
Games
● dash ???
● ingest ???
● 4k ???
Questions?
THANK YOU!
leandromoreira.com.br
jbochi.me

More Related Content

What's hot

How we do python
How we do pythonHow we do python
How we do python
Brice Laurencin
 
Brightcove live tech overview
Brightcove live tech overviewBrightcove live tech overview
Brightcove live tech overview
Jordi Cenzano
 
Undo tech overview_201410
Undo tech overview_201410Undo tech overview_201410
Undo tech overview_201410
gregthelaw
 
KDE Plasma Develop Intro
KDE Plasma Develop IntroKDE Plasma Develop Intro
KDE Plasma Develop Introcsslayer
 
Drupal hhvm benchmark
Drupal hhvm benchmarkDrupal hhvm benchmark
Drupal hhvm benchmark
Le Thanh Sang
 
EclipseOMRBuildingBlocks4Polyglot_TURBO18
EclipseOMRBuildingBlocks4Polyglot_TURBO18EclipseOMRBuildingBlocks4Polyglot_TURBO18
EclipseOMRBuildingBlocks4Polyglot_TURBO18
Xiaoli Liang
 
OVHcloud TechTalks - ML serving
OVHcloud TechTalks - ML servingOVHcloud TechTalks - ML serving
OVHcloud TechTalks - ML serving
OVHcloud
 

What's hot (8)

How we do python
How we do pythonHow we do python
How we do python
 
Brightcove live tech overview
Brightcove live tech overviewBrightcove live tech overview
Brightcove live tech overview
 
Undo tech overview_201410
Undo tech overview_201410Undo tech overview_201410
Undo tech overview_201410
 
Readme
ReadmeReadme
Readme
 
KDE Plasma Develop Intro
KDE Plasma Develop IntroKDE Plasma Develop Intro
KDE Plasma Develop Intro
 
Drupal hhvm benchmark
Drupal hhvm benchmarkDrupal hhvm benchmark
Drupal hhvm benchmark
 
EclipseOMRBuildingBlocks4Polyglot_TURBO18
EclipseOMRBuildingBlocks4Polyglot_TURBO18EclipseOMRBuildingBlocks4Polyglot_TURBO18
EclipseOMRBuildingBlocks4Polyglot_TURBO18
 
OVHcloud TechTalks - ML serving
OVHcloud TechTalks - ML servingOVHcloud TechTalks - ML serving
OVHcloud TechTalks - ML serving
 

Similar to nginx.conf - globo.com's live video platform for fifa world cup 14

Video and DICOM: Today and future
Video and DICOM: Today and futureVideo and DICOM: Today and future
Video and DICOM: Today and future
IRT b-com
 
Introduction to Transcoding: Tools and Processes
Introduction to Transcoding: Tools and ProcessesIntroduction to Transcoding: Tools and Processes
Introduction to Transcoding: Tools and ProcessesPrestoCentre
 
Hikvision 6467 dm device
Hikvision 6467 dm deviceHikvision 6467 dm device
Hikvision 6467 dm deviceBenjie Fabro
 
Secrets to Optimizing Your Live Ops | Scott Humphries
Secrets to Optimizing Your Live Ops | Scott HumphriesSecrets to Optimizing Your Live Ops | Scott Humphries
Secrets to Optimizing Your Live Ops | Scott Humphries
Jessica Tams
 
A Japanese Way to Maintain Constant Quality on Streaming Chaotically Supplied...
A Japanese Way to Maintain Constant Quality on Streaming Chaotically Supplied...A Japanese Way to Maintain Constant Quality on Streaming Chaotically Supplied...
A Japanese Way to Maintain Constant Quality on Streaming Chaotically Supplied...
Yusuke Goto
 
Criteo Labs Infrastructure Tech Talk Meetup Nov. 7
Criteo Labs Infrastructure Tech Talk Meetup Nov. 7Criteo Labs Infrastructure Tech Talk Meetup Nov. 7
Criteo Labs Infrastructure Tech Talk Meetup Nov. 7
Shuo LI
 
Sony PXW-X500 Camcorder
Sony PXW-X500 CamcorderSony PXW-X500 Camcorder
Sony PXW-X500 Camcorder
AV ProfShop
 
Intel Inside–Amazing Experience Outside
Intel Inside–Amazing Experience OutsideIntel Inside–Amazing Experience Outside
Intel Inside–Amazing Experience Outside
Dell_Russia
 
Escolhendo o Processador DaVinciTM para sua Aplicação de ...
Escolhendo o Processador DaVinciTM para sua Aplicação de ...Escolhendo o Processador DaVinciTM para sua Aplicação de ...
Escolhendo o Processador DaVinciTM para sua Aplicação de ...Videoguy
 
Escolhendo o Processador DaVinciTM para sua Aplicação de ...
Escolhendo o Processador DaVinciTM para sua Aplicação de ...Escolhendo o Processador DaVinciTM para sua Aplicação de ...
Escolhendo o Processador DaVinciTM para sua Aplicação de ...Videoguy
 
H 264 Pc Based Dvr
H 264 Pc Based DvrH 264 Pc Based Dvr
H 264 Pc Based Dvr
andy
 
H 264 Pc Based Dvr
H 264 Pc Based DvrH 264 Pc Based Dvr
H 264 Pc Based Dvr
andy
 
H 264 Pc Based Dvr
H 264 Pc Based DvrH 264 Pc Based Dvr
H 264 Pc Based Dvr
andy
 
DIGIEVER NVR Pro+_DS-16300-RM Pro+ _ CCTV _ Network Video Recording _ Linux _...
DIGIEVER NVR Pro+_DS-16300-RM Pro+ _ CCTV _ Network Video Recording _ Linux _...DIGIEVER NVR Pro+_DS-16300-RM Pro+ _ CCTV _ Network Video Recording _ Linux _...
DIGIEVER NVR Pro+_DS-16300-RM Pro+ _ CCTV _ Network Video Recording _ Linux _...
Ali Shoaee
 
Streaming Media West 2017 - HTML5 Workshop
Streaming Media West 2017 - HTML5 WorkshopStreaming Media West 2017 - HTML5 Workshop
Streaming Media West 2017 - HTML5 Workshop
Erica Beavers
 
44CON 2014 - Stupid PCIe Tricks, Joe Fitzpatrick
44CON 2014 - Stupid PCIe Tricks, Joe Fitzpatrick44CON 2014 - Stupid PCIe Tricks, Joe Fitzpatrick
44CON 2014 - Stupid PCIe Tricks, Joe Fitzpatrick
44CON
 
2017 LTS catalogue
2017 LTS catalogue2017 LTS catalogue
2017 LTS catalogue
Sarah (Sisi) Deng
 

Similar to nginx.conf - globo.com's live video platform for fifa world cup 14 (20)

Video and DICOM: Today and future
Video and DICOM: Today and futureVideo and DICOM: Today and future
Video and DICOM: Today and future
 
Introduction to Transcoding: Tools and Processes
Introduction to Transcoding: Tools and ProcessesIntroduction to Transcoding: Tools and Processes
Introduction to Transcoding: Tools and Processes
 
Hikvision 6467 dm device
Hikvision 6467 dm deviceHikvision 6467 dm device
Hikvision 6467 dm device
 
Secrets to Optimizing Your Live Ops | Scott Humphries
Secrets to Optimizing Your Live Ops | Scott HumphriesSecrets to Optimizing Your Live Ops | Scott Humphries
Secrets to Optimizing Your Live Ops | Scott Humphries
 
A Japanese Way to Maintain Constant Quality on Streaming Chaotically Supplied...
A Japanese Way to Maintain Constant Quality on Streaming Chaotically Supplied...A Japanese Way to Maintain Constant Quality on Streaming Chaotically Supplied...
A Japanese Way to Maintain Constant Quality on Streaming Chaotically Supplied...
 
G
GG
G
 
Criteo Labs Infrastructure Tech Talk Meetup Nov. 7
Criteo Labs Infrastructure Tech Talk Meetup Nov. 7Criteo Labs Infrastructure Tech Talk Meetup Nov. 7
Criteo Labs Infrastructure Tech Talk Meetup Nov. 7
 
Dvr studio
Dvr studioDvr studio
Dvr studio
 
Sony PXW-X500 Camcorder
Sony PXW-X500 CamcorderSony PXW-X500 Camcorder
Sony PXW-X500 Camcorder
 
Intel Inside–Amazing Experience Outside
Intel Inside–Amazing Experience OutsideIntel Inside–Amazing Experience Outside
Intel Inside–Amazing Experience Outside
 
Escolhendo o Processador DaVinciTM para sua Aplicação de ...
Escolhendo o Processador DaVinciTM para sua Aplicação de ...Escolhendo o Processador DaVinciTM para sua Aplicação de ...
Escolhendo o Processador DaVinciTM para sua Aplicação de ...
 
Escolhendo o Processador DaVinciTM para sua Aplicação de ...
Escolhendo o Processador DaVinciTM para sua Aplicação de ...Escolhendo o Processador DaVinciTM para sua Aplicação de ...
Escolhendo o Processador DaVinciTM para sua Aplicação de ...
 
Parallel HDF5
Parallel HDF5Parallel HDF5
Parallel HDF5
 
H 264 Pc Based Dvr
H 264 Pc Based DvrH 264 Pc Based Dvr
H 264 Pc Based Dvr
 
H 264 Pc Based Dvr
H 264 Pc Based DvrH 264 Pc Based Dvr
H 264 Pc Based Dvr
 
H 264 Pc Based Dvr
H 264 Pc Based DvrH 264 Pc Based Dvr
H 264 Pc Based Dvr
 
DIGIEVER NVR Pro+_DS-16300-RM Pro+ _ CCTV _ Network Video Recording _ Linux _...
DIGIEVER NVR Pro+_DS-16300-RM Pro+ _ CCTV _ Network Video Recording _ Linux _...DIGIEVER NVR Pro+_DS-16300-RM Pro+ _ CCTV _ Network Video Recording _ Linux _...
DIGIEVER NVR Pro+_DS-16300-RM Pro+ _ CCTV _ Network Video Recording _ Linux _...
 
Streaming Media West 2017 - HTML5 Workshop
Streaming Media West 2017 - HTML5 WorkshopStreaming Media West 2017 - HTML5 Workshop
Streaming Media West 2017 - HTML5 Workshop
 
44CON 2014 - Stupid PCIe Tricks, Joe Fitzpatrick
44CON 2014 - Stupid PCIe Tricks, Joe Fitzpatrick44CON 2014 - Stupid PCIe Tricks, Joe Fitzpatrick
44CON 2014 - Stupid PCIe Tricks, Joe Fitzpatrick
 
2017 LTS catalogue
2017 LTS catalogue2017 LTS catalogue
2017 LTS catalogue
 

Recently uploaded

1比1复刻(bath毕业证书)英国巴斯大学毕业证学位证原版一模一样
1比1复刻(bath毕业证书)英国巴斯大学毕业证学位证原版一模一样1比1复刻(bath毕业证书)英国巴斯大学毕业证学位证原版一模一样
1比1复刻(bath毕业证书)英国巴斯大学毕业证学位证原版一模一样
3ipehhoa
 
Latest trends in computer networking.pptx
Latest trends in computer networking.pptxLatest trends in computer networking.pptx
Latest trends in computer networking.pptx
JungkooksNonexistent
 
Comptia N+ Standard Networking lesson guide
Comptia N+ Standard Networking lesson guideComptia N+ Standard Networking lesson guide
Comptia N+ Standard Networking lesson guide
GTProductions1
 
APNIC Foundation, presented by Ellisha Heppner at the PNG DNS Forum 2024
APNIC Foundation, presented by Ellisha Heppner at the PNG DNS Forum 2024APNIC Foundation, presented by Ellisha Heppner at the PNG DNS Forum 2024
APNIC Foundation, presented by Ellisha Heppner at the PNG DNS Forum 2024
APNIC
 
急速办(bedfordhire毕业证书)英国贝德福特大学毕业证成绩单原版一模一样
急速办(bedfordhire毕业证书)英国贝德福特大学毕业证成绩单原版一模一样急速办(bedfordhire毕业证书)英国贝德福特大学毕业证成绩单原版一模一样
急速办(bedfordhire毕业证书)英国贝德福特大学毕业证成绩单原版一模一样
3ipehhoa
 
Bridging the Digital Gap Brad Spiegel Macon, GA Initiative.pptx
Bridging the Digital Gap Brad Spiegel Macon, GA Initiative.pptxBridging the Digital Gap Brad Spiegel Macon, GA Initiative.pptx
Bridging the Digital Gap Brad Spiegel Macon, GA Initiative.pptx
Brad Spiegel Macon GA
 
Internet-Security-Safeguarding-Your-Digital-World (1).pptx
Internet-Security-Safeguarding-Your-Digital-World (1).pptxInternet-Security-Safeguarding-Your-Digital-World (1).pptx
Internet-Security-Safeguarding-Your-Digital-World (1).pptx
VivekSinghShekhawat2
 
一比一原版(CSU毕业证)加利福尼亚州立大学毕业证成绩单专业办理
一比一原版(CSU毕业证)加利福尼亚州立大学毕业证成绩单专业办理一比一原版(CSU毕业证)加利福尼亚州立大学毕业证成绩单专业办理
一比一原版(CSU毕业证)加利福尼亚州立大学毕业证成绩单专业办理
ufdana
 
JAVIER LASA-EXPERIENCIA digital 1986-2024.pdf
JAVIER LASA-EXPERIENCIA digital 1986-2024.pdfJAVIER LASA-EXPERIENCIA digital 1986-2024.pdf
JAVIER LASA-EXPERIENCIA digital 1986-2024.pdf
Javier Lasa
 
History+of+E-commerce+Development+in+China-www.cfye-commerce.shop
History+of+E-commerce+Development+in+China-www.cfye-commerce.shopHistory+of+E-commerce+Development+in+China-www.cfye-commerce.shop
History+of+E-commerce+Development+in+China-www.cfye-commerce.shop
laozhuseo02
 
test test test test testtest test testtest test testtest test testtest test ...
test test  test test testtest test testtest test testtest test testtest test ...test test  test test testtest test testtest test testtest test testtest test ...
test test test test testtest test testtest test testtest test testtest test ...
Arif0071
 
原版仿制(uob毕业证书)英国伯明翰大学毕业证本科学历证书原版一模一样
原版仿制(uob毕业证书)英国伯明翰大学毕业证本科学历证书原版一模一样原版仿制(uob毕业证书)英国伯明翰大学毕业证本科学历证书原版一模一样
原版仿制(uob毕业证书)英国伯明翰大学毕业证本科学历证书原版一模一样
3ipehhoa
 
一比一原版(SLU毕业证)圣路易斯大学毕业证成绩单专业办理
一比一原版(SLU毕业证)圣路易斯大学毕业证成绩单专业办理一比一原版(SLU毕业证)圣路易斯大学毕业证成绩单专业办理
一比一原版(SLU毕业证)圣路易斯大学毕业证成绩单专业办理
keoku
 
guildmasters guide to ravnica Dungeons & Dragons 5...
guildmasters guide to ravnica Dungeons & Dragons 5...guildmasters guide to ravnica Dungeons & Dragons 5...
guildmasters guide to ravnica Dungeons & Dragons 5...
Rogerio Filho
 
How to Use Contact Form 7 Like a Pro.pptx
How to Use Contact Form 7 Like a Pro.pptxHow to Use Contact Form 7 Like a Pro.pptx
How to Use Contact Form 7 Like a Pro.pptx
Gal Baras
 
1.Wireless Communication System_Wireless communication is a broad term that i...
1.Wireless Communication System_Wireless communication is a broad term that i...1.Wireless Communication System_Wireless communication is a broad term that i...
1.Wireless Communication System_Wireless communication is a broad term that i...
JeyaPerumal1
 
Multi-cluster Kubernetes Networking- Patterns, Projects and Guidelines
Multi-cluster Kubernetes Networking- Patterns, Projects and GuidelinesMulti-cluster Kubernetes Networking- Patterns, Projects and Guidelines
Multi-cluster Kubernetes Networking- Patterns, Projects and Guidelines
Sanjeev Rampal
 
BASIC C++ lecture NOTE C++ lecture 3.pptx
BASIC C++ lecture NOTE C++ lecture 3.pptxBASIC C++ lecture NOTE C++ lecture 3.pptx
BASIC C++ lecture NOTE C++ lecture 3.pptx
natyesu
 
一比一原版(LBS毕业证)伦敦商学院毕业证成绩单专业办理
一比一原版(LBS毕业证)伦敦商学院毕业证成绩单专业办理一比一原版(LBS毕业证)伦敦商学院毕业证成绩单专业办理
一比一原版(LBS毕业证)伦敦商学院毕业证成绩单专业办理
eutxy
 
This 7-second Brain Wave Ritual Attracts Money To You.!
This 7-second Brain Wave Ritual Attracts Money To You.!This 7-second Brain Wave Ritual Attracts Money To You.!
This 7-second Brain Wave Ritual Attracts Money To You.!
nirahealhty
 

Recently uploaded (20)

1比1复刻(bath毕业证书)英国巴斯大学毕业证学位证原版一模一样
1比1复刻(bath毕业证书)英国巴斯大学毕业证学位证原版一模一样1比1复刻(bath毕业证书)英国巴斯大学毕业证学位证原版一模一样
1比1复刻(bath毕业证书)英国巴斯大学毕业证学位证原版一模一样
 
Latest trends in computer networking.pptx
Latest trends in computer networking.pptxLatest trends in computer networking.pptx
Latest trends in computer networking.pptx
 
Comptia N+ Standard Networking lesson guide
Comptia N+ Standard Networking lesson guideComptia N+ Standard Networking lesson guide
Comptia N+ Standard Networking lesson guide
 
APNIC Foundation, presented by Ellisha Heppner at the PNG DNS Forum 2024
APNIC Foundation, presented by Ellisha Heppner at the PNG DNS Forum 2024APNIC Foundation, presented by Ellisha Heppner at the PNG DNS Forum 2024
APNIC Foundation, presented by Ellisha Heppner at the PNG DNS Forum 2024
 
急速办(bedfordhire毕业证书)英国贝德福特大学毕业证成绩单原版一模一样
急速办(bedfordhire毕业证书)英国贝德福特大学毕业证成绩单原版一模一样急速办(bedfordhire毕业证书)英国贝德福特大学毕业证成绩单原版一模一样
急速办(bedfordhire毕业证书)英国贝德福特大学毕业证成绩单原版一模一样
 
Bridging the Digital Gap Brad Spiegel Macon, GA Initiative.pptx
Bridging the Digital Gap Brad Spiegel Macon, GA Initiative.pptxBridging the Digital Gap Brad Spiegel Macon, GA Initiative.pptx
Bridging the Digital Gap Brad Spiegel Macon, GA Initiative.pptx
 
Internet-Security-Safeguarding-Your-Digital-World (1).pptx
Internet-Security-Safeguarding-Your-Digital-World (1).pptxInternet-Security-Safeguarding-Your-Digital-World (1).pptx
Internet-Security-Safeguarding-Your-Digital-World (1).pptx
 
一比一原版(CSU毕业证)加利福尼亚州立大学毕业证成绩单专业办理
一比一原版(CSU毕业证)加利福尼亚州立大学毕业证成绩单专业办理一比一原版(CSU毕业证)加利福尼亚州立大学毕业证成绩单专业办理
一比一原版(CSU毕业证)加利福尼亚州立大学毕业证成绩单专业办理
 
JAVIER LASA-EXPERIENCIA digital 1986-2024.pdf
JAVIER LASA-EXPERIENCIA digital 1986-2024.pdfJAVIER LASA-EXPERIENCIA digital 1986-2024.pdf
JAVIER LASA-EXPERIENCIA digital 1986-2024.pdf
 
History+of+E-commerce+Development+in+China-www.cfye-commerce.shop
History+of+E-commerce+Development+in+China-www.cfye-commerce.shopHistory+of+E-commerce+Development+in+China-www.cfye-commerce.shop
History+of+E-commerce+Development+in+China-www.cfye-commerce.shop
 
test test test test testtest test testtest test testtest test testtest test ...
test test  test test testtest test testtest test testtest test testtest test ...test test  test test testtest test testtest test testtest test testtest test ...
test test test test testtest test testtest test testtest test testtest test ...
 
原版仿制(uob毕业证书)英国伯明翰大学毕业证本科学历证书原版一模一样
原版仿制(uob毕业证书)英国伯明翰大学毕业证本科学历证书原版一模一样原版仿制(uob毕业证书)英国伯明翰大学毕业证本科学历证书原版一模一样
原版仿制(uob毕业证书)英国伯明翰大学毕业证本科学历证书原版一模一样
 
一比一原版(SLU毕业证)圣路易斯大学毕业证成绩单专业办理
一比一原版(SLU毕业证)圣路易斯大学毕业证成绩单专业办理一比一原版(SLU毕业证)圣路易斯大学毕业证成绩单专业办理
一比一原版(SLU毕业证)圣路易斯大学毕业证成绩单专业办理
 
guildmasters guide to ravnica Dungeons & Dragons 5...
guildmasters guide to ravnica Dungeons & Dragons 5...guildmasters guide to ravnica Dungeons & Dragons 5...
guildmasters guide to ravnica Dungeons & Dragons 5...
 
How to Use Contact Form 7 Like a Pro.pptx
How to Use Contact Form 7 Like a Pro.pptxHow to Use Contact Form 7 Like a Pro.pptx
How to Use Contact Form 7 Like a Pro.pptx
 
1.Wireless Communication System_Wireless communication is a broad term that i...
1.Wireless Communication System_Wireless communication is a broad term that i...1.Wireless Communication System_Wireless communication is a broad term that i...
1.Wireless Communication System_Wireless communication is a broad term that i...
 
Multi-cluster Kubernetes Networking- Patterns, Projects and Guidelines
Multi-cluster Kubernetes Networking- Patterns, Projects and GuidelinesMulti-cluster Kubernetes Networking- Patterns, Projects and Guidelines
Multi-cluster Kubernetes Networking- Patterns, Projects and Guidelines
 
BASIC C++ lecture NOTE C++ lecture 3.pptx
BASIC C++ lecture NOTE C++ lecture 3.pptxBASIC C++ lecture NOTE C++ lecture 3.pptx
BASIC C++ lecture NOTE C++ lecture 3.pptx
 
一比一原版(LBS毕业证)伦敦商学院毕业证成绩单专业办理
一比一原版(LBS毕业证)伦敦商学院毕业证成绩单专业办理一比一原版(LBS毕业证)伦敦商学院毕业证成绩单专业办理
一比一原版(LBS毕业证)伦敦商学院毕业证成绩单专业办理
 
This 7-second Brain Wave Ritual Attracts Money To You.!
This 7-second Brain Wave Ritual Attracts Money To You.!This 7-second Brain Wave Ritual Attracts Money To You.!
This 7-second Brain Wave Ritual Attracts Money To You.!
 

nginx.conf - globo.com's live video platform for fifa world cup 14

  • 1. Globo.com’s Live Video Platform for FIFA World Cup 14 09/23/15 #nginx #nginxconf
  • 2. an amazing teamwork Leandro Moreira other teamsDaniel Martins Flávio Ribeiro Juarez Bochi Hugo Roque Robson Soares Rafael Borsani Bernardo Camilo Lucas Mundim Juan Almeida more people
  • 3.
  • 4. streaming rights for Brazil only
  • 5. Agenda (4+ years of work) 2010 Architecture for FIFA World Cup 10 2012 Mobile support 2013 HLS adoption 2014 DVR 2014 Waiting room 2014 FIFA World Cup results 2015 Recap & Next steps
  • 7. {2010} in the beginning encoderh264+aacrtmptcp h264+aacrtmptcp flash player firewall 1935 1º 2º3º 4º RTMP
  • 8. {2010} good part small delay (2-5s)
  • 9. {2010} issue :: instrumentation tail -f kill -9 ps aux
  • 10. {2010} issue :: scalability $$$$$
  • 11. {2010} issue :: scalability
  • 12. {2010} some data from FIFA10 ● ~= 285k simult. users * ● max bitrate 800 Kbps *peak
  • 14. {2012} and then multi-devices... hls h264+aacrtmptcp h264+aacrtmptcp h264+aacrtmptcp hls
  • 15. {2012} how does HLS work? seg1.ts seg2.ts seg3.ts seg4.ts 240p.m3u8 480p.m3u8 720p.m3u8 seg1.ts seg2.ts seg3.ts seg4.ts seg1.ts seg2.ts seg3.ts seg4.ts 1 - GET /variant.m3u8 (text) 2 - GET /720p.m3u8 (text) 240p.m3u8 variant.m3u8 480p.m3u8 720p.m3u8 3 - GET /seg3.ts (video) 4 - GET /seg4.ts (video) 5 - GET /720p.m3u8 (text) 6 - GET /seg5.ts (video) 7 - GET /seg6.ts (video) 8 - ... http http seg3.ts seg4.ts seg5.ts seg6.ts seg3.ts seg4.ts seg5.ts seg6.ts seg3.ts seg4.ts seg5.ts seg6.ts
  • 16. {2012} first hls solution encoderh264+aacrtmptcp h264+aachttptcp flash player 2º3º 5º 4º android ios 1º HTTP
  • 17. {2012} generation and distribution rtmp video playlists files location ~ /hls { root "/vol/hls/"; } dest = "/vol/hls"; http BEFE segmenter
  • 18. {2012} first solution architecture BEFE LB SELB LB auth & cache mostly cache hls generation upstream upstream http
  • 20. {2012} one protocol to rule them all
  • 21. {2013} buffering hls x rtmp 6x less buffering with HLS
  • 22. {2013} instrumentation Graphite ● status code ● request t. ● cache hit ● cpu usage ● memory ● buffer rate ● bitrate time-series data graph api http enqueue dequeuemetric x t snmp metric x t agents
  • 24. {2014} caching configuration don’t forget to: proxy_cache_use_stale updating 011011100 110011101 101001011 011100111 1000 video0.ts video0.ts expired UPDATING FE BE proxy_cache_lock
  • 25. {2014} OS fine tuning
  • 26. {2014} OS fine tuning 19Gpbs maxconn: 70k, cpu affinity 15Gpbs maxconn: 40k, cpu affinity 12Gpbs maxconn: 25k, irqbalance packet loss 4Gbps, no fine tuning *each machine has 2 NIC bonded (10GB each one)
  • 27. {2014} what we’ve got here is Scalabilityport:80 UX Instrumentation 2G 4G Wifi 1080p 720p 320p Caching
  • 28. {2014} farm size FE: 80 nodes 24 cores 64 GB 1TB 10 Gbps 10 Gbps BE: 6 nodes SE: 2 nodes
  • 30. FIFA 2014 World Cup Brasil
  • 31. {2014} what is DVR for hls? /720p.m3u8 #EXTM3U #EXT-X-TARGETDURATION:10 #EXT-X-VERSION:3 #EXT-X-MEDIA-SEQUENCE:1 #EXTINF:5, seg1.ts #EXTINF:5, seg2.ts #EXTINF:5, seg3.ts /720p.m3u8 #EXTM3U #EXT-X-TARGETDURATION:10 #EXT-X-VERSION:3 #EXT-X-MEDIA-SEQUENCE:1 #EXTINF:5, seg1.ts #EXTINF:5, seg2.ts #EXTINF:5, seg3.ts #EXTINF:5, seg4.ts #EXTINF:5, seg5.ts #EXTINF:5, seg6.ts #EXTINF:5, seg7.ts #EXTINF:5, seg8.ts #EXTINF:5, seg9.ts #EXTINF:5, seg10.ts
  • 32. ingest {2014} reviewing current solution frontend encoderh264+aacrtmptcp h264+aachttptcp flash player 2º3º 5º 4º android ios 1º
  • 33. {2014} dvr challenges :: failover didn’t have a failover option for DVR #EXTM3U #EXT-X-TARGETDURATION:10 #EXT-X-VERSION:3 #EXT-X-MEDIA-SEQUENCE:10 #EXTINF:5, seg10.ts #EXTINF:5, seg11.ts #EXTINF:5, seg12.ts #EXTINF:5, seg13.ts #EXTINF:5, seg14.ts #EXTINF:5, seg15.ts #EXTM3U #EXT-X-TARGETDURATION:10 #EXT-X-VERSION:3 #EXT-X-MEDIA-SEQUENCE:1 #EXTINF:5, seg1.ts
  • 34. {2014} dvr challenges :: storage 2h * 60m * 60s / 5s * 4.5mb ~= 6.4GB }1.6MB 1.1MB 0.8MB 0.5MB 0.3MB 0.1MB 4.5MB per 5s 2 games + 4 other streams ~= 38.4GB 02:00:0000:00:00
  • 35. {2014} redis as a datastore ingest embed-script: fetch and serve hls frontend daemon: mon file change and save hls
  • 36. {2014} Brazil’s general election too many simultaneous live streams
  • 37. {2014} from redis to cassandra ingest embed-script: fetch and serve hls frontend daemon: mon file change and save hls
  • 39. {2014} multihoming (anycast) 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
  • 40. {2014} user’s bandwidth ISP X ISP Y 20Gbps 5Gbps IXP ISP K 80Gbps 8Gbps
  • 41.
  • 42. FIFA World Cup 2014 results #nginx #nginxconf
  • 43. FIFA 2014 World Cup results
  • 44. FIFA 2014 World Cup Brazil data
  • 45. ● > 500k simult. users (peak 1 game) ● ~= 125.000 video req/s (peak 1 game) ● > 640 Gbps (peak 1 game) FIFA 2014 World Cup Brazil data
  • 46. FIFA 2014 World Cup Brazil data ● ~= 1600 watched years (sum all) ● > 40M video views (sum all) ● ~= avg 6 Gbps, max 19 Gbps
  • 47. ● ~= cpu usage max 10% (per node, FE) ● ~= avg bitrate 480 Kbps (crowded) ● ~= avg bitrate 1864 Kbps (less crowded) FIFA 2014 World Cup Brazil data
  • 48. Recap and next steps #nginx #nginxconf
  • 49. ● video streaming: ○ delivery and caching ○ geolocation (geofencing) ○ authorization / authentication ● microservices ○ playlist generation ○ waiting room ○ streams per account locking system Nginx usage
  • 50. is amazing Lua was made in Brazil :) TDD with busted easier to develop performance near C (lang)
  • 51. OSS from this history m3u8 parser cassandra driver clappr evostream api live_thumb nginx-audio-track-module BemTV iprange
  • 52. summary and future 2010 FIFA 2012 BBB 2014 FIFA Elections ● hls ● http ● flash ● rtmp ● hls ● http ● dvr 2016 Olympic Games ● dash ??? ● ingest ??? ● 4k ???