SlideShare ist ein Scribd-Unternehmen logo
1 von 31
WebRTC infrastructures in the large
(with experiences from real deployments)
Luis Lopez
lulop@kurento.org
IIT RTC Conference
& Expo
October 2015
Speaker
• Coordinator of Kurento.org
– FOSS project
– WebRTC Media Server
– WebRTC Media APIs
– WebRTC Cloud Infrastructure
• Software developer
• Software trainer
• Software learner
• FOSS enthusiast
http://www.kurento.org
2
http://www.kurento.org
http://twitter/@kurentoms
https://www.youtube.com/channel/UCFtGhWYqahVlzMgGNtEmKug
WebRTC infrastructures
http://www.kurento.org
3
Peer-to-Peer WebRTC Application (without media infrastructure)
WebRTC video stream
WebRTC Application based on media infrastructure
media infrastructure
Function of WebRTC infrastructures
http://www.kurento.org
4
Processing
VP8 H.264
Group Communications
Archiving
WebRTC infrastructures in the large
http://www.kurento.org
5
From the hundreds to the millions: the scalability problem
WebRTC Cloud
http://www.kurento.org
6
WebRTC cloud models
http://www.kurento.org
High flexibility
Complex
development
Lowhourly
costs
Low flexibility
Simple
development
Highhourly
costs
IaaS
PaaS
APIaaS
SaaS
No WebRTC-specific
players here
Computing
Resources
WebRTC cloud architectures
http://www.kurento.org
8
Virtual infrastructure
WebRTC Platform
WebRTC API
WebRTC Application
IaaS
PaaS
APIaaS
SaaS
No new
science
here
The science for
the scalability
problem is here
WebRTC Vs traditional WWW
Platforms: the three tiers
http://www.kurento.org
9
Application Server Container
Service Layer
Application 1 Application N…
WebRTC
Media Server
DD.BB.
Server
Signaling
Vertical scalability on monolithic
WebRTC platforms
http://www.kurento.org
10
Application Server Instance
Media Server Instance
Application 1 Application N…
Qualityofservice
Number of WebRTC legs
Typical scalability curve
for SFU media servers
~500 to 1000 in
commodity hardware
The bottleneck is here
Horizontal scalability of WebRTC
Media Servers
http://www.kurento.org
11
Application
Server
Application
Server
Application
Server
Media
Server
Media
Server
Media
Server
Media
Server
Media Resource Broker
…
…
RFC6917
Load Balancer
Media Resource Broker
• Functions
– MS registration
• MS instances register on the MRB
– MS brokering
• Query model
– AS instances query the MRB for locating a MS instance
– MRB is explicit for the AS
• In-line model
– MRB routes signaling (control requests)
– MRB is transparent for the AS
• MRB does not hold state about MS instances
– MS instances are independent
– MS instances are equivalent
– We say it’s stateless
http://www.kurento.org
12
Stateless MRB use cases
• Independent MS
– B2B calls
– WebRTC GW
– Room servers
– Media recording
– Etc.
http://www.kurento.org
13
Stateless - MRB
Application
Server
Instance
Media
Server
Instance
Media
Server
Instance
Media
Server
Instance
Media
Server
Instance
Call Call
• Amazon Web Services EC2
– Most popular public cloud
• OpenStack
– Popular public clouds (e.g. RackSpace)
– Popular for private clouds
• Deployment
– Cloud deployment templates
• CloudFormation (Amazon)
• Heat (OpenStack)
Deploying in public and private clouds
http://www.kurento.org
14
Templates
– Declarative language for
• Declaration of resources
and relationships
– Images, Computing Nodes,
Networks, Volumes, Load
Balancers, Autoscaling
groups, etc.
• Deployment
– Instantiation of resources
• Runtime
– Provisioning
– Autoscaling
http://www.kurento.org
15
Deploying in public clouds
http://www.kurento.org
16
AWS AMI / OpenStack Glance
Media Server
Image
Application
Server Image
Broker
Image
Stack definition template
AWS EC2 / OpenStack Nova
CloudFormation / HeatChef + Packer
Autoscaling
Rules
Launch
configurations
Autoscaling
Group
Autoscaling
Group
Elastic Load
Balancer
Application
Server
Instance
Application
Server
Instance
Broker
Instance
Media
Server
Instance
Media
Server
Instance
Media
Server
Instance
Source code
http://www.kurento.org
17
Experiences deploying large WebRTC
infrastructures in public clouds
• Lessons learnt: fault-resilience is hard
– AS & MRB layers
• Are stateless => use distributed cache systems
– MS layer
• Is stateful => lots of problems
http://www.kurento.org
18
Application
Server
Application
Server
Media
Server
Media
Server
Media
Server
Media
Server
Media Resource Broker
…
…
Computing Node
Lessons learnt: avoid single points of
failure
http://www.kurento.org
19
MS
MRB
Computing Node
MS
Computing Node
… MS
Elastic Load Balancer
Computing Node
MS
Computing Node
…
MRB MRB
distributed cache
The wrong way
(single point of failure)
The right way
(fault-tolerant MRB)
Lessons learnt: fault-recovery at the MS
layer
• Fault-tolerance on the MS layer
– Stateful problem
• MS instances hold specific
resources that cannot be
“serialized” to a distributed
cache:
– Specific Sockets
• Machine failure => session failure
– Our proposed solution
• Re construct the session
– Detect failure
– Notify failure
– Reconnect
http://www.kurento.org
20
MRB
Media
Server
Instance
Media
Server
Instance
Media
Server
Instance
Media
Server
Instance
Call Call
Application
Server
Instance
Failure
detection
Failure
notification
Session
reconnection
Autoscaling
http://www.kurento.org
21
Lessons learnt: lack of optimal scale-out
events and metrics
• Lessons learnt: firing scale-out events
– which metric?
– Bottleneck depends on applications: network, CPU, memory, etc.
– our recommendation: define a synthetic metric (i.e. scaling points)
and be conservative
http://www.kurento.org
22
Qualityofservice
Number of WebRTC legs
Typical scalability curve
for SFU media servers
50%
40%
Lessons learnt: scaling-in is harder
than scaling-out
• The options (none-good)
– Expose # sessions as a metric
• Depends on cloud capabilities
• AS needs to be made cloud
aware
– Session migration
• AS needs to be made cloud
aware
• Renegotiations
– Retain period
• Sub-optimal utilization
• The simplest
http://www.kurento.org
23
MRB
Application
Server
Instance
MS1 MS2 MS3 MS4
Which one would
you remove?
Limits of the (stateless) MRB
http://www.kurento.org
24
Media stream
OnetoMANY
Stateful MRB
http://www.kurento.org
25
Stateful MRB
Application
Server
Instance
Media
Server
Instance
Media
Server
Instance
Media
Server
Instance
Media
Server
Instance
Media
Server
Instance
Why?
http://www.kurento.org
26
Stateful because …
• MRB
– Must be aware of media topology
• Stateful information about MS relationships
– Request routing depends on topology
• Where to place a new viewer?
– Request routing depends on internal state
• CPU load
• QoS
• Memory
• Etc.
http://www.kurento.org
27
Experiences with stateful MRB in AWS
EC2 & OpenStack
• Lessons learned: beware of WebRTC internals
– Differentiated quality
• SVC is the solution
– but its not ready
• Plain SFU forwarding models are not an option.
– RTCP feedback of viewers with bad connectivity destroy QoE
• Simulcast may be an option
– Suppress feedback of viewers with really bad connectivity
• Layered transcoding works nicely
– But its expensive
– Churn and the generation of key-frames
• Periodic key-frame generation is an option
– In VP8 expect significant increase in BW consumption
• Layered transcoding works nicely
– But its again expensive
http://www.kurento.org
28
Experiences with stateful MRB in AWS
EC2 & OpenStack
• Lessons learned: the cloud is evil
– Placement of incoming WebRTC legs
• New science required here
– Ideas?
• Our solutions
– Count number of WebRTC legs (points mechanisms9
– Ad-hoc, hard and error prone
– Fault-resilience
• New science required here
– Ideas?
• Our solution
– Re-construct internal parts of the tree, but never leaves.
– Requires client renegotiation
– Ad-hoc, hard and error prone
http://www.kurento.org
29
http://www.kurento.org
30
Thanks
http://www.kurento.org
31
Luis Lopez
lulop@kurento.org

Weitere ähnliche Inhalte

Was ist angesagt?

Implementing a WebRTC endpoint in GStreamer: challenges, problems and perspec...
Implementing a WebRTC endpoint in GStreamer: challenges, problems and perspec...Implementing a WebRTC endpoint in GStreamer: challenges, problems and perspec...
Implementing a WebRTC endpoint in GStreamer: challenges, problems and perspec...Luis Lopez
 
kurento-nubomedia-first-steps-v1
kurento-nubomedia-first-steps-v1kurento-nubomedia-first-steps-v1
kurento-nubomedia-first-steps-v1Luis Lopez
 
WebRTC business models beyond calls
WebRTC business models beyond callsWebRTC business models beyond calls
WebRTC business models beyond callsLuis Lopez
 
Developing applications with Kurento
Developing applications with KurentoDeveloping applications with Kurento
Developing applications with KurentoLuis Lopez
 
Nubomedia IETF96 hackthon - Kurento
Nubomedia IETF96 hackthon - KurentoNubomedia IETF96 hackthon - Kurento
Nubomedia IETF96 hackthon - KurentoIvan Gracia
 
elasticRTC -- how to have your own WebRTC cloud scaling to be billions in min...
elasticRTC -- how to have your own WebRTC cloud scaling to be billions in min...elasticRTC -- how to have your own WebRTC cloud scaling to be billions in min...
elasticRTC -- how to have your own WebRTC cloud scaling to be billions in min...Luis Lopez
 
Kurento - FI-WARE Bootcamp
Kurento - FI-WARE BootcampKurento - FI-WARE Bootcamp
Kurento - FI-WARE BootcampIvan Gracia
 
Advanced Kurento Real Time Media Stream Processing
Advanced Kurento Real Time Media Stream ProcessingAdvanced Kurento Real Time Media Stream Processing
Advanced Kurento Real Time Media Stream ProcessingFIWARE
 
Nubomedia IETF96 hackathon - The platform
Nubomedia IETF96 hackathon - The platformNubomedia IETF96 hackathon - The platform
Nubomedia IETF96 hackathon - The platformIvan Gracia
 
NUBOMEDIA: an Elastic PaaS Enabling the Convergence of Real-Time and Big Data...
NUBOMEDIA: an Elastic PaaS Enabling the Convergence of Real-Time and Big Data...NUBOMEDIA: an Elastic PaaS Enabling the Convergence of Real-Time and Big Data...
NUBOMEDIA: an Elastic PaaS Enabling the Convergence of Real-Time and Big Data...Boni García
 
WebRTC/Kurento/NUBOMEDIA Hackathon at IETF’96
WebRTC/Kurento/NUBOMEDIA Hackathon at IETF’96WebRTC/Kurento/NUBOMEDIA Hackathon at IETF’96
WebRTC/Kurento/NUBOMEDIA Hackathon at IETF’96Boni García
 
Janus RTP forwarders @ FOSDEM 2020
Janus RTP forwarders @ FOSDEM 2020Janus RTP forwarders @ FOSDEM 2020
Janus RTP forwarders @ FOSDEM 2020Lorenzo Miniero
 
WebRTC - On Standards, Identity and Telco Strategy
WebRTC - On Standards, Identity and Telco StrategyWebRTC - On Standards, Identity and Telco Strategy
WebRTC - On Standards, Identity and Telco StrategyJose de Castro
 
WebRTC Check-in (from WebRTC Boston 6)
WebRTC Check-in (from WebRTC Boston 6)WebRTC Check-in (from WebRTC Boston 6)
WebRTC Check-in (from WebRTC Boston 6)Chad Hart
 
Intro to Reactive Programming
Intro to Reactive ProgrammingIntro to Reactive Programming
Intro to Reactive ProgrammingStéphane Maldini
 
State of Securing Restful APIs s12gx2015
State of Securing Restful APIs s12gx2015State of Securing Restful APIs s12gx2015
State of Securing Restful APIs s12gx2015robwinch
 
Resource Handling in Spring MVC 4.1
Resource Handling in Spring MVC 4.1Resource Handling in Spring MVC 4.1
Resource Handling in Spring MVC 4.1Rossen Stoyanchev
 

Was ist angesagt? (20)

Implementing a WebRTC endpoint in GStreamer: challenges, problems and perspec...
Implementing a WebRTC endpoint in GStreamer: challenges, problems and perspec...Implementing a WebRTC endpoint in GStreamer: challenges, problems and perspec...
Implementing a WebRTC endpoint in GStreamer: challenges, problems and perspec...
 
kurento-nubomedia-first-steps-v1
kurento-nubomedia-first-steps-v1kurento-nubomedia-first-steps-v1
kurento-nubomedia-first-steps-v1
 
WebRTC business models beyond calls
WebRTC business models beyond callsWebRTC business models beyond calls
WebRTC business models beyond calls
 
Developing applications with Kurento
Developing applications with KurentoDeveloping applications with Kurento
Developing applications with Kurento
 
Nubomedia IETF96 hackthon - Kurento
Nubomedia IETF96 hackthon - KurentoNubomedia IETF96 hackthon - Kurento
Nubomedia IETF96 hackthon - Kurento
 
elasticRTC -- how to have your own WebRTC cloud scaling to be billions in min...
elasticRTC -- how to have your own WebRTC cloud scaling to be billions in min...elasticRTC -- how to have your own WebRTC cloud scaling to be billions in min...
elasticRTC -- how to have your own WebRTC cloud scaling to be billions in min...
 
Kurento - FI-WARE Bootcamp
Kurento - FI-WARE BootcampKurento - FI-WARE Bootcamp
Kurento - FI-WARE Bootcamp
 
Kurento FIWARE
Kurento FIWAREKurento FIWARE
Kurento FIWARE
 
Advanced Kurento Real Time Media Stream Processing
Advanced Kurento Real Time Media Stream ProcessingAdvanced Kurento Real Time Media Stream Processing
Advanced Kurento Real Time Media Stream Processing
 
Nubomedia IETF96 hackathon - The platform
Nubomedia IETF96 hackathon - The platformNubomedia IETF96 hackathon - The platform
Nubomedia IETF96 hackathon - The platform
 
NUBOMEDIA: an Elastic PaaS Enabling the Convergence of Real-Time and Big Data...
NUBOMEDIA: an Elastic PaaS Enabling the Convergence of Real-Time and Big Data...NUBOMEDIA: an Elastic PaaS Enabling the Convergence of Real-Time and Big Data...
NUBOMEDIA: an Elastic PaaS Enabling the Convergence of Real-Time and Big Data...
 
WebRTC/Kurento/NUBOMEDIA Hackathon at IETF’96
WebRTC/Kurento/NUBOMEDIA Hackathon at IETF’96WebRTC/Kurento/NUBOMEDIA Hackathon at IETF’96
WebRTC/Kurento/NUBOMEDIA Hackathon at IETF’96
 
Janus RTP forwarders @ FOSDEM 2020
Janus RTP forwarders @ FOSDEM 2020Janus RTP forwarders @ FOSDEM 2020
Janus RTP forwarders @ FOSDEM 2020
 
WebRTC standards update (Jul 2014)
WebRTC standards update (Jul 2014)WebRTC standards update (Jul 2014)
WebRTC standards update (Jul 2014)
 
WebRTC - On Standards, Identity and Telco Strategy
WebRTC - On Standards, Identity and Telco StrategyWebRTC - On Standards, Identity and Telco Strategy
WebRTC - On Standards, Identity and Telco Strategy
 
WebRTC Check-in (from WebRTC Boston 6)
WebRTC Check-in (from WebRTC Boston 6)WebRTC Check-in (from WebRTC Boston 6)
WebRTC Check-in (from WebRTC Boston 6)
 
Reactive Web Applications
Reactive Web ApplicationsReactive Web Applications
Reactive Web Applications
 
Intro to Reactive Programming
Intro to Reactive ProgrammingIntro to Reactive Programming
Intro to Reactive Programming
 
State of Securing Restful APIs s12gx2015
State of Securing Restful APIs s12gx2015State of Securing Restful APIs s12gx2015
State of Securing Restful APIs s12gx2015
 
Resource Handling in Spring MVC 4.1
Resource Handling in Spring MVC 4.1Resource Handling in Spring MVC 4.1
Resource Handling in Spring MVC 4.1
 

Andere mochten auch

Improving GStreamer performance on large pipelines: from profiling to optimiz...
Improving GStreamer performance on large pipelines: from profiling to optimiz...Improving GStreamer performance on large pipelines: from profiling to optimiz...
Improving GStreamer performance on large pipelines: from profiling to optimiz...Luis Lopez
 
NUBOMEDIA: an elastic Platform as a Service (PaaS) cloud for interactive soci...
NUBOMEDIA: an elastic Platform as a Service (PaaS) cloud for interactive soci...NUBOMEDIA: an elastic Platform as a Service (PaaS) cloud for interactive soci...
NUBOMEDIA: an elastic Platform as a Service (PaaS) cloud for interactive soci...Luis Lopez
 
WebRTC Infrastructure the Hard Parts: Media
WebRTC Infrastructure the Hard Parts: MediaWebRTC Infrastructure the Hard Parts: Media
WebRTC Infrastructure the Hard Parts: MediaDialogic Inc.
 
Amazon Ec2 Application Design
Amazon Ec2 Application DesignAmazon Ec2 Application Design
Amazon Ec2 Application Designguestd0b61e
 
A Practical Guide to WebRTC
A Practical Guide to WebRTCA Practical Guide to WebRTC
A Practical Guide to WebRTCvline
 
Server-side WebRTC Infrastructure
Server-side WebRTC InfrastructureServer-side WebRTC Infrastructure
Server-side WebRTC InfrastructureDialogic Inc.
 
Baby Steps: A WebRTC Tutorial
Baby Steps: A WebRTC TutorialBaby Steps: A WebRTC Tutorial
Baby Steps: A WebRTC TutorialTsahi Levent-levi
 
Automating Management of Amazon EC2 Instances with Auto Scaling - March 2017 ...
Automating Management of Amazon EC2 Instances with Auto Scaling - March 2017 ...Automating Management of Amazon EC2 Instances with Auto Scaling - March 2017 ...
Automating Management of Amazon EC2 Instances with Auto Scaling - March 2017 ...Amazon Web Services
 

Andere mochten auch (10)

Improving GStreamer performance on large pipelines: from profiling to optimiz...
Improving GStreamer performance on large pipelines: from profiling to optimiz...Improving GStreamer performance on large pipelines: from profiling to optimiz...
Improving GStreamer performance on large pipelines: from profiling to optimiz...
 
NUBOMEDIA: an elastic Platform as a Service (PaaS) cloud for interactive soci...
NUBOMEDIA: an elastic Platform as a Service (PaaS) cloud for interactive soci...NUBOMEDIA: an elastic Platform as a Service (PaaS) cloud for interactive soci...
NUBOMEDIA: an elastic Platform as a Service (PaaS) cloud for interactive soci...
 
Beyond the MCU
Beyond the MCUBeyond the MCU
Beyond the MCU
 
WebRTC Infrastructure the Hard Parts: Media
WebRTC Infrastructure the Hard Parts: MediaWebRTC Infrastructure the Hard Parts: Media
WebRTC Infrastructure the Hard Parts: Media
 
Amazon Ec2 Application Design
Amazon Ec2 Application DesignAmazon Ec2 Application Design
Amazon Ec2 Application Design
 
A Practical Guide to WebRTC
A Practical Guide to WebRTCA Practical Guide to WebRTC
A Practical Guide to WebRTC
 
Server-side WebRTC Infrastructure
Server-side WebRTC InfrastructureServer-side WebRTC Infrastructure
Server-side WebRTC Infrastructure
 
Baby Steps: A WebRTC Tutorial
Baby Steps: A WebRTC TutorialBaby Steps: A WebRTC Tutorial
Baby Steps: A WebRTC Tutorial
 
Amazon ECS
Amazon ECSAmazon ECS
Amazon ECS
 
Automating Management of Amazon EC2 Instances with Auto Scaling - March 2017 ...
Automating Management of Amazon EC2 Instances with Auto Scaling - March 2017 ...Automating Management of Amazon EC2 Instances with Auto Scaling - March 2017 ...
Automating Management of Amazon EC2 Instances with Auto Scaling - March 2017 ...
 

Ähnlich wie WebRTC infrastructures in the large (with experiences on real cloud deployments)

Architecting Low Latency Applications Alberto Gonzalez
Architecting Low Latency Applications Alberto GonzalezArchitecting Low Latency Applications Alberto Gonzalez
Architecting Low Latency Applications Alberto GonzalezAlberto González Trastoy
 
Introduction to Apache Mesos and DC/OS
Introduction to Apache Mesos and DC/OSIntroduction to Apache Mesos and DC/OS
Introduction to Apache Mesos and DC/OSSteve Wong
 
Introduction to Platform-as-a-Service and Cloud Foundry
Introduction to Platform-as-a-Service and Cloud FoundryIntroduction to Platform-as-a-Service and Cloud Foundry
Introduction to Platform-as-a-Service and Cloud FoundryManuel Silveyra
 
Architecting your WebRTC application for scalability, Arin Sime
Architecting your WebRTC application for scalability, Arin SimeArchitecting your WebRTC application for scalability, Arin Sime
Architecting your WebRTC application for scalability, Arin SimeAlan Quayle
 
Highly available nodejs
Highly available nodejsHighly available nodejs
Highly available nodejspfremm
 
Amazon EKS 그리고 Service Mesh (김세호 솔루션즈 아키텍트, AWS) :: Gaming on AWS 2018
Amazon EKS 그리고 Service Mesh (김세호 솔루션즈 아키텍트, AWS) :: Gaming on AWS 2018Amazon EKS 그리고 Service Mesh (김세호 솔루션즈 아키텍트, AWS) :: Gaming on AWS 2018
Amazon EKS 그리고 Service Mesh (김세호 솔루션즈 아키텍트, AWS) :: Gaming on AWS 2018Amazon Web Services Korea
 
Microservices in the Enterprise
Microservices in the Enterprise Microservices in the Enterprise
Microservices in the Enterprise Jesus Rodriguez
 
The Need For Speed - NEBytes
The Need For Speed - NEBytesThe Need For Speed - NEBytes
The Need For Speed - NEBytesPhil Pursglove
 
Clould Computing and its application in Libraries
Clould Computing and its application in LibrariesClould Computing and its application in Libraries
Clould Computing and its application in LibrariesAmit Shaw
 
The Containers Ecosystem, the OpenStack Magnum Project, the Open Container In...
The Containers Ecosystem, the OpenStack Magnum Project, the Open Container In...The Containers Ecosystem, the OpenStack Magnum Project, the Open Container In...
The Containers Ecosystem, the OpenStack Magnum Project, the Open Container In...Daniel Krook
 
Introduction to Orchestration and DevOps with OpenStack
Introduction to Orchestration and DevOps with OpenStackIntroduction to Orchestration and DevOps with OpenStack
Introduction to Orchestration and DevOps with OpenStackAbderrahmane TEKFI
 
Getting Started with Docker - Nick Stinemates
Getting Started with Docker - Nick StinematesGetting Started with Docker - Nick Stinemates
Getting Started with Docker - Nick StinematesAtlassian
 
AperiStorageResourceManager
AperiStorageResourceManagerAperiStorageResourceManager
AperiStorageResourceManagerRobert Wipfel
 
Event Bus as Backbone for Decoupled Microservice Choreography (Oracle Code, A...
Event Bus as Backbone for Decoupled Microservice Choreography (Oracle Code, A...Event Bus as Backbone for Decoupled Microservice Choreography (Oracle Code, A...
Event Bus as Backbone for Decoupled Microservice Choreography (Oracle Code, A...Lucas Jellema
 
TOSCA and OpenTOSCA: TOSCA Introduction and OpenTOSCA Ecosystem Overview
TOSCA and OpenTOSCA: TOSCA Introduction and OpenTOSCA Ecosystem OverviewTOSCA and OpenTOSCA: TOSCA Introduction and OpenTOSCA Ecosystem Overview
TOSCA and OpenTOSCA: TOSCA Introduction and OpenTOSCA Ecosystem OverviewOpenTOSCA
 
OCCIware@POSS 2016 - an extensible, standard XaaS cloud consumer platform
OCCIware@POSS 2016 - an extensible, standard XaaS cloud consumer platformOCCIware@POSS 2016 - an extensible, standard XaaS cloud consumer platform
OCCIware@POSS 2016 - an extensible, standard XaaS cloud consumer platformMarc Dutoo
 
OCCIware, an extensible, standard-based XaaS consumer platform to manage ever...
OCCIware, an extensible, standard-based XaaS consumer platform to manage ever...OCCIware, an extensible, standard-based XaaS consumer platform to manage ever...
OCCIware, an extensible, standard-based XaaS consumer platform to manage ever...OCCIware
 
OCCIware: Extensible and Standard-based XaaS Platform To Manage Everything in...
OCCIware: Extensible and Standard-based XaaS Platform To Manage Everything in...OCCIware: Extensible and Standard-based XaaS Platform To Manage Everything in...
OCCIware: Extensible and Standard-based XaaS Platform To Manage Everything in...OW2
 

Ähnlich wie WebRTC infrastructures in the large (with experiences on real cloud deployments) (20)

Architecting Low Latency Applications Alberto Gonzalez
Architecting Low Latency Applications Alberto GonzalezArchitecting Low Latency Applications Alberto Gonzalez
Architecting Low Latency Applications Alberto Gonzalez
 
Introduction to Apache Mesos and DC/OS
Introduction to Apache Mesos and DC/OSIntroduction to Apache Mesos and DC/OS
Introduction to Apache Mesos and DC/OS
 
Introduction to Platform-as-a-Service and Cloud Foundry
Introduction to Platform-as-a-Service and Cloud FoundryIntroduction to Platform-as-a-Service and Cloud Foundry
Introduction to Platform-as-a-Service and Cloud Foundry
 
Architecting your WebRTC application for scalability, Arin Sime
Architecting your WebRTC application for scalability, Arin SimeArchitecting your WebRTC application for scalability, Arin Sime
Architecting your WebRTC application for scalability, Arin Sime
 
Highly available nodejs
Highly available nodejsHighly available nodejs
Highly available nodejs
 
Amazon EKS 그리고 Service Mesh (김세호 솔루션즈 아키텍트, AWS) :: Gaming on AWS 2018
Amazon EKS 그리고 Service Mesh (김세호 솔루션즈 아키텍트, AWS) :: Gaming on AWS 2018Amazon EKS 그리고 Service Mesh (김세호 솔루션즈 아키텍트, AWS) :: Gaming on AWS 2018
Amazon EKS 그리고 Service Mesh (김세호 솔루션즈 아키텍트, AWS) :: Gaming on AWS 2018
 
Microservices in the Enterprise
Microservices in the Enterprise Microservices in the Enterprise
Microservices in the Enterprise
 
The Need For Speed - NEBytes
The Need For Speed - NEBytesThe Need For Speed - NEBytes
The Need For Speed - NEBytes
 
Clould Computing and its application in Libraries
Clould Computing and its application in LibrariesClould Computing and its application in Libraries
Clould Computing and its application in Libraries
 
The Containers Ecosystem, the OpenStack Magnum Project, the Open Container In...
The Containers Ecosystem, the OpenStack Magnum Project, the Open Container In...The Containers Ecosystem, the OpenStack Magnum Project, the Open Container In...
The Containers Ecosystem, the OpenStack Magnum Project, the Open Container In...
 
Introduction to Orchestration and DevOps with OpenStack
Introduction to Orchestration and DevOps with OpenStackIntroduction to Orchestration and DevOps with OpenStack
Introduction to Orchestration and DevOps with OpenStack
 
Getting Started with Docker - Nick Stinemates
Getting Started with Docker - Nick StinematesGetting Started with Docker - Nick Stinemates
Getting Started with Docker - Nick Stinemates
 
AperiStorageResourceManager
AperiStorageResourceManagerAperiStorageResourceManager
AperiStorageResourceManager
 
Forecast 2014: TOSCA Proof of Concept
Forecast 2014: TOSCA Proof of ConceptForecast 2014: TOSCA Proof of Concept
Forecast 2014: TOSCA Proof of Concept
 
Event Bus as Backbone for Decoupled Microservice Choreography (Oracle Code, A...
Event Bus as Backbone for Decoupled Microservice Choreography (Oracle Code, A...Event Bus as Backbone for Decoupled Microservice Choreography (Oracle Code, A...
Event Bus as Backbone for Decoupled Microservice Choreography (Oracle Code, A...
 
TOSCA and OpenTOSCA: TOSCA Introduction and OpenTOSCA Ecosystem Overview
TOSCA and OpenTOSCA: TOSCA Introduction and OpenTOSCA Ecosystem OverviewTOSCA and OpenTOSCA: TOSCA Introduction and OpenTOSCA Ecosystem Overview
TOSCA and OpenTOSCA: TOSCA Introduction and OpenTOSCA Ecosystem Overview
 
OCCIware@POSS 2016 - an extensible, standard XaaS cloud consumer platform
OCCIware@POSS 2016 - an extensible, standard XaaS cloud consumer platformOCCIware@POSS 2016 - an extensible, standard XaaS cloud consumer platform
OCCIware@POSS 2016 - an extensible, standard XaaS cloud consumer platform
 
OCCIware, an extensible, standard-based XaaS consumer platform to manage ever...
OCCIware, an extensible, standard-based XaaS consumer platform to manage ever...OCCIware, an extensible, standard-based XaaS consumer platform to manage ever...
OCCIware, an extensible, standard-based XaaS consumer platform to manage ever...
 
OCCIware: Extensible and Standard-based XaaS Platform To Manage Everything in...
OCCIware: Extensible and Standard-based XaaS Platform To Manage Everything in...OCCIware: Extensible and Standard-based XaaS Platform To Manage Everything in...
OCCIware: Extensible and Standard-based XaaS Platform To Manage Everything in...
 
Defense
DefenseDefense
Defense
 

Kürzlich hochgeladen

PHP-based rendering of TYPO3 Documentation
PHP-based rendering of TYPO3 DocumentationPHP-based rendering of TYPO3 Documentation
PHP-based rendering of TYPO3 DocumentationLinaWolf1
 
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书zdzoqco
 
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一Fs
 
Q4-1-Illustrating-Hypothesis-Testing.pptx
Q4-1-Illustrating-Hypothesis-Testing.pptxQ4-1-Illustrating-Hypothesis-Testing.pptx
Q4-1-Illustrating-Hypothesis-Testing.pptxeditsforyah
 
A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)
A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)
A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)Christopher H Felton
 
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一Fs
 
Call Girls South Delhi Delhi reach out to us at ☎ 9711199012
Call Girls South Delhi Delhi reach out to us at ☎ 9711199012Call Girls South Delhi Delhi reach out to us at ☎ 9711199012
Call Girls South Delhi Delhi reach out to us at ☎ 9711199012rehmti665
 
Elevate Your Business with Our IT Expertise in New Orleans
Elevate Your Business with Our IT Expertise in New OrleansElevate Your Business with Our IT Expertise in New Orleans
Elevate Your Business with Our IT Expertise in New Orleanscorenetworkseo
 
Contact Rya Baby for Call Girls New Delhi
Contact Rya Baby for Call Girls New DelhiContact Rya Baby for Call Girls New Delhi
Contact Rya Baby for Call Girls New Delhimiss dipika
 
SCM Symposium PPT Format Customer loyalty is predi
SCM Symposium PPT Format Customer loyalty is prediSCM Symposium PPT Format Customer loyalty is predi
SCM Symposium PPT Format Customer loyalty is predieusebiomeyer
 
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作ys8omjxb
 
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一z xss
 
Call Girls Near The Suryaa Hotel New Delhi 9873777170
Call Girls Near The Suryaa Hotel New Delhi 9873777170Call Girls Near The Suryaa Hotel New Delhi 9873777170
Call Girls Near The Suryaa Hotel New Delhi 9873777170Sonam Pathan
 
Film cover research (1).pptxsdasdasdasdasdasa
Film cover research (1).pptxsdasdasdasdasdasaFilm cover research (1).pptxsdasdasdasdasdasa
Film cover research (1).pptxsdasdasdasdasdasa494f574xmv
 
Packaging the Monolith - PHP Tek 2024 (Breaking it down one bite at a time)
Packaging the Monolith - PHP Tek 2024 (Breaking it down one bite at a time)Packaging the Monolith - PHP Tek 2024 (Breaking it down one bite at a time)
Packaging the Monolith - PHP Tek 2024 (Breaking it down one bite at a time)Dana Luther
 
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170Sonam Pathan
 
Intellectual property rightsand its types.pptx
Intellectual property rightsand its types.pptxIntellectual property rightsand its types.pptx
Intellectual property rightsand its types.pptxBipin Adhikari
 
Top 10 Interactive Website Design Trends in 2024.pptx
Top 10 Interactive Website Design Trends in 2024.pptxTop 10 Interactive Website Design Trends in 2024.pptx
Top 10 Interactive Website Design Trends in 2024.pptxDyna Gilbert
 

Kürzlich hochgeladen (20)

PHP-based rendering of TYPO3 Documentation
PHP-based rendering of TYPO3 DocumentationPHP-based rendering of TYPO3 Documentation
PHP-based rendering of TYPO3 Documentation
 
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
 
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一
 
Q4-1-Illustrating-Hypothesis-Testing.pptx
Q4-1-Illustrating-Hypothesis-Testing.pptxQ4-1-Illustrating-Hypothesis-Testing.pptx
Q4-1-Illustrating-Hypothesis-Testing.pptx
 
A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)
A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)
A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)
 
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一
 
Call Girls South Delhi Delhi reach out to us at ☎ 9711199012
Call Girls South Delhi Delhi reach out to us at ☎ 9711199012Call Girls South Delhi Delhi reach out to us at ☎ 9711199012
Call Girls South Delhi Delhi reach out to us at ☎ 9711199012
 
Elevate Your Business with Our IT Expertise in New Orleans
Elevate Your Business with Our IT Expertise in New OrleansElevate Your Business with Our IT Expertise in New Orleans
Elevate Your Business with Our IT Expertise in New Orleans
 
Model Call Girl in Jamuna Vihar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in  Jamuna Vihar Delhi reach out to us at 🔝9953056974🔝Model Call Girl in  Jamuna Vihar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Jamuna Vihar Delhi reach out to us at 🔝9953056974🔝
 
Contact Rya Baby for Call Girls New Delhi
Contact Rya Baby for Call Girls New DelhiContact Rya Baby for Call Girls New Delhi
Contact Rya Baby for Call Girls New Delhi
 
SCM Symposium PPT Format Customer loyalty is predi
SCM Symposium PPT Format Customer loyalty is prediSCM Symposium PPT Format Customer loyalty is predi
SCM Symposium PPT Format Customer loyalty is predi
 
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
 
young call girls in Uttam Nagar🔝 9953056974 🔝 Delhi escort Service
young call girls in Uttam Nagar🔝 9953056974 🔝 Delhi escort Serviceyoung call girls in Uttam Nagar🔝 9953056974 🔝 Delhi escort Service
young call girls in Uttam Nagar🔝 9953056974 🔝 Delhi escort Service
 
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一
 
Call Girls Near The Suryaa Hotel New Delhi 9873777170
Call Girls Near The Suryaa Hotel New Delhi 9873777170Call Girls Near The Suryaa Hotel New Delhi 9873777170
Call Girls Near The Suryaa Hotel New Delhi 9873777170
 
Film cover research (1).pptxsdasdasdasdasdasa
Film cover research (1).pptxsdasdasdasdasdasaFilm cover research (1).pptxsdasdasdasdasdasa
Film cover research (1).pptxsdasdasdasdasdasa
 
Packaging the Monolith - PHP Tek 2024 (Breaking it down one bite at a time)
Packaging the Monolith - PHP Tek 2024 (Breaking it down one bite at a time)Packaging the Monolith - PHP Tek 2024 (Breaking it down one bite at a time)
Packaging the Monolith - PHP Tek 2024 (Breaking it down one bite at a time)
 
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170
 
Intellectual property rightsand its types.pptx
Intellectual property rightsand its types.pptxIntellectual property rightsand its types.pptx
Intellectual property rightsand its types.pptx
 
Top 10 Interactive Website Design Trends in 2024.pptx
Top 10 Interactive Website Design Trends in 2024.pptxTop 10 Interactive Website Design Trends in 2024.pptx
Top 10 Interactive Website Design Trends in 2024.pptx
 

WebRTC infrastructures in the large (with experiences on real cloud deployments)

  • 1. WebRTC infrastructures in the large (with experiences from real deployments) Luis Lopez lulop@kurento.org IIT RTC Conference & Expo October 2015
  • 2. Speaker • Coordinator of Kurento.org – FOSS project – WebRTC Media Server – WebRTC Media APIs – WebRTC Cloud Infrastructure • Software developer • Software trainer • Software learner • FOSS enthusiast http://www.kurento.org 2 http://www.kurento.org http://twitter/@kurentoms https://www.youtube.com/channel/UCFtGhWYqahVlzMgGNtEmKug
  • 3. WebRTC infrastructures http://www.kurento.org 3 Peer-to-Peer WebRTC Application (without media infrastructure) WebRTC video stream WebRTC Application based on media infrastructure media infrastructure
  • 4. Function of WebRTC infrastructures http://www.kurento.org 4 Processing VP8 H.264 Group Communications Archiving
  • 5. WebRTC infrastructures in the large http://www.kurento.org 5 From the hundreds to the millions: the scalability problem WebRTC Cloud
  • 7. WebRTC cloud models http://www.kurento.org High flexibility Complex development Lowhourly costs Low flexibility Simple development Highhourly costs IaaS PaaS APIaaS SaaS No WebRTC-specific players here Computing Resources
  • 8. WebRTC cloud architectures http://www.kurento.org 8 Virtual infrastructure WebRTC Platform WebRTC API WebRTC Application IaaS PaaS APIaaS SaaS No new science here The science for the scalability problem is here
  • 9. WebRTC Vs traditional WWW Platforms: the three tiers http://www.kurento.org 9 Application Server Container Service Layer Application 1 Application N… WebRTC Media Server DD.BB. Server Signaling
  • 10. Vertical scalability on monolithic WebRTC platforms http://www.kurento.org 10 Application Server Instance Media Server Instance Application 1 Application N… Qualityofservice Number of WebRTC legs Typical scalability curve for SFU media servers ~500 to 1000 in commodity hardware The bottleneck is here
  • 11. Horizontal scalability of WebRTC Media Servers http://www.kurento.org 11 Application Server Application Server Application Server Media Server Media Server Media Server Media Server Media Resource Broker … … RFC6917 Load Balancer
  • 12. Media Resource Broker • Functions – MS registration • MS instances register on the MRB – MS brokering • Query model – AS instances query the MRB for locating a MS instance – MRB is explicit for the AS • In-line model – MRB routes signaling (control requests) – MRB is transparent for the AS • MRB does not hold state about MS instances – MS instances are independent – MS instances are equivalent – We say it’s stateless http://www.kurento.org 12
  • 13. Stateless MRB use cases • Independent MS – B2B calls – WebRTC GW – Room servers – Media recording – Etc. http://www.kurento.org 13 Stateless - MRB Application Server Instance Media Server Instance Media Server Instance Media Server Instance Media Server Instance Call Call
  • 14. • Amazon Web Services EC2 – Most popular public cloud • OpenStack – Popular public clouds (e.g. RackSpace) – Popular for private clouds • Deployment – Cloud deployment templates • CloudFormation (Amazon) • Heat (OpenStack) Deploying in public and private clouds http://www.kurento.org 14
  • 15. Templates – Declarative language for • Declaration of resources and relationships – Images, Computing Nodes, Networks, Volumes, Load Balancers, Autoscaling groups, etc. • Deployment – Instantiation of resources • Runtime – Provisioning – Autoscaling http://www.kurento.org 15
  • 16. Deploying in public clouds http://www.kurento.org 16 AWS AMI / OpenStack Glance Media Server Image Application Server Image Broker Image Stack definition template AWS EC2 / OpenStack Nova CloudFormation / HeatChef + Packer Autoscaling Rules Launch configurations Autoscaling Group Autoscaling Group Elastic Load Balancer Application Server Instance Application Server Instance Broker Instance Media Server Instance Media Server Instance Media Server Instance Source code
  • 18. Experiences deploying large WebRTC infrastructures in public clouds • Lessons learnt: fault-resilience is hard – AS & MRB layers • Are stateless => use distributed cache systems – MS layer • Is stateful => lots of problems http://www.kurento.org 18 Application Server Application Server Media Server Media Server Media Server Media Server Media Resource Broker … …
  • 19. Computing Node Lessons learnt: avoid single points of failure http://www.kurento.org 19 MS MRB Computing Node MS Computing Node … MS Elastic Load Balancer Computing Node MS Computing Node … MRB MRB distributed cache The wrong way (single point of failure) The right way (fault-tolerant MRB)
  • 20. Lessons learnt: fault-recovery at the MS layer • Fault-tolerance on the MS layer – Stateful problem • MS instances hold specific resources that cannot be “serialized” to a distributed cache: – Specific Sockets • Machine failure => session failure – Our proposed solution • Re construct the session – Detect failure – Notify failure – Reconnect http://www.kurento.org 20 MRB Media Server Instance Media Server Instance Media Server Instance Media Server Instance Call Call Application Server Instance Failure detection Failure notification Session reconnection
  • 22. Lessons learnt: lack of optimal scale-out events and metrics • Lessons learnt: firing scale-out events – which metric? – Bottleneck depends on applications: network, CPU, memory, etc. – our recommendation: define a synthetic metric (i.e. scaling points) and be conservative http://www.kurento.org 22 Qualityofservice Number of WebRTC legs Typical scalability curve for SFU media servers 50% 40%
  • 23. Lessons learnt: scaling-in is harder than scaling-out • The options (none-good) – Expose # sessions as a metric • Depends on cloud capabilities • AS needs to be made cloud aware – Session migration • AS needs to be made cloud aware • Renegotiations – Retain period • Sub-optimal utilization • The simplest http://www.kurento.org 23 MRB Application Server Instance MS1 MS2 MS3 MS4 Which one would you remove?
  • 24. Limits of the (stateless) MRB http://www.kurento.org 24 Media stream OnetoMANY
  • 27. Stateful because … • MRB – Must be aware of media topology • Stateful information about MS relationships – Request routing depends on topology • Where to place a new viewer? – Request routing depends on internal state • CPU load • QoS • Memory • Etc. http://www.kurento.org 27
  • 28. Experiences with stateful MRB in AWS EC2 & OpenStack • Lessons learned: beware of WebRTC internals – Differentiated quality • SVC is the solution – but its not ready • Plain SFU forwarding models are not an option. – RTCP feedback of viewers with bad connectivity destroy QoE • Simulcast may be an option – Suppress feedback of viewers with really bad connectivity • Layered transcoding works nicely – But its expensive – Churn and the generation of key-frames • Periodic key-frame generation is an option – In VP8 expect significant increase in BW consumption • Layered transcoding works nicely – But its again expensive http://www.kurento.org 28
  • 29. Experiences with stateful MRB in AWS EC2 & OpenStack • Lessons learned: the cloud is evil – Placement of incoming WebRTC legs • New science required here – Ideas? • Our solutions – Count number of WebRTC legs (points mechanisms9 – Ad-hoc, hard and error prone – Fault-resilience • New science required here – Ideas? • Our solution – Re-construct internal parts of the tree, but never leaves. – Requires client renegotiation – Ad-hoc, hard and error prone http://www.kurento.org 29