SlideShare a Scribd company logo
OpenStack based WebRTC PaaS by
Frafos
May 2015, José Luis Millán, Binan Al Halabi
Intro
HOWTO for implementing a simple WebRTC service,
using JsSIP and OpenStack-based Frafos WebRTC
PaaS
•Background: WebRTC, PaaS
•JsSIP
•Openstack PaaS
Frafos Architectural Assumptions
Voice is not a target product anymore
•It is becoming an add-on for web apps.
•It is easier to add a media channel to an app (like CRM)
than vice versa. WebRTC does exactly that.
•We integrate the business logic with media using the
browser
•We therefore contemplate that infrastructural VoIP will be
standardized into PaaS so that application integrators
won’t be concerned about VoIP.
Frafos PaaS Architecture
WebRTC
Browser
integrates
Business Logic
with VoIP
Channel
Business Apps
online shops,
customer service,
eductation,
entertainment
HTTP
WebRTC
protocol
suite
Standardized VoIP Cloud: provides SIP and
PSTN connectivity, NAT traversal, media
processing, scaling, high-availability, and
security.
Example App: Cloud Audio Conference
•Faster-to-build than any
enterprise IT can: The
browser applicationfor
organizing web-
conferencing
implementedand tested
within two weeks.
•Consumer-gradeeasy to
use: three browser steps
to be in conference.
Start Invite
Talk
Using JsSIP (go.areteasea.com)
Openstack-based PaaS
PaaS Objectives
•Simple integration --> Less errors
•Cost: minimum of extra traffic and processing
needed for the integration
•Scalability
•Service Monitoring
•Minimum delay (caching when possible +
shortest geographical path)
•No single point of failure
•Clean shutdown/termination
Automated Scalability
•Automation --> Less errors
•Better customer experience:
•(High demand --> add servers)
•Lower costs:
•(Lower demands --> remove servers)
Openstack Auto-Scaling
WebRTC
Cloud Servers
Load Balancers
Resources
+
Auto Scaling Group
The Resources are scaled up and down based on
the policies
…..
Heat Client
•Using heat client to create the stack/resources
# heat stack-create stack01 -f template.yaml ...
•Openstack control panel
Heat Template
•The template = static
architectural design of your
application (infrastructure
resources in a text file
treated as code).
•Syntax: HOT, YAML, or
JSON
•The snippet here is how to
define a scaling group
group:
type: OS::Heat::AutoScalingGroup
properties:
cooldown: 60
desired_capacity: 2
max_size: 5
min_size: 1
resource:
type: OS::Nova::Server::Frafos
Here the server is defined in a separate yaml file and mapped
in the environment yaml file:
resource_registry:
"OS::Nova::Server::Frafos": "fserver.yaml"
Orchestration Service
•Heat is the orchestration tool used for:
•Create resources described in a template
•Configure the resources
•Installing packages
•Auto-scale the resources
•Heat interacts with different Openstack services
using the APIs (e.g. Heat creates the alarms
using Ceilometer API service)
Ceilometer + Heat
But
•Originally Ceilometer is designed for metering
and not for monitoring
•Ceilometer is not for application/service level
monitoring
• Openstack monitoring as service:
•E.g. Monasca that integrates with
Openstack (requires Monasca agent to be
installed on servers)
Rackspace Monitoring Service
•Monitoring agent must be installed on machine
to reports metrics
•The users can create their own checks:
• Predefined metrics (CPU, Memory, Load, ..)
• Custom (Frafos metrics: calls, regs, and
TCPs)
•The service is integrated with autoscaling
service using general webhooks created for
scaling policies
Rackspace Monitoring Service
Autoscaling policy is triggered --> Alarm is sent to Rackspace
Autoscaling service
Frafos Custom Metrics
•Regs, Calls, and TCP Metrics
•The monitoring agent installed on servers
reports these metrics periodically (60 s)
•Push-Metrics bash script works as plugin to the
monitoring agent
Push-Metrics Frafos Plugin
•It is a Bash script
•SNMP-based: Obtain the measured data using
SNMP
•Echos the metrics in the following format:
metric <name> <type> <value> [<unit>]
e.g. "metric calls int32 $calls [Count]"
•The agent takes the echoed metrics in that
format and sends them to the monitoring
service using Metrics API.
No Clean Shutdown
•When the scale-down policy is triggered, Nova kills
the servers as following:
•Immediately and hardly
•Killing priority: Pending servers and then the
oldest
•The problems are:
•Gateway case: existing calls
•Conference case: existing served conference
rooms (long sessions) + late-join requests
•Shutdown controlled by the server is needed
Solution: Heat Software Deployment
•Available since IceHouse Openstack release (2014)
•New resource type OS::Heat::SoftwareConfig which
defines the configuration
•New resource type: OS::Heat::SoftwareDeployment
which bind the configuration with the lifecycle actions:
CREATE, DELETE,.. actions
•The deployment resource remains in progress until a
signal comes from the server --> complete state
• Heat agents must be installed on the server: os-collect-
config, os-refresh-config, heat-config, heat-config-hook,
and heat-config-notify to support the software
deployment in Heat
(1) Server Configuration
•The user_data_format property must be specified as
SOFTWARE_CONFIG in the server definition in the template
•The software_config_transport property specifies how
the software config metadata goes from Heat to the server
server:
type: OS::Nova::Server
properties:
image: ...
user_data_format:SOFTWARE_CONFIG
software_config_transport: POLL_SERVER_HEAT
(2) DELETE Action Configuration
•OS::Heat::SoftwareConfig encapsulates the configuration that
we want to apply on DELETE
•“group” property is the type of the configuration to be applied
•“get_file” property can be remote or local address
•The script will be packed in the stack creation package by the
heat command (Heat client)
•The script will be passed to the server to be executed on
DELETE
delete_config:
type : OS::Heat::SoftwareConfig
properties:
group: script
inputs: ...
config: { get_file: scripts/drain_sessions.sh }
(3) DELETE Action Deployment
Bind the configuration with the DELETE action
- No new connections
- Clean (drain_sessions.sh)
- Kill - send HEAT_SIGNAL signal using curl to Heat's API
service
frafos-server-delete:
type : OS::Heat::SoftwareDeployment
properties:
actions: [ DELETE ]
config: { get_resource delete_config }
input_values: {...}
server: ...
....
signal_transport : HEAT_SIGNAL
Clean Shutdown - Conference Case
JOIN-Late Requests
In conference case, people may join a
conference late --> the terminating/dying server
should not completely isolated
- The server is removed from LB
- The rest of servers redirect the late-join requests to
that server using the public IP
- The server drains its sessions
- Then the server signals Heat with HEAT_SIGNAL to be
killed
Thank You
Frafos GmbH, Ahoy office, Windscheidstraße 18, 10627 Berlin, Germany
http:// www.frafos.com
mailto:info@frafos.com
Visit Our Online Demo
go.areteasea.com

