Nubomedia: the cloud infrastructure for WebRTC and IMS multimedia - - PowerPoint PPT Presentation

nubomedia the cloud infrastructure for webrtc and ims
SMART_READER_LITE
LIVE PREVIEW

Nubomedia: the cloud infrastructure for WebRTC and IMS multimedia - - PowerPoint PPT Presentation

Nubomedia: the cloud infrastructure for WebRTC and IMS multimedia real-time communications Luis Lopez lulop@kurento.org Human communications 2 http://www.kurento.org The value of technology 3 http://www.kurento.org Multimedia


slide-1
SLIDE 1

Nubomedia: the cloud infrastructure for WebRTC and IMS multimedia real-time communications

Luis Lopez lulop@kurento.org

slide-2
SLIDE 2

Human communications

http://www.kurento.org

2

slide-3
SLIDE 3

The value of technology

http://www.kurento.org

3

slide-4
SLIDE 4

Multimedia communication technologies

http://www.kurento.org

4 2G

3G 4G

5G

Audio

Video

HD Video

HD 3D Video

slide-5
SLIDE 5

The Kurento vision

http://www.kurento.org

5

From this … … to this Knowledge

slide-6
SLIDE 6

Cooking Kurento

http://www.kurento.org

6

slide-7
SLIDE 7

WebRTC: present and future

http://www.kurento.org

7

Developing the client side Developing the infrastructure side Before WebRTC After WebRTC Next natural step…

Begin End Begin End Begin End

  • Unified APIs
  • Standards
  • FOSS
  • Multiplatform
  • Unified APIs
  • Standards
  • FOSS
  • Multiplatform
  • Unified APIs
  • Standards
  • FOSS
  • Multiplatform
slide-8
SLIDE 8

WebRTC infrastructures

http://www.kurento.org

8

Peer-to-Peer WebRTC Application (without media infrastructure)

WebRTC video stream

WebRTC Application based on media infrastructure

media infrastructure

slide-9
SLIDE 9

Function of WebRTC media servers

http://www.kurento.org

9

Transcoding media server VP8 H.264 MCU/SFU media server Recording media server

slide-10
SLIDE 10

Kurento as a WebRTC media server

http://www.kurento.org

10

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

Current media servers 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

slide-11
SLIDE 11

Why is this important

WebRTC Making calls Content and entertainment IoT M2M P2M Multimedia Making calls WARNING! Overcrowded Advertising Broadcasting Gaming eLearning Blue Ocean Smart cities Emergencies Security Blue Ocean

slide-12
SLIDE 12

WebRTC as a disruptive technology

http://www.kurento.org

12

Number of users

General purpose RTC multimedia Services Specific purpose RTC multimedia services

Commodity, no business

  • pportunities here

Who cares about the immense minority? Many business opportunities here

Disruption direction

  • f WebRTC
slide-13
SLIDE 13

Kurento Media Server

http://www.kurento.org

13

  • 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

slide-14
SLIDE 14

Creating applications basing on Kurento Media Server

http://www.kurento.org

14

Application 2 Application 3 Application 1 Toolbox of media elements

slide-15
SLIDE 15

Creating applications with Kurento

http://www.kurento.org

15

slide-16
SLIDE 16

http://www.kurento.org

16

slide-17
SLIDE 17

What you should learn first

  • WebRTC basics

– http://www.html5rocks.com/en/tutorials/webrtc/ basics/

  • Signaling basics (STUN/TURN)

– http://www.html5rocks.com/en/tutorials/webrtc/ infrastructure/

slide-18
SLIDE 18

Starting with Kurento

http://www.kurento.org

18

  • Kurento official documentation

– http://www.kurento.org/documentation

  • Kurento FIWARE documentation

– Catalogue site

  • http://catalogue.fiware.org/enablers/stream-oriented-

kurento

– Documentation

  • http://catalogue.fiware.org/enablers/stream-oriented-

kurento/documentation

slide-19
SLIDE 19

Installing Kurento Media Server

http://www.kurento.org

19

  • Requirements

– Ubuntu 14.04 box (sudo) – Internet connectivity

  • Install

– sudo add-apt-repository ppa:kurento/kurento – sudo apt-get update – sudo apt-get install kurento-media-server

  • Launch

– sudo service kurento-media-server start

slide-20
SLIDE 20

Kurento “Hello World!”

http://www.kurento.org

20

slide-21
SLIDE 21

Kurento “Hello World!”

http://www.kurento.org

21

  • Tutorial

– http://www.kurento.org/docs/current/tutorials/js/tuto rial-1-helloworld.html

  • Code

– https://github.com/Kurento/kurento-tutorial- js/tree/release-5.1/kurento-hello-world

  • Video

– https://www.youtube.com/watch?v=vGEnkSOp_xc

slide-22
SLIDE 22

Understanding this example

http://www.kurento.org

22

PeerConnection API getUserMedia API kurento-utils Kurento-client-js Application Code WebSocket API Kurento Media Server

Browser Signaling Media

slide-23
SLIDE 23

Recording and playing

http://www.kurento.org

23

Sink SRC Sink Sink SRC SRC

slide-24
SLIDE 24

Recording and playing

http://www.kurento.org

24

  • Get code here

– https://github.com/Kurento/kurento-tutorial- js/tree/release-5.1/kurento-hello-world-recorder- generator – WARNING: Example using generators!!

  • Video

– https://www.youtube.com/watch?v=rDd2NjFXcS0

slide-25
SLIDE 25

JavaScript Generators

http://www.kurento.org

25

  • Generators

– Black magic for avoiding callback hell – Program asynchronously with synchronous philosophy

  • Warning

– “Enable Experimental JavaScript” flag

slide-26
SLIDE 26

One-to-many example

http://www.kurento.org

26

Media Pipeline

WebRTC streaming

Sink SRC

WebRTC streaming

SRC Sink SRC Sink

WebRTC streaming WebRtcEndpoint 1 WebRtcEndpoint 3 WebRtcEndpoint 2

SRC Sink

WebRTC streaming WebRtcEndpoint 4 User 1 User 2 User 3 User 4

slide-27
SLIDE 27

One-to-many

http://www.kurento.org

27

  • Java EE

– http://www.kurento.org/docs/current/tutorials/java/t utorial-3-one2many.html

  • Node.js

– http://www.kurento.org/docs/current/tutorials/node/ utorial-3-one2many.html

slide-28
SLIDE 28

Face overlay example

http://www.kurento.org

28

  • Browser JavaScript

– http://www.kurento.org/docs/current/tutorials/js/tutorial-2-magicmirror.html

  • Java

– http://www.kurento.org/docs/current/tutorials/java/tutorial-2-magicmirror.html

  • Node.js

– http://www.kurento.org/docs/current/tutorials/node/tutorial-3-one2many.html

  • Video

– https://www.youtube.com/watch?v=h84HFkvWGgw

slide-29
SLIDE 29

Augmented Reality example

http://www.kurento.org

29

  • Video

– https://www.youtube.com/watch?v=JlRg4PzeRKQ

Sink SRC Sink SRC

slide-30
SLIDE 30

Motion detector

http://www.kurento.org

30

  • Video

– https://www.youtube.com/watch?v=r91nExNEHiw

slide-31
SLIDE 31

Crowd detector

http://www.kurento.org

31

  • Video

– https://www.youtube.com/watch?v=S6iWSCysgT0

CrowdEvents

SRC Sink SRC

CrowdDetector RtspPlayer

Sink SRC

slide-32
SLIDE 32

Many other examples

  • Face segmentator (aka get a Kiss)

– https://www.youtube.com/watch?v=WRmzzblZGDo

  • Room communications

– https://www.youtube.com/watch?v=hkT8fLROdwo

  • B2B calls

– https://www.youtube.com/watch?v=ocJBDo8K6eM

  • Etc.

http://www.kurento.org

32

slide-33
SLIDE 33

Beyond media servers: WebRTC clouds and the problem of scalability

http://www.kurento.org

33

WebRTC Application based on media infrastructure

WebRTC Cloud

slide-34
SLIDE 34

Cloud models for WebRTC infrastructures

http://www.kurento.org

34

PaaS IaaS SaaS

Provider

  • Computing resources

Developer

  • Installation
  • Administration
  • Security
  • Application logic

Provider

  • Development API

Developer

  • Application logic

Provider

  • Service

Developer

  • Nothing to do
slide-35
SLIDE 35

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

35

slide-36
SLIDE 36

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

36

Transport Transcode Record Analyze Etc.

slide-37
SLIDE 37

Scalability of RTC multimedia services

http://www.kurento.org

37

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” “Broadcasting Non-RTC” “Beyond RTC calls”

slide-38
SLIDE 38

Scalability of RTC multimedia services

http://www.kurento.org

38

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” “Broadcasting Non-RTC” “Beyond RTC calls”

slide-39
SLIDE 39

The scalability problem in “call” clouds

Call Call l Call Call Call Call Call Call Call Call Call Call Call Call Call Call

slide-40
SLIDE 40

Anatomy of WebRTC PaaS for call models: Flat Architecture

http://www.kurento.org

40

Load Balancer Function IaaS Cloud Manager Application Server Function Broker Function Media Server Function Cloud Orchestrator

slide-41
SLIDE 41

Cloud functions: IaaS manager

http://www.kurento.org

41

IaaS Cloud Manager Cloud Orchestrator

  • Function

– Provides APIs for IaaS management

  • Images
  • Instances
  • Storage
  • Metrics
  • Security
  • Etc.
  • Requires

– Physical infrastructure

IaaS Cloud Manager Cloud Orchestrator

Image Management Computing Management Storage Management Networking Management Security Management Metrics and KPIs Infrastructure as a Service APIs

slide-42
SLIDE 42

Cloud functions: Cloud Orchestrator

http://www.kurento.org

42

IaaS Cloud Manager Cloud Orchestrator

  • Function

– Lifecycle management of the platform

  • It acquires virtual resources and

allocate them to the specific services

– Runtime management with autoscaling

  • It scales out 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 Security Management Metrics and KPIs Infrastructure as a Service APIs

slide-43
SLIDE 43

Media Server Function

http://www.kurento.org

43

Send Receive Analyze Augment Enrich Transform Transcode Record Process Replicate

Media Server Instance

Application Server Instance

Media Control Protocol

  • Function

– Provides media capabilities

  • WebRTC transport
  • Recording
  • Transcoding
  • Etc.
  • Requires

– Control Protocol – Media Protocols – Media Codecs

Media Server Instance

slide-44
SLIDE 44

Broker Function

http://www.kurento.org

44

Broker Function

Application Server Instance

Media Server Instance Media Server Instance Media Server Instance Media Server Instance

  • Function

– 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

slide-45
SLIDE 45

Application Server

http://www.kurento.org

45

Application Server Instance

Signaling frontend Security logic API logic Client request

  • Function

– Signaling

  • Send/receive of signaling messages

– Security logic

  • Authentication, Authorization,

Accounting

– PaaS 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
slide-46
SLIDE 46

Load balancer

  • Function

– 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

46

Load Balancer Function

Client App. Application Server Instance Client App. Client App. Application Server Instance Application Server Instance

slide-47
SLIDE 47

The flat Nubomedia implementation

http://www.kurento.org

47

Load Balancer Function IaaS Cloud Manager Application Server Function Broker Function Media Server Function Cloud Orchestrator

slide-48
SLIDE 48

Instance Lifecycle

http://www.kurento.org

48

OpenStack Swift OpenStack Glance

Media Server Image Application Server Image Broker Image Load Balancer Image

Heat Orchestration Template OpenStack Nova

Scalability Group

Open Stack Heat Packer

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

slide-49
SLIDE 49

Scalability of RTC multimedia services

http://www.kurento.org

49

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” “Broadcasting Non-RTC” “Beyond RTC calls”

slide-50
SLIDE 50

Beyond calls: convergence of broadcasting and phone-like services

http://www.kurento.org

50

Users in call Monitoring users Users can dynamically change their role

slide-51
SLIDE 51

The scalability problem in “beyond call” clouds

http://www.kurento.org

51

Media stream

One to MANY

slide-52
SLIDE 52

Anatomy of WebRTC PaaS for call models: Hierarchical Architecture

http://www.kurento.org

52

Load Balancer Function IaaS Cloud Manager Application Server Function Broker Function Media Server Function Cloud Orchestrator

slide-53
SLIDE 53

Media Server Function

http://www.kurento.org

53

Media Server Instance Media Server Instance Media Server Instance Media Server Instance Media Server Instance Media Server Instance

  • Function

– Provides elastics media capabilities

  • Strong dependencies

among media server instances

  • Media servers connect

following a specific topology

  • Requires

– Glue mechanism among media server instances

slide-54
SLIDE 54

The elastic media server

http://www.kurento.org

54

  • Elasticity

– 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

slide-55
SLIDE 55

Broker Function

http://www.kurento.org

55

Broker Function

Application Server Instance

  • Function

– 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

slide-56
SLIDE 56

Hierarchical Nubomedia implementation: Work in progress

http://www.kurento.org

56 56

Own implementation