SlideShare a Scribd company logo
1 of 34
Nubomedia: the cloud infrastructure for 
WebRTC and IMS multimedia real-time 
communications 
Luis Lopez 
lulop@kurento.org
WebRTC infrastructures 
http://www.kurento.org 
2 
Peer-to-Peer WebRTC Application (without media infrastructure) 
WebRTC video stream 
WebRTC Application based on media infrastructure 
media infrastructure
WebRTC media servers: the simplest 
WebRTC infrastructure 
• Media server 
– Monolithic software 
– Based on shared memory 
– Scales well vertically 
– Can’t scale horizontally 
• Media server vendors 
– Software vendors 
– Hardware vendors 
http://www.kurento.org 
3
WebRTC media server vendors 
http://www.kurento.org 
4
Function of WebRTC media servers 
http://www.kurento.org 
5 
Transcoding media server 
VP8 H.264 
MCU/SFU media server 
Recording media server
Evolution of media servers 
Current media servers 
http://www.kurento.org 
6 
What common WebRTC 
Media Servers do: 
• Transcoding 
• MCU 
• Recording 
What future Media 
Servers will do: 
• Flexible processing 
• Augmented reality 
• Blending 
• Mixing 
• Analyzing 
• Etc. 
Media is 
here 
Media goes 
there 
Transcoding 
MCU/SFU 
Recording 
Media is 
here 
Rich Media 
goes there 
Future media servers 
Media 
Events 
Transcoding, 
MCU/SFU, 
Recording, 
Enrich, 
Augment, 
Analyze, 
Combine, 
Transform, 
Adapt, … 
Context 
Content 
Commands
Kurento Media Server 
http://www.kurento.org 
7 
Sink	 SRC	 
Sink	 
SRC	 
SRC	 Sink	 
Sink	 
 
Media Element 
• Provides a specific media 
functionality 
› Send/receive media 
› Process media 
› Transform media 
• Exchange media through 
› Sources 
› Sinks 
 
Media pipeline 
• Chain of media elements 
implementing the desired media 
logic. 
• The Media API provides the 
capability of creating media 
pipelines by joining media 
elements of the toolbox 
Media Element 
Sink 
SRC
Creating applications basing on 
Kurento Media Server 
H pEndpoint	 
WebRtcEndpoint	 
Application 2 
IPTVConnector	 Mixer	 
FaceDetector	 
PointerTracker	 
BarCodeReader	 
HeartRateBlender	 
ChromaFilter	 
FaceOverlay	 
http://www.kurento.org 
8 
Protocols	 
&	Codecs	 
Computer		 
Vision	 
Augmented		 
Reality	 
Mul sensory		 
Mul media	 
DataChannelEndpoint	 
PlayerEndpoint	 
RecorderEndpoint	 
Media		 
Repository	 
IPTV	 
Integra on	 
Group	 
Communica ons	 
Sink% 
Sink% SRC% 
RtpEndpoint	 
SRC$ 
Sink% SRC% 
Sink% 
SRC% 
Sink% 
Sink% 
SRC% 
SRC% 
Sink% 
SRC% 
Sink% 
Sink% 
SRC% 
SRC% 
Sink% 
Sink% 
SRC$ 
CdnUpload	 
Sink% 
Sink	 SRC	 
Sink	 
Sink	 
SRC	 
SRC	 Sink	 
Sink	 
Application 3 
Sink	 
SRC	 
Sink	 
Sink	 
SRC	 Sink	 
Sink	 SRC	 
Application 1 
Sink	 SRC	 
Sink	 SRC	 
Sink	 SRC	 
Sink	 SRC	 
Toolbox of media elements
Beyond media servers: WebRTC 
clouds and the problem of scalability 
http://www.kurento.org 
9 
WebRTC Application based on media infrastructure 
WebRTC Cloud
Cloud models for WebRTC 
infrastructures 
IaaS SaaS 
http://www.kurento.org 
10 
PaaS 
Provider 
- Computing resources 
Developer 
- Installation 
- Administration 
- Security 
- Application logic 
Provider 
- Development API 
Developer 
- Application logic 
Provider 
- Service 
Developer 
- Nothing to do
WebRTC PaaS APIs: Requirements 
• Requirements of WebRTC PaaS APIs 
– Functional requirements 
• Media transport 
– Media endpoint 
– Media replication 
– Media routing 
• Media persistence 
– Media storage 
– Media recovery 
• Media processing 
– Transcoding 
– Analysis 
– Augmentation 
– Non-functional requirements 
• Security 
• Dependability 
• Scalability 
http://www.kurento.org 
11
WebRTC multimedia session 
• RFC 5117 
– A multimedia session is an association among a group of participants 
engaged in the communication via one or more RTP Sessions. 
• Characterized by 
– Communication topology 
• Graph of multimedia flows 
– Multimedia processing 
• Function of each edge of the graph of media flows 
http://www.kurento.org 
12 
Transport 
Transcode 
Record
Scalability of RTC multimedia services 
“Broadcasting 
Non-RTC” 
http://www.kurento.org 
13 
Number of concurrent sessions 
Number of users per session 
WebRTC PaaS Phone system 
TV 
Broadcasting 
CDNs 
Media Server 
based Services 
“RTC calls” 
“Home-made 
RTC” 
“Beyond RTC calls”
Scalability of RTC multimedia services 
“Broadcasting 
Non-RTC” 
http://www.kurento.org 
14 
Number of concurrent sessions 
Number of users per session 
WebRTC PaaS Phone system 
TV 
Broadcasting 
CDNs 
Media Server 
based Services 
“RTC calls” 
“Home-made 
RTC” 
“Beyond RTC calls”
The scalability problem in “call” 
clouds 
Call Call Call Call Call Call 
Call Call Call Call Call Call 
Call Call Call Call Call
Anatomy of WebRTC PaaS for call models: 
Flat Architecture 
Application Server 
Broker Function 
http://www.kurento.org 
16 
Load Balancer 
Function 
Function 
IaaS Cloud Manager 
Media Server 
Function 
Cloud Orchestrator
Cloud functions: IaaS 
manager 
Infrastructure as a Service APIs 
Security 
Management 
http://www.kurento.org 
17 
IaaS Cloud Manager 
Cloud 
Orchestrator 
• Function 
Applica. on%Server% 
%Func. on% 
Broker%Func. on% 
– Provides APIs for IaaS 
management 
• Images 
• Instances 
• Storage 
• Metrics 
• Security 
• Etc. 
• Requires 
– Physical infrastructure 
Cloud 
Orchestrator 
Image 
Management 
Computing 
Management 
Storage 
Management 
Networking 
Management 
Metrics and 
KPIs 
Load%Balancer% 
Func. on% 
IaaS%Cloud%Manager% 
Media%Server% 
Func. on% 
Cloud%Orchestrator%
Cloud functions: Cloud 
Orchestrator 
Infrastructure as a Service APIs 
Security 
Management 
http://www.kurento.org 
18 
IaaS Cloud Manager 
Cloud 
Orchestrator 
• Function 
Applica. on%Server% 
%Func. on% 
Broker%Func. on% 
– Lifecycle management of the 
Nubomedia platform 
• It acquires virtual resources and 
allocate them to the specific 
services 
– Runtime management with 
autoscaling 
• It instantiates new service 
instances in situations of peak load 
• It scales in service instances 
whenever they are not required 
any longer 
• Requires 
– Autoscaling rules 
• Ex. If average load is over 60% add 
two new instances 
Image 
Management 
Computing 
Management 
Storage 
Management 
Networking 
Management 
Metrics and 
KPIs 
Load%Balancer% 
Func. on% 
IaaS%Cloud%Manager% 
Media%Server% 
Func. on% 
Cloud%Orchestrator%
Media Server Function 
http://www.kurento.org 
19 
Application 
Server 
Instance 
Send 
Receive 
Analyze 
Augment 
Enrich 
Media 
Control 
Protocol 
Transform 
Transcode 
Record 
Process 
Replicate 
Media Server Instance 
• Function 
%Func. on% 
– Provides media 
capabilities 
Applica. on%Server% 
• WebRTC transport 
• Recording 
• Transcoding 
• Etc. 
• Requires 
– Control Protocol 
– Media Protocols 
– Media Codecs 
Media 
Server 
Instance 
Load%Balancer% 
Func. on% 
Broker%Func. on% 
IaaS%Cloud%Manager% 
Media%Server% 
Func. on% 
Cloud%Orchestrator%
Broker Function 
http://www.kurento.org 
20 
Application 
Server 
Instance 
Broker Function 
Media 
Server 
Instance 
Media 
Server 
Instance 
Media 
Server 
Instance 
Media 
Server 
Instance 
• Function 
Applica. on%Server% 
%Func. on% 
Broker%Func. on% 
– Assigns “call” to specific media 
server instances 
• Give me a media server 
instance to take care of this call 
– “call” are never split among 
media servers 
• Requires 
– Scheduling policy 
• Round robing 
• Random 
• Less load 
• Etc. 
– Registration of MSis 
• All media server instances need 
to be known by the broker 
Call Call 
Load%Balancer% 
Func. on% 
IaaS%Cloud%Manager% 
Media%Server% 
Func. on% 
Cloud%Orchestrator%
Application Server 
Client request • Function 
http://www.kurento.org 
21 
Signaling frontend 
Security logic 
API logic 
Application Server Instance 
– Signaling 
Load%Balancer% 
Func. on% 
Applica. on%Server% 
%Func. on% 
IaaS%Cloud%Manager% 
• Send/receive of signaling messages 
– Security logic 
• Authentication, Authorization, 
Accounting 
– API logic 
• Control of media server functions 
for providing API semantics 
• Requires 
– Signaling protocol 
implementation 
• SIP, JSON, etc. 
– Security rules 
• ACLs, CAP, etc. 
– Specific logic 
• Media server dependent 
Broker%Func. on% 
Media%Server% 
Func. on% 
Cloud%Orchestrator%
Load balancer 
• Function 
Applica. on%Server% 
%Func. on% 
Broker%Func. on% 
– Distributes client requests 
among available AS 
instances 
– Usually stateful 
• Requires 
– Balancing policy 
• Round robin 
• Random 
• Less load 
• Etc. 
• Scaling needs 
– Low 
http://www.kurento.org 
22 
Client App. 
Load Balancer Function 
Application 
Server 
Instance 
Client App. Client App. 
Application 
Server 
Instance 
Application 
Server 
Instance 
Load%Balancer% 
Func. on% 
IaaS%Cloud%Manager% 
Media%Server% 
Func. on% 
Cloud%Orchestrator%
The flat Nubomedia implementation 
Application Server 
Broker Function 
http://www.kurento.org 
23 
Load Balancer 
Function 
Function 
IaaS Cloud Manager 
Media Server 
Function 
Cloud Orchestrator
Instance Lifecycle 
Packer Open Stack Heat 
http://www.kurento.org 24 
OpenStack Glance 
OpenStack Swift 
Media Server 
Image 
Application 
Server Image 
Broker 
Image 
Load Balancer 
Image 
Heat Orchestration 
Template 
OpenStack Nova 
Scalability 
Group 
Autoscaling 
Rules 
Launch 
configurations 
Scalability 
Group 
Scalability 
Group 
Scalability 
Group 
Load 
Balancer 
Instance 
Application 
Server 
Instance 
Application 
Server 
Instance 
Broker 
Instance 
Media 
Server 
Instance 
Media 
Server 
Instance 
Media 
Server 
Instance
Scalability of RTC multimedia services 
“Broadcasting 
Non-RTC” 
http://www.kurento.org 
25 
Number of concurrent sessions 
Number of users per session 
WebRTC PaaS Phone system 
TV 
Broadcasting 
CDNs 
Media Server 
based Services 
“RTC calls” 
“Home-made 
RTC” 
“Beyond RTC calls”
Beyond calls: convergence of 
broadcasting and phone-like services 
http://www.kurento.org 
26 
Users in call Monitoring users 
Users can dynamically 
change their role
The scalability problem in “beyond 
call” clouds 
http://www.kurento.org 
27 
Media stream 
One to MANY
Anatomy of WebRTC PaaS for call 
models: Hierarchical Architecture 
Application Server 
Broker Function 
http://www.kurento.org 
28 
Load Balancer 
Function 
Function 
IaaS Cloud Manager 
Media Server 
Function 
Cloud Orchestrator
Media Server Function 
http://www.kurento.org 
29 
Media 
Server 
Instance 
Media 
Server 
Instance 
Media 
Server 
Instance 
Media 
Server 
Instance 
Media 
Server 
Instance 
Media 
Server 
Instance 
• Function 
Load%Balancer% 
Func. on% 
Applica. on%Server% 
%Func. on% 
Broker%Func. on% 
IaaS%Cloud%Manager% 
– Provides elastics media 
capabilities 
• Strong dependencies 
among media server 
instances 
• Media servers connect 
following a specific 
topology 
• Requires 
– Glue mechanism among 
media server instances 
Media%Server% 
Func. on% 
Cloud%Orchestrator%
The elastic media server 
http://www.kurento.org 
30 
• Elasticity 
Applica. on%Server% 
%Func. on% 
Broker%Func. on% 
– On the number of media 
pipelines 
• Number of concurrent 
sessions 
– On the number of elements 
per media pipeline 
• Number of concurrent users 
per session 
– Media Pipeline 
• Distributed media pipeline 
• Rigidity 
– The media element is a 
monolithic (non distributed) 
entity 
Sink	 SRC	 
Sink	 SRC	 
Sink	 SRC	 
Sink	 
SRC	 
Sink	 SRC	 Sink	 SRC	 
Sink	 SRC	 
Load%Balancer% 
Func. on% 
IaaS%Cloud%Manager% 
Media%Server% 
Func. on% 
Cloud%Orchestrator%
Broker Function 
Server 
Instance • Function 
http://www.kurento.org 
31 
Application 
Broker Function 
Applica. on%Server% 
%Func. on% 
Broker%Func. on% 
– Assigns “call legs” to specific 
media server instances 
• Give me a media server instance to 
take care of this call 
– “call” are split among different 
media server instances 
• Requires 
– Scheduling policy 
• Topology aware 
• Network aware 
• SLA aware 
• Etc. 
– Very complex problem 
• Leg adding may require additional 
media server instances 
• Churn is very complex to manage 
Media 
Server 
Instance 
Media 
Server 
Instance 
Media 
Server 
Instance 
Media 
Server 
Instance 
Media 
Server 
Instance 
Load%Balancer% 
Func. on% 
IaaS%Cloud%Manager% 
Media%Server% 
Func. on% 
Cloud%Orchestrator%
Hierarchical Nubomedia implementation: 
Work in progress 
Applica. on%Server% 
Broker%Func. on% 
http://www.kurento.org 
32 
Load%Balancer% 
Func. on% 
%Func. on% 
IaaS%Cloud%Manager% 
Media%Server% 
Func. on% 
Cloud%Orchestrator% 
Own 
implementation
Lessons learnt 
• CAP theorem 
– You cannot be available and consistent at the same time 
• Implementing security 
– ACLs are slow 
• Poisson messages 
– Managing failures is tricky 
• Video streams are not like water streams 
– FIRs & PLIs killed the cat 
• Scaling out simpler than scaling in 
– Move or wait? 
• Managing video quality is THE PROBLEM 
– Simulcast Vs Transcoding 
http://www.kurento.org 
33
Nubomedia: the elastic RTC 
multimedia infrastructure 
http://www.kurento.org 
34 
Thanks 
Partners

More Related Content

What's hot

FOSDEM 2016 - Creating rich WebRTC Applications with Kurento
FOSDEM 2016 - Creating rich WebRTC Applications with KurentoFOSDEM 2016 - Creating rich WebRTC Applications with Kurento
FOSDEM 2016 - Creating rich WebRTC Applications with Kurento
Luis Lopez
 
Developing rich multimedia applications with Kurento: a tutorial for Java Dev...
Developing rich multimedia applications with Kurento: a tutorial for Java Dev...Developing rich multimedia applications with Kurento: a tutorial for Java Dev...
Developing rich multimedia applications with Kurento: a tutorial for Java Dev...
Luis Lopez
 

What's hot (20)

FOSDEM 2016 - Creating rich WebRTC Applications with Kurento
FOSDEM 2016 - Creating rich WebRTC Applications with KurentoFOSDEM 2016 - Creating rich WebRTC Applications with Kurento
FOSDEM 2016 - Creating rich WebRTC Applications with Kurento
 
Developing rich multimedia applications with Kurento: a tutorial for Java Dev...
Developing rich multimedia applications with Kurento: a tutorial for Java Dev...Developing rich multimedia applications with Kurento: a tutorial for Java Dev...
Developing rich multimedia applications with Kurento: a tutorial for Java Dev...
 
Kurento: a media server architecture and API for WebRTC
Kurento: a media server architecture and API for WebRTCKurento: a media server architecture and API for WebRTC
Kurento: a media server architecture and API for WebRTC
 
The future of multimedia communications and services: Kurento and it's role
The future of multimedia communications and services: Kurento and it's roleThe future of multimedia communications and services: Kurento and it's role
The future of multimedia communications and services: Kurento and it's role
 
Kurento - FI-WARE Bootcamp
Kurento - FI-WARE BootcampKurento - FI-WARE Bootcamp
Kurento - FI-WARE Bootcamp
 
WebRTC business models beyond calls
WebRTC business models beyond callsWebRTC business models beyond calls
WebRTC business models beyond calls
 
Nubomedia IETF96 hackthon - Kurento
Nubomedia IETF96 hackthon - KurentoNubomedia IETF96 hackthon - Kurento
Nubomedia IETF96 hackthon - Kurento
 
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...
 
Nubomedia IETF96 hackathon - The platform
Nubomedia IETF96 hackathon - The platformNubomedia IETF96 hackathon - The platform
Nubomedia IETF96 hackathon - The platform
 
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
 
WebRTC Seminar Report
WebRTC  Seminar ReportWebRTC  Seminar Report
WebRTC Seminar Report
 
Intro to Reactor
Intro to ReactorIntro to Reactor
Intro to Reactor
 
Springone2gx 2014 Reactive Streams and Reactor
Springone2gx 2014 Reactive Streams and ReactorSpringone2gx 2014 Reactive Streams and Reactor
Springone2gx 2014 Reactive Streams and Reactor
 
Building great mobile apps: Somethings you might want to know
Building great mobile apps: Somethings you might want to knowBuilding great mobile apps: Somethings you might want to know
Building great mobile apps: Somethings you might want to know
 
Challenges in a Microservices Age: Monitoring, Logging and Tracing on Red Hat...
Challenges in a Microservices Age: Monitoring, Logging and Tracing on Red Hat...Challenges in a Microservices Age: Monitoring, Logging and Tracing on Red Hat...
Challenges in a Microservices Age: Monitoring, Logging and Tracing on Red Hat...
 
Introduction to Reactive Streams and Reactor 2.5
Introduction to Reactive Streams and Reactor 2.5Introduction to Reactive Streams and Reactor 2.5
Introduction to Reactive Streams and Reactor 2.5
 
Introduction to WebRTC
Introduction to WebRTCIntroduction to WebRTC
Introduction to WebRTC
 
Intro to Reactive Programming
Intro to Reactive ProgrammingIntro to Reactive Programming
Intro to Reactive Programming
 
Reactive Web Applications
Reactive Web ApplicationsReactive Web Applications
Reactive Web Applications
 
State of Securing Restful APIs s12gx2015
State of Securing Restful APIs s12gx2015State of Securing Restful APIs s12gx2015
State of Securing Restful APIs s12gx2015
 

Similar to kurento-nubomedia-first-steps-v1

Event Bus as Backbone for Decoupled Microservice Choreography (JFall 2017)
Event Bus as Backbone for Decoupled Microservice Choreography (JFall 2017)Event Bus as Backbone for Decoupled Microservice Choreography (JFall 2017)
Event Bus as Backbone for Decoupled Microservice Choreography (JFall 2017)
Lucas Jellema
 

Similar to kurento-nubomedia-first-steps-v1 (20)

Modern Cloud-Native Streaming Platforms: Event Streaming Microservices with K...
Modern Cloud-Native Streaming Platforms: Event Streaming Microservices with K...Modern Cloud-Native Streaming Platforms: Event Streaming Microservices with K...
Modern Cloud-Native Streaming Platforms: Event Streaming Microservices with K...
 
Day in the life event-driven workshop
Day in the life  event-driven workshopDay in the life  event-driven workshop
Day in the life event-driven workshop
 
Modern Cloud-Native Streaming Platforms: Event Streaming Microservices with A...
Modern Cloud-Native Streaming Platforms: Event Streaming Microservices with A...Modern Cloud-Native Streaming Platforms: Event Streaming Microservices with A...
Modern Cloud-Native Streaming Platforms: Event Streaming Microservices with A...
 
Sunserver Open Solaris
Sunserver Open SolarisSunserver Open Solaris
Sunserver Open Solaris
 
Architecting Low Latency Applications Alberto Gonzalez
Architecting Low Latency Applications Alberto GonzalezArchitecting Low Latency Applications Alberto Gonzalez
Architecting Low Latency Applications Alberto Gonzalez
 
Best Practices for Streaming IoT Data with MQTT and Apache Kafka
Best Practices for Streaming IoT Data with MQTT and Apache KafkaBest Practices for Streaming IoT Data with MQTT and Apache Kafka
Best Practices for Streaming IoT Data with MQTT and Apache Kafka
 
Viele Autos, noch mehr Daten: IoT-Daten-Streaming mit MQTT & Kafka (Kai Waehn...
Viele Autos, noch mehr Daten: IoT-Daten-Streaming mit MQTT & Kafka (Kai Waehn...Viele Autos, noch mehr Daten: IoT-Daten-Streaming mit MQTT & Kafka (Kai Waehn...
Viele Autos, noch mehr Daten: IoT-Daten-Streaming mit MQTT & Kafka (Kai Waehn...
 
VMware vFabric - Webinar with CIO Magazine
VMware vFabric - Webinar with CIO MagazineVMware vFabric - Webinar with CIO Magazine
VMware vFabric - Webinar with CIO Magazine
 
Best Practices for Streaming IoT Data with MQTT and Apache Kafka®
Best Practices for Streaming IoT Data with MQTT and Apache Kafka®Best Practices for Streaming IoT Data with MQTT and Apache Kafka®
Best Practices for Streaming IoT Data with MQTT and Apache Kafka®
 
IoT Physical Servers and Cloud Offerings.pdf
IoT Physical Servers and Cloud Offerings.pdfIoT Physical Servers and Cloud Offerings.pdf
IoT Physical Servers and Cloud Offerings.pdf
 
0150519-kurento.pdf
0150519-kurento.pdf0150519-kurento.pdf
0150519-kurento.pdf
 
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
 
Event Horizon at Solace Connect Singapore
Event Horizon at Solace Connect SingaporeEvent Horizon at Solace Connect Singapore
Event Horizon at Solace Connect Singapore
 
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
 
Un-clouding the cloud
Un-clouding the cloudUn-clouding the cloud
Un-clouding the cloud
 
Building a multi-tenanted Cloud-native AppServer
Building a multi-tenanted Cloud-native AppServerBuilding a multi-tenanted Cloud-native AppServer
Building a multi-tenanted Cloud-native AppServer
 
Event Bus as Backbone for Decoupled Microservice Choreography (JFall 2017)
Event Bus as Backbone for Decoupled Microservice Choreography (JFall 2017)Event Bus as Backbone for Decoupled Microservice Choreography (JFall 2017)
Event Bus as Backbone for Decoupled Microservice Choreography (JFall 2017)
 
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...
 
IBM Bluemix OpenWhisk: Serverless Conference 2016, London, UK: The Future of ...
IBM Bluemix OpenWhisk: Serverless Conference 2016, London, UK: The Future of ...IBM Bluemix OpenWhisk: Serverless Conference 2016, London, UK: The Future of ...
IBM Bluemix OpenWhisk: Serverless Conference 2016, London, UK: The Future of ...
 
WSO2 Cloud Strategy Update
WSO2 Cloud Strategy UpdateWSO2 Cloud Strategy Update
WSO2 Cloud Strategy Update
 

kurento-nubomedia-first-steps-v1

  • 1. Nubomedia: the cloud infrastructure for WebRTC and IMS multimedia real-time communications Luis Lopez lulop@kurento.org
  • 2. WebRTC infrastructures http://www.kurento.org 2 Peer-to-Peer WebRTC Application (without media infrastructure) WebRTC video stream WebRTC Application based on media infrastructure media infrastructure
  • 3. WebRTC media servers: the simplest WebRTC infrastructure • Media server – Monolithic software – Based on shared memory – Scales well vertically – Can’t scale horizontally • Media server vendors – Software vendors – Hardware vendors http://www.kurento.org 3
  • 4. WebRTC media server vendors http://www.kurento.org 4
  • 5. Function of WebRTC media servers http://www.kurento.org 5 Transcoding media server VP8 H.264 MCU/SFU media server Recording media server
  • 6. Evolution of media servers Current media servers http://www.kurento.org 6 What common WebRTC Media Servers do: • Transcoding • MCU • Recording What future Media Servers will do: • Flexible processing • Augmented reality • Blending • Mixing • Analyzing • Etc. Media is here Media goes there Transcoding MCU/SFU Recording Media is here Rich Media goes there Future media servers Media Events Transcoding, MCU/SFU, Recording, Enrich, Augment, Analyze, Combine, Transform, Adapt, … Context Content Commands
  • 7. Kurento Media Server http://www.kurento.org 7 Sink SRC Sink SRC SRC Sink Sink  Media Element • Provides a specific media functionality › Send/receive media › Process media › Transform media • Exchange media through › Sources › Sinks  Media pipeline • Chain of media elements implementing the desired media logic. • The Media API provides the capability of creating media pipelines by joining media elements of the toolbox Media Element Sink SRC
  • 8. Creating applications basing on Kurento Media Server H pEndpoint WebRtcEndpoint Application 2 IPTVConnector Mixer FaceDetector PointerTracker BarCodeReader HeartRateBlender ChromaFilter FaceOverlay http://www.kurento.org 8 Protocols & Codecs Computer Vision Augmented Reality Mul sensory Mul media DataChannelEndpoint PlayerEndpoint RecorderEndpoint Media Repository IPTV Integra on Group Communica ons Sink% Sink% SRC% RtpEndpoint SRC$ Sink% SRC% Sink% SRC% Sink% Sink% SRC% SRC% Sink% SRC% Sink% Sink% SRC% SRC% Sink% Sink% SRC$ CdnUpload Sink% Sink SRC Sink Sink SRC SRC Sink Sink Application 3 Sink SRC Sink Sink SRC Sink Sink SRC Application 1 Sink SRC Sink SRC Sink SRC Sink SRC Toolbox of media elements
  • 9. Beyond media servers: WebRTC clouds and the problem of scalability http://www.kurento.org 9 WebRTC Application based on media infrastructure WebRTC Cloud
  • 10. Cloud models for WebRTC infrastructures IaaS SaaS http://www.kurento.org 10 PaaS Provider - Computing resources Developer - Installation - Administration - Security - Application logic Provider - Development API Developer - Application logic Provider - Service Developer - Nothing to do
  • 11. WebRTC PaaS APIs: Requirements • Requirements of WebRTC PaaS APIs – Functional requirements • Media transport – Media endpoint – Media replication – Media routing • Media persistence – Media storage – Media recovery • Media processing – Transcoding – Analysis – Augmentation – Non-functional requirements • Security • Dependability • Scalability http://www.kurento.org 11
  • 12. WebRTC multimedia session • RFC 5117 – A multimedia session is an association among a group of participants engaged in the communication via one or more RTP Sessions. • Characterized by – Communication topology • Graph of multimedia flows – Multimedia processing • Function of each edge of the graph of media flows http://www.kurento.org 12 Transport Transcode Record
  • 13. Scalability of RTC multimedia services “Broadcasting Non-RTC” http://www.kurento.org 13 Number of concurrent sessions Number of users per session WebRTC PaaS Phone system TV Broadcasting CDNs Media Server based Services “RTC calls” “Home-made RTC” “Beyond RTC calls”
  • 14. Scalability of RTC multimedia services “Broadcasting Non-RTC” http://www.kurento.org 14 Number of concurrent sessions Number of users per session WebRTC PaaS Phone system TV Broadcasting CDNs Media Server based Services “RTC calls” “Home-made RTC” “Beyond RTC calls”
  • 15. The scalability problem in “call” clouds Call Call Call Call Call Call Call Call Call Call Call Call Call Call Call Call Call
  • 16. Anatomy of WebRTC PaaS for call models: Flat Architecture Application Server Broker Function http://www.kurento.org 16 Load Balancer Function Function IaaS Cloud Manager Media Server Function Cloud Orchestrator
  • 17. Cloud functions: IaaS manager Infrastructure as a Service APIs Security Management http://www.kurento.org 17 IaaS Cloud Manager Cloud Orchestrator • Function Applica. on%Server% %Func. on% Broker%Func. on% – Provides APIs for IaaS management • Images • Instances • Storage • Metrics • Security • Etc. • Requires – Physical infrastructure Cloud Orchestrator Image Management Computing Management Storage Management Networking Management Metrics and KPIs Load%Balancer% Func. on% IaaS%Cloud%Manager% Media%Server% Func. on% Cloud%Orchestrator%
  • 18. Cloud functions: Cloud Orchestrator Infrastructure as a Service APIs Security Management http://www.kurento.org 18 IaaS Cloud Manager Cloud Orchestrator • Function Applica. on%Server% %Func. on% Broker%Func. on% – Lifecycle management of the Nubomedia platform • It acquires virtual resources and allocate them to the specific services – Runtime management with autoscaling • It instantiates new service instances in situations of peak load • It scales in service instances whenever they are not required any longer • Requires – Autoscaling rules • Ex. If average load is over 60% add two new instances Image Management Computing Management Storage Management Networking Management Metrics and KPIs Load%Balancer% Func. on% IaaS%Cloud%Manager% Media%Server% Func. on% Cloud%Orchestrator%
  • 19. Media Server Function http://www.kurento.org 19 Application Server Instance Send Receive Analyze Augment Enrich Media Control Protocol Transform Transcode Record Process Replicate Media Server Instance • Function %Func. on% – Provides media capabilities Applica. on%Server% • WebRTC transport • Recording • Transcoding • Etc. • Requires – Control Protocol – Media Protocols – Media Codecs Media Server Instance Load%Balancer% Func. on% Broker%Func. on% IaaS%Cloud%Manager% Media%Server% Func. on% Cloud%Orchestrator%
  • 20. Broker Function http://www.kurento.org 20 Application Server Instance Broker Function Media Server Instance Media Server Instance Media Server Instance Media Server Instance • Function Applica. on%Server% %Func. on% Broker%Func. on% – Assigns “call” to specific media server instances • Give me a media server instance to take care of this call – “call” are never split among media servers • Requires – Scheduling policy • Round robing • Random • Less load • Etc. – Registration of MSis • All media server instances need to be known by the broker Call Call Load%Balancer% Func. on% IaaS%Cloud%Manager% Media%Server% Func. on% Cloud%Orchestrator%
  • 21. Application Server Client request • Function http://www.kurento.org 21 Signaling frontend Security logic API logic Application Server Instance – Signaling Load%Balancer% Func. on% Applica. on%Server% %Func. on% IaaS%Cloud%Manager% • Send/receive of signaling messages – Security logic • Authentication, Authorization, Accounting – API logic • Control of media server functions for providing API semantics • Requires – Signaling protocol implementation • SIP, JSON, etc. – Security rules • ACLs, CAP, etc. – Specific logic • Media server dependent Broker%Func. on% Media%Server% Func. on% Cloud%Orchestrator%
  • 22. Load balancer • Function Applica. on%Server% %Func. on% Broker%Func. on% – Distributes client requests among available AS instances – Usually stateful • Requires – Balancing policy • Round robin • Random • Less load • Etc. • Scaling needs – Low http://www.kurento.org 22 Client App. Load Balancer Function Application Server Instance Client App. Client App. Application Server Instance Application Server Instance Load%Balancer% Func. on% IaaS%Cloud%Manager% Media%Server% Func. on% Cloud%Orchestrator%
  • 23. The flat Nubomedia implementation Application Server Broker Function http://www.kurento.org 23 Load Balancer Function Function IaaS Cloud Manager Media Server Function Cloud Orchestrator
  • 24. Instance Lifecycle Packer Open Stack Heat http://www.kurento.org 24 OpenStack Glance OpenStack Swift Media Server Image Application Server Image Broker Image Load Balancer Image Heat Orchestration Template OpenStack Nova Scalability Group Autoscaling Rules Launch configurations Scalability Group Scalability Group Scalability Group Load Balancer Instance Application Server Instance Application Server Instance Broker Instance Media Server Instance Media Server Instance Media Server Instance
  • 25. Scalability of RTC multimedia services “Broadcasting Non-RTC” http://www.kurento.org 25 Number of concurrent sessions Number of users per session WebRTC PaaS Phone system TV Broadcasting CDNs Media Server based Services “RTC calls” “Home-made RTC” “Beyond RTC calls”
  • 26. Beyond calls: convergence of broadcasting and phone-like services http://www.kurento.org 26 Users in call Monitoring users Users can dynamically change their role
  • 27. The scalability problem in “beyond call” clouds http://www.kurento.org 27 Media stream One to MANY
  • 28. Anatomy of WebRTC PaaS for call models: Hierarchical Architecture Application Server Broker Function http://www.kurento.org 28 Load Balancer Function Function IaaS Cloud Manager Media Server Function Cloud Orchestrator
  • 29. Media Server Function http://www.kurento.org 29 Media Server Instance Media Server Instance Media Server Instance Media Server Instance Media Server Instance Media Server Instance • Function Load%Balancer% Func. on% Applica. on%Server% %Func. on% Broker%Func. on% IaaS%Cloud%Manager% – Provides elastics media capabilities • Strong dependencies among media server instances • Media servers connect following a specific topology • Requires – Glue mechanism among media server instances Media%Server% Func. on% Cloud%Orchestrator%
  • 30. The elastic media server http://www.kurento.org 30 • Elasticity Applica. on%Server% %Func. on% Broker%Func. on% – On the number of media pipelines • Number of concurrent sessions – On the number of elements per media pipeline • Number of concurrent users per session – Media Pipeline • Distributed media pipeline • Rigidity – The media element is a monolithic (non distributed) entity Sink SRC Sink SRC Sink SRC Sink SRC Sink SRC Sink SRC Sink SRC Load%Balancer% Func. on% IaaS%Cloud%Manager% Media%Server% Func. on% Cloud%Orchestrator%
  • 31. Broker Function Server Instance • Function http://www.kurento.org 31 Application Broker Function Applica. on%Server% %Func. on% Broker%Func. on% – Assigns “call legs” to specific media server instances • Give me a media server instance to take care of this call – “call” are split among different media server instances • Requires – Scheduling policy • Topology aware • Network aware • SLA aware • Etc. – Very complex problem • Leg adding may require additional media server instances • Churn is very complex to manage Media Server Instance Media Server Instance Media Server Instance Media Server Instance Media Server Instance Load%Balancer% Func. on% IaaS%Cloud%Manager% Media%Server% Func. on% Cloud%Orchestrator%
  • 32. Hierarchical Nubomedia implementation: Work in progress Applica. on%Server% Broker%Func. on% http://www.kurento.org 32 Load%Balancer% Func. on% %Func. on% IaaS%Cloud%Manager% Media%Server% Func. on% Cloud%Orchestrator% Own implementation
  • 33. Lessons learnt • CAP theorem – You cannot be available and consistent at the same time • Implementing security – ACLs are slow • Poisson messages – Managing failures is tricky • Video streams are not like water streams – FIRs & PLIs killed the cat • Scaling out simpler than scaling in – Move or wait? • Managing video quality is THE PROBLEM – Simulcast Vs Transcoding http://www.kurento.org 33
  • 34. Nubomedia: the elastic RTC multimedia infrastructure http://www.kurento.org 34 Thanks Partners