More Related Content

What's hot

Hortonworks Data Cloud for AWS
Hortonworks Data Cloud for AWS Hortonworks Data Cloud for AWS
Hortonworks Data Cloud for AWS
Hortonworks
 
Hot tutorials
Hot tutorialsHot tutorials
Hot tutorials
Kanagaraj M
 
Apache Ambari Meetup - AMS & Grafana
Apache Ambari Meetup - AMS & GrafanaApache Ambari Meetup - AMS & Grafana
Apache Ambari Meetup - AMS & Grafana
Prajwal Rao
 
Cloud Foundry and OpenStack: How They Fit - Cloud Expo 2014
Cloud Foundry and OpenStack: How They Fit - Cloud Expo 2014Cloud Foundry and OpenStack: How They Fit - Cloud Expo 2014
Cloud Foundry and OpenStack: How They Fit - Cloud Expo 2014
Jason Anderson
 
Template Languages for OpenStack - Heat and TOSCA
Template Languages for OpenStack - Heat and TOSCATemplate Languages for OpenStack - Heat and TOSCA
Template Languages for OpenStack - Heat and TOSCACloud Native Day Tel Aviv
 
Orchestration across multiple cloud platforms using Heat
Orchestration across multiple cloud platforms using HeatOrchestration across multiple cloud platforms using Heat
Orchestration across multiple cloud platforms using Heat
CoreStack
 
Apache Ambari - What's New in 2.4
Apache Ambari - What's New in 2.4 Apache Ambari - What's New in 2.4
Apache Ambari - What's New in 2.4
Hortonworks
 
Load Balancer Component Architecture - Apache Stratos 4.0.0
Load Balancer Component Architecture - Apache Stratos 4.0.0Load Balancer Component Architecture - Apache Stratos 4.0.0
Load Balancer Component Architecture - Apache Stratos 4.0.0Imesh Gunaratne
 
OpenStack Orchestration (Heat)
OpenStack Orchestration (Heat)OpenStack Orchestration (Heat)
OpenStack Orchestration (Heat)
Jimi Chen
 
Past, Present and Future of Apache Ambari
Past, Present and Future of Apache AmbariPast, Present and Future of Apache Ambari
Past, Present and Future of Apache Ambari
Artem Ervits
 
Autoscaling OpenStack Natively with Heat, Ceilometer and LBaaS
Autoscaling OpenStack Natively with Heat, Ceilometer and LBaaSAutoscaling OpenStack Natively with Heat, Ceilometer and LBaaS
Autoscaling OpenStack Natively with Heat, Ceilometer and LBaaS
Shixiong Shang
 
OpenStack Heat slides
OpenStack Heat slidesOpenStack Heat slides
OpenStack Heat slidesdbelova
 
Heat - keep the clouds up
Heat - keep the clouds upHeat - keep the clouds up
Heat - keep the clouds up
Kiran Murari
 
Partner spotlight: Telestream
Partner spotlight: TelestreamPartner spotlight: Telestream
Partner spotlight: Telestream
FileCatalyst
 
Apache Ambari - What's New in 2.0.0
Apache Ambari - What's New in 2.0.0Apache Ambari - What's New in 2.0.0
Apache Ambari - What's New in 2.0.0
Hortonworks
 
Apache Ambari - What's New in 1.5.0
Apache Ambari - What's New in 1.5.0Apache Ambari - What's New in 1.5.0
Apache Ambari - What's New in 1.5.0Hortonworks
 
Apache Ambari: Past, Present, Future
Apache Ambari: Past, Present, FutureApache Ambari: Past, Present, Future
Apache Ambari: Past, Present, Future
Hortonworks
 
Accelerating azure adoption with puppet
Accelerating azure adoption with puppetAccelerating azure adoption with puppet
Accelerating azure adoption with puppet
Puppet
 
Managing 2000 Node Cluster with Ambari
Managing 2000 Node Cluster with AmbariManaging 2000 Node Cluster with Ambari
Managing 2000 Node Cluster with AmbariDataWorks Summit
 

What's hot (20)

Hortonworks Data Cloud for AWS
Hortonworks Data Cloud for AWS Hortonworks Data Cloud for AWS
Hortonworks Data Cloud for AWS
 
Hot tutorials
Hot tutorialsHot tutorials
Hot tutorials
 
Apache Ambari Meetup - AMS & Grafana
Apache Ambari Meetup - AMS & GrafanaApache Ambari Meetup - AMS & Grafana
Apache Ambari Meetup - AMS & Grafana
 
Cloud Foundry and OpenStack: How They Fit - Cloud Expo 2014
Cloud Foundry and OpenStack: How They Fit - Cloud Expo 2014Cloud Foundry and OpenStack: How They Fit - Cloud Expo 2014
Cloud Foundry and OpenStack: How They Fit - Cloud Expo 2014
 
Template Languages for OpenStack - Heat and TOSCA
Template Languages for OpenStack - Heat and TOSCATemplate Languages for OpenStack - Heat and TOSCA
Template Languages for OpenStack - Heat and TOSCA
 
Orchestration across multiple cloud platforms using Heat
Orchestration across multiple cloud platforms using HeatOrchestration across multiple cloud platforms using Heat
Orchestration across multiple cloud platforms using Heat
 
Apache Ambari - What's New in 2.4
Apache Ambari - What's New in 2.4 Apache Ambari - What's New in 2.4
Apache Ambari - What's New in 2.4
 
Load Balancer Component Architecture - Apache Stratos 4.0.0
Load Balancer Component Architecture - Apache Stratos 4.0.0Load Balancer Component Architecture - Apache Stratos 4.0.0
Load Balancer Component Architecture - Apache Stratos 4.0.0
 
OpenStack Orchestration (Heat)
OpenStack Orchestration (Heat)OpenStack Orchestration (Heat)
OpenStack Orchestration (Heat)
 
Past, Present and Future of Apache Ambari
Past, Present and Future of Apache AmbariPast, Present and Future of Apache Ambari
Past, Present and Future of Apache Ambari
 
Autoscaling OpenStack Natively with Heat, Ceilometer and LBaaS
Autoscaling OpenStack Natively with Heat, Ceilometer and LBaaSAutoscaling OpenStack Natively with Heat, Ceilometer and LBaaS
Autoscaling OpenStack Natively with Heat, Ceilometer and LBaaS
 
OpenStack Heat slides
OpenStack Heat slidesOpenStack Heat slides
OpenStack Heat slides
 
Heat - keep the clouds up
Heat - keep the clouds upHeat - keep the clouds up
Heat - keep the clouds up
 
Partner spotlight: Telestream
Partner spotlight: TelestreamPartner spotlight: Telestream
Partner spotlight: Telestream
 
Apache Ambari - What's New in 2.0.0
Apache Ambari - What's New in 2.0.0Apache Ambari - What's New in 2.0.0
Apache Ambari - What's New in 2.0.0
 
Apache Ambari - What's New in 1.5.0
Apache Ambari - What's New in 1.5.0Apache Ambari - What's New in 1.5.0
Apache Ambari - What's New in 1.5.0
 
OpenStack Ceilometer
OpenStack CeilometerOpenStack Ceilometer
OpenStack Ceilometer
 
Apache Ambari: Past, Present, Future
Apache Ambari: Past, Present, FutureApache Ambari: Past, Present, Future
Apache Ambari: Past, Present, Future
 
Accelerating azure adoption with puppet
Accelerating azure adoption with puppetAccelerating azure adoption with puppet
Accelerating azure adoption with puppet
 
Managing 2000 Node Cluster with Ambari
Managing 2000 Node Cluster with AmbariManaging 2000 Node Cluster with Ambari
Managing 2000 Node Cluster with Ambari
 

Viewers also liked

Tuning 17 march
Tuning 17 marchTuning 17 march
Tuning 17 march
Binan AL Halabi
 
모바일 필기인식 알고리즘
모바일 필기인식 알고리즘모바일 필기인식 알고리즘
모바일 필기인식 알고리즘
낙현 정
 
IPV6 Flow Labels
IPV6 Flow LabelsIPV6 Flow Labels
IPV6 Flow Labels
Binan AL Halabi
 
OpenStack Horizon: Controlling the Cloud using Django
OpenStack Horizon: Controlling the Cloud using DjangoOpenStack Horizon: Controlling the Cloud using Django
OpenStack Horizon: Controlling the Cloud using Django
David Lapsley
 
Geek Week 2016 - Deep Dive To Openstack
Geek Week 2016 -  Deep Dive To OpenstackGeek Week 2016 -  Deep Dive To Openstack
Geek Week 2016 - Deep Dive To Openstack
Haim Ateya
 
Modeling DNA unzipping in the presence of bound proteins
Modeling DNA unzipping in the presence of bound proteinsModeling DNA unzipping in the presence of bound proteins
Modeling DNA unzipping in the presence of bound proteinsguestb5dd5e
 
TCP/IP geeks Stockholm :: Manifesto
TCP/IP geeks Stockholm :: ManifestoTCP/IP geeks Stockholm :: Manifesto
TCP/IP geeks Stockholm :: Manifesto
Olle E Johansson
 

Viewers also liked (7)

Tuning 17 march
Tuning 17 marchTuning 17 march
Tuning 17 march
 
모바일 필기인식 알고리즘
모바일 필기인식 알고리즘모바일 필기인식 알고리즘
모바일 필기인식 알고리즘
 
IPV6 Flow Labels
IPV6 Flow LabelsIPV6 Flow Labels
IPV6 Flow Labels
 
OpenStack Horizon: Controlling the Cloud using Django
OpenStack Horizon: Controlling the Cloud using DjangoOpenStack Horizon: Controlling the Cloud using Django
OpenStack Horizon: Controlling the Cloud using Django
 
Geek Week 2016 - Deep Dive To Openstack
Geek Week 2016 -  Deep Dive To OpenstackGeek Week 2016 -  Deep Dive To Openstack
Geek Week 2016 - Deep Dive To Openstack
 
Modeling DNA unzipping in the presence of bound proteins
Modeling DNA unzipping in the presence of bound proteinsModeling DNA unzipping in the presence of bound proteins
Modeling DNA unzipping in the presence of bound proteins
 
TCP/IP geeks Stockholm :: Manifesto
TCP/IP geeks Stockholm :: ManifestoTCP/IP geeks Stockholm :: Manifesto
TCP/IP geeks Stockholm :: Manifesto
 

Similar to Openstack based WebRTC PaaS - Kamailio World 2015

Infrastructure as Code
Infrastructure as CodeInfrastructure as Code
Infrastructure as Code
Albert Suwandhi
 
Datasheet was pluginforrd
Datasheet was pluginforrdDatasheet was pluginforrd
Datasheet was pluginforrdMidVision
 
IBM InterConnect 2015 - IIB in the Cloud
IBM InterConnect 2015 - IIB in the CloudIBM InterConnect 2015 - IIB in the Cloud
IBM InterConnect 2015 - IIB in the Cloud
Andrew Coleman
 
NET Aspire - NET Conf IL 2024 - Tamir Dresher.pdf
NET Aspire - NET Conf IL 2024 - Tamir Dresher.pdfNET Aspire - NET Conf IL 2024 - Tamir Dresher.pdf
NET Aspire - NET Conf IL 2024 - Tamir Dresher.pdf
Tamir Dresher
 
VMworld 2013: Deploying vSphere with OpenStack: What It Means to Your Cloud E...
VMworld 2013: Deploying vSphere with OpenStack: What It Means to Your Cloud E...VMworld 2013: Deploying vSphere with OpenStack: What It Means to Your Cloud E...
VMworld 2013: Deploying vSphere with OpenStack: What It Means to Your Cloud E...
VMworld
 
Successful Patterns for running platforms
Successful Patterns for running platformsSuccessful Patterns for running platforms
Successful Patterns for running platforms
Paul Czarkowski
 
Datasheet apachepluginforrd
Datasheet apachepluginforrdDatasheet apachepluginforrd
Datasheet apachepluginforrdMidVision
 
Transforming Software Development
Transforming Software DevelopmentTransforming Software Development
Transforming Software Development
Amazon Web Services
 
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...
confluent
 
Azure Web App services
Azure Web App servicesAzure Web App services
Azure Web App services
Alexey Bokov
 
Un-clouding the cloud
Un-clouding the cloudUn-clouding the cloud
Un-clouding the cloud
Davinder Kohli
 
Logic Apps, the power of new integration
Logic Apps, the power of new integrationLogic Apps, the power of new integration
Logic Apps, the power of new integration
Félix Mondelo
 
Cloud Foundry: Hands-on Deployment Workshop
Cloud Foundry: Hands-on Deployment WorkshopCloud Foundry: Hands-on Deployment Workshop
Cloud Foundry: Hands-on Deployment Workshop
Manuel Garcia
 
Practical advice on deployment and management of enterprise workloads
Practical advice on deployment and management of enterprise workloadsPractical advice on deployment and management of enterprise workloads
Practical advice on deployment and management of enterprise workloads
Jarek Miszczyk
 
Deep Dive: OpenStack Summit (Red Hat Summit 2014)
Deep Dive: OpenStack Summit (Red Hat Summit 2014)Deep Dive: OpenStack Summit (Red Hat Summit 2014)
Deep Dive: OpenStack Summit (Red Hat Summit 2014)
Stephen Gordon
 
Continuous Integration and Deployment Best Practices on AWS
Continuous Integration and Deployment Best Practices on AWSContinuous Integration and Deployment Best Practices on AWS
Continuous Integration and Deployment Best Practices on AWS
Amazon Web Services
 
From Containerized Application to Secure and Scaling With Kubernetes
From Containerized Application to Secure and Scaling With KubernetesFrom Containerized Application to Secure and Scaling With Kubernetes
From Containerized Application to Secure and Scaling With Kubernetes
Shikha Srivastava
 
AWS CodeDeploy: Manage Deployment Complexity
AWS CodeDeploy: Manage Deployment ComplexityAWS CodeDeploy: Manage Deployment Complexity
AWS CodeDeploy: Manage Deployment Complexity
Amazon Web Services
 

Similar to Openstack based WebRTC PaaS - Kamailio World 2015 (20)

Infrastructure as Code
Infrastructure as CodeInfrastructure as Code
Infrastructure as Code
 
Datasheet was pluginforrd
Datasheet was pluginforrdDatasheet was pluginforrd
Datasheet was pluginforrd
 
IBM InterConnect 2015 - IIB in the Cloud
IBM InterConnect 2015 - IIB in the CloudIBM InterConnect 2015 - IIB in the Cloud
IBM InterConnect 2015 - IIB in the Cloud
 
NET Aspire - NET Conf IL 2024 - Tamir Dresher.pdf
NET Aspire - NET Conf IL 2024 - Tamir Dresher.pdfNET Aspire - NET Conf IL 2024 - Tamir Dresher.pdf
NET Aspire - NET Conf IL 2024 - Tamir Dresher.pdf
 
VMworld 2013: Deploying vSphere with OpenStack: What It Means to Your Cloud E...
VMworld 2013: Deploying vSphere with OpenStack: What It Means to Your Cloud E...VMworld 2013: Deploying vSphere with OpenStack: What It Means to Your Cloud E...
VMworld 2013: Deploying vSphere with OpenStack: What It Means to Your Cloud E...
 
Successful Patterns for running platforms
Successful Patterns for running platformsSuccessful Patterns for running platforms
Successful Patterns for running platforms
 
Datasheet apachepluginforrd
Datasheet apachepluginforrdDatasheet apachepluginforrd
Datasheet apachepluginforrd
 
Transforming Software Development
Transforming Software DevelopmentTransforming Software Development
Transforming Software Development
 
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...
 
Azure Web App services
Azure Web App servicesAzure Web App services
Azure Web App services
 
Un-clouding the cloud
Un-clouding the cloudUn-clouding the cloud
Un-clouding the cloud
 
Logic Apps, the power of new integration
Logic Apps, the power of new integrationLogic Apps, the power of new integration
Logic Apps, the power of new integration
 
Cloud Foundry: Hands-on Deployment Workshop
Cloud Foundry: Hands-on Deployment WorkshopCloud Foundry: Hands-on Deployment Workshop
Cloud Foundry: Hands-on Deployment Workshop
 
Practical advice on deployment and management of enterprise workloads
Practical advice on deployment and management of enterprise workloadsPractical advice on deployment and management of enterprise workloads
Practical advice on deployment and management of enterprise workloads
 
Deep Dive: OpenStack Summit (Red Hat Summit 2014)
Deep Dive: OpenStack Summit (Red Hat Summit 2014)Deep Dive: OpenStack Summit (Red Hat Summit 2014)
Deep Dive: OpenStack Summit (Red Hat Summit 2014)
 
Continuous Integration and Deployment Best Practices on AWS
Continuous Integration and Deployment Best Practices on AWSContinuous Integration and Deployment Best Practices on AWS
Continuous Integration and Deployment Best Practices on AWS
 
From Containerized Application to Secure and Scaling With Kubernetes
From Containerized Application to Secure and Scaling With KubernetesFrom Containerized Application to Secure and Scaling With Kubernetes
From Containerized Application to Secure and Scaling With Kubernetes
 
AWS CodeDeploy: Manage Deployment Complexity
AWS CodeDeploy: Manage Deployment ComplexityAWS CodeDeploy: Manage Deployment Complexity
AWS CodeDeploy: Manage Deployment Complexity
 
DR_PRESENT 1
DR_PRESENT 1DR_PRESENT 1
DR_PRESENT 1
 
Fs And Self Service
Fs And Self ServiceFs And Self Service
Fs And Self Service
 

Recently uploaded

Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Nexer Digital
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
ThomasParaiso2
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
Pierluigi Pugliese
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
Neo4j
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
Neo4j
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems S.M.S.A.
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
SOFTTECHHUB
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
RinaMondal9
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
Ralf Eggert
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 

Recently uploaded (20)

Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 

Openstack based WebRTC PaaS - Kamailio World 2015

  • 1. OpenStack based WebRTC PaaS by Frafos May 2015, José Luis Millán, Binan Al Halabi
  • 2. Intro HOWTO for implementing a simple WebRTC service, using JsSIP and OpenStack-based Frafos WebRTC PaaS •Background: WebRTC, PaaS •JsSIP •Openstack PaaS
  • 3. Frafos Architectural Assumptions Voice is not a target product anymore •It is becoming an add-on for web apps. •It is easier to add a media channel to an app (like CRM) than vice versa. WebRTC does exactly that. •We integrate the business logic with media using the browser •We therefore contemplate that infrastructural VoIP will be standardized into PaaS so that application integrators won’t be concerned about VoIP.
  • 4. Frafos PaaS Architecture WebRTC Browser integrates Business Logic with VoIP Channel Business Apps online shops, customer service, eductation, entertainment HTTP WebRTC protocol suite Standardized VoIP Cloud: provides SIP and PSTN connectivity, NAT traversal, media processing, scaling, high-availability, and security.
  • 5. Example App: Cloud Audio Conference •Faster-to-build than any enterprise IT can: The browser applicationfor organizing web- conferencing implementedand tested within two weeks. •Consumer-gradeeasy to use: three browser steps to be in conference. Start Invite Talk
  • 8. PaaS Objectives •Simple integration --> Less errors •Cost: minimum of extra traffic and processing needed for the integration •Scalability •Service Monitoring •Minimum delay (caching when possible + shortest geographical path) •No single point of failure •Clean shutdown/termination
  • 9. Automated Scalability •Automation --> Less errors •Better customer experience: •(High demand --> add servers) •Lower costs: •(Lower demands --> remove servers)
  • 10. Openstack Auto-Scaling WebRTC Cloud Servers Load Balancers Resources + Auto Scaling Group The Resources are scaled up and down based on the policies …..
  • 11. Heat Client •Using heat client to create the stack/resources # heat stack-create stack01 -f template.yaml ... •Openstack control panel
  • 12. Heat Template •The template = static architectural design of your application (infrastructure resources in a text file treated as code). •Syntax: HOT, YAML, or JSON •The snippet here is how to define a scaling group group: type: OS::Heat::AutoScalingGroup properties: cooldown: 60 desired_capacity: 2 max_size: 5 min_size: 1 resource: type: OS::Nova::Server::Frafos Here the server is defined in a separate yaml file and mapped in the environment yaml file: resource_registry: "OS::Nova::Server::Frafos": "fserver.yaml"
  • 13. Orchestration Service •Heat is the orchestration tool used for: •Create resources described in a template •Configure the resources •Installing packages •Auto-scale the resources •Heat interacts with different Openstack services using the APIs (e.g. Heat creates the alarms using Ceilometer API service)
  • 15. But •Originally Ceilometer is designed for metering and not for monitoring •Ceilometer is not for application/service level monitoring • Openstack monitoring as service: •E.g. Monasca that integrates with Openstack (requires Monasca agent to be installed on servers)
  • 16. Rackspace Monitoring Service •Monitoring agent must be installed on machine to reports metrics •The users can create their own checks: • Predefined metrics (CPU, Memory, Load, ..) • Custom (Frafos metrics: calls, regs, and TCPs) •The service is integrated with autoscaling service using general webhooks created for scaling policies
  • 17. Rackspace Monitoring Service Autoscaling policy is triggered --> Alarm is sent to Rackspace Autoscaling service
  • 18. Frafos Custom Metrics •Regs, Calls, and TCP Metrics •The monitoring agent installed on servers reports these metrics periodically (60 s) •Push-Metrics bash script works as plugin to the monitoring agent
  • 19. Push-Metrics Frafos Plugin •It is a Bash script •SNMP-based: Obtain the measured data using SNMP •Echos the metrics in the following format: metric <name> <type> <value> [<unit>] e.g. "metric calls int32 $calls [Count]" •The agent takes the echoed metrics in that format and sends them to the monitoring service using Metrics API.
  • 20. No Clean Shutdown •When the scale-down policy is triggered, Nova kills the servers as following: •Immediately and hardly •Killing priority: Pending servers and then the oldest •The problems are: •Gateway case: existing calls •Conference case: existing served conference rooms (long sessions) + late-join requests •Shutdown controlled by the server is needed
  • 21. Solution: Heat Software Deployment •Available since IceHouse Openstack release (2014) •New resource type OS::Heat::SoftwareConfig which defines the configuration •New resource type: OS::Heat::SoftwareDeployment which bind the configuration with the lifecycle actions: CREATE, DELETE,.. actions •The deployment resource remains in progress until a signal comes from the server --> complete state • Heat agents must be installed on the server: os-collect- config, os-refresh-config, heat-config, heat-config-hook, and heat-config-notify to support the software deployment in Heat
  • 22. (1) Server Configuration •The user_data_format property must be specified as SOFTWARE_CONFIG in the server definition in the template •The software_config_transport property specifies how the software config metadata goes from Heat to the server server: type: OS::Nova::Server properties: image: ... user_data_format:SOFTWARE_CONFIG software_config_transport: POLL_SERVER_HEAT
  • 23. (2) DELETE Action Configuration •OS::Heat::SoftwareConfig encapsulates the configuration that we want to apply on DELETE •“group” property is the type of the configuration to be applied •“get_file” property can be remote or local address •The script will be packed in the stack creation package by the heat command (Heat client) •The script will be passed to the server to be executed on DELETE delete_config: type : OS::Heat::SoftwareConfig properties: group: script inputs: ... config: { get_file: scripts/drain_sessions.sh }
  • 24. (3) DELETE Action Deployment Bind the configuration with the DELETE action - No new connections - Clean (drain_sessions.sh) - Kill - send HEAT_SIGNAL signal using curl to Heat's API service frafos-server-delete: type : OS::Heat::SoftwareDeployment properties: actions: [ DELETE ] config: { get_resource delete_config } input_values: {...} server: ... .... signal_transport : HEAT_SIGNAL
  • 25. Clean Shutdown - Conference Case JOIN-Late Requests In conference case, people may join a conference late --> the terminating/dying server should not completely isolated - The server is removed from LB - The rest of servers redirect the late-join requests to that server using the public IP - The server drains its sessions - Then the server signals Heat with HEAT_SIGNAL to be killed
  • 26. Thank You Frafos GmbH, Ahoy office, Windscheidstraße 18, 10627 Berlin, Germany http:// www.frafos.com mailto:info@frafos.com
  • 27. Visit Our Online Demo go.areteasea.com