SlideShare a Scribd company logo
1 of 41
Download to read offline
NKSIP 
THE ERLANG SIP APPLICATION SERVER 
1
What is NkSIP? 
An open-source, scalable, easy to use 
and (soon) distributed 
Erlang SIP application server 
2
A bit of background 
Emergency Coordination Centers 
3
Our’s vision 
A communications product you can use as cloud-based, on-premises 
or any combination of local/remote sites and cloud 
providers. 
The only operator’s interface for voice/data/video is the browser. The 
web application connects to any local cluster if available, or directly 
to the cloud if none is up. 
Self-healing, peace of mind, dev-ops friendly. If a node goes down 
in any of the local clusters, there is no hurry in repairing it. Even if the 
full cluster goes down, operators connect automatically to another 
one or directly to the cloud. 
The specific client application should be developed easily, in a few 
months, without special distributed programming abilities. 
4
First approach 
Distributed Erlang/OTP core 
NoSQL Database (CouchDB -> Riak) 
HTML5 client, websockets, WebRTC 
Freeswitch 
5
Erlang / OTP 
Language, environment and best practices developed 
by Ericsson from late 80s 
Building critical, highly available systems 
The secret sauce of WhatsApp, RabbitMQ, Ejabberd, 
Riak, CouchDB… 
Incredible simple (BUT functional) 
Building distributed applications is NOT, even with 
Erlang 
6
Erlang / OTP 
Lightweight concurrency 
Asynchronous communication 
Process isolation 
Continuous evolution of the system 
Errors will happen: ”Let it crash” 
7
Erlang / OTP 
APPLICATION 
SUPERVISOR 
WORKER 
8
Erlang / OTP 
APPLICATION 
SUPERVISOR 
WORKER 
NODE1 NODE2 
9
First approach 
Distributed Erlang/OTP core 
NoSQL Database (CouchDB -> Riak) 
HTML5 client, websockets, WebRTC 
Freeswitch 
10
Freeswitch was not enough 
We need SIP 
OpenSIPS, Kamailio, Mobicents… 
… they don’t really fit. 
11
Another SIP product? 
Existing products are either too complex to integrate into a 
distributed application server (Kamailio, Mobicents) or too 
high-level to fully use all SIP’s potential (Freeswitch, Asterisk). 
SIP is a very complex protocol, but most of this complexity 
has no added-value and should be hidden from the 
developer. On the other hand, SIP concepts are actually easy. 
No product clearly maps SIP concepts to the application. 
Implementing new RFCs is currently a painful process. 
SIP routing is at the very heart of any multimedia solution. 
Wouldn’t it be nice to have full control of it? 
12
NkSIP’s vision 
An open source tool to develop any kind of SIP 
application (NkAPPs), specially focused on highly 
available, distributed and scalable SIP applications. 
Each NkAPP application decides what callback functions 
to implement. Very few for a simple, standard behavior. 
Many of them for fine-tuned or low level behaviors. 
NkSIP takes care of all the details: retransmissions, 
transactions, authentication, dialogs, sessions, etc. 
All SIP applications are similar from NkSIP’s point of 
view: UACs, UASs, proxy servers, B2BUAs, SBCs, load 
testers… why a different box for each one? 
13
NkSIP’s vision 
NkSIP does NOT try to emulate a PBX. No dial plans. No 
extensions. Only pure SIP. You need to now what INVITE and BYE 
means to use NkSIP, but don't need a deep understanding of the 
details. 
Implementing new RFCs should be easy and natural. NkSIP offers 
a rock solid core, written from scratch core to develop distributed, 
highly available and scalable systems. It has a hierarchical plug-in 
system to develop new functionality without having to modify the 
core or other base plugins. 
The Erlang ecosystem is the perfect fit for this kind of product. You 
can run any number of SIP applications on a NkSIP cluster, using 
Erlang but (soon) also using Javascript, Lua, Java, or any other 
language capable of receiving a JSON over a socket connection. 
14
Current features 
Full support for all defined SIP methods: PRACK, INFO, 
UPDATE, SUBSCRIBE, NOTIFY, REFER, PUBLISH and 
MESSAGE, as UAC, UAS and Proxy. 
Registrar and Event State Compositor (using the RAM built-in 
store or any other external database). 
Stateful proxy servers with serial and parallel forking. Stateless 
proxy servers, even using TCP/TLS. 
IPv6 support. NkSIP can connect IPv4-only with IPv6-only hosts. 
Support for NAPTR and SRV location, including priority and 
weights. 
Support for events, reliable provisional responses (100rel), 
session timers, path, service route, outbound and GRUU. 
15
Current features 
Automatic outbound registrations and timed pings. 
Dialog and SDP media start and stop detection. SDP 
processing utilities. 
UDP, TCP, TLS, SCTP and WEBSOCKETS transports, capable 
of handling thousands of simultaneous sessions. 
Robust and highly scalable, using all available processor cores. 
Currently is able to process 10.000 registrations/sec or 4.000 
call setups/sec (INVITE+ACK+BYE) on a 4-core i7 machine. 
A written from scratch, fully typed Erlang code easy to 
understand and extend. Unit tests cover nearly all of the 
functionality. Few external dependencies. 
Hot, on the fly core and application code upgrade. 
16
17
18
Plugin system 
Most complex functionality have been extracted 
into plugins: Registrar, PRACK, Outbound, etc. 
Rich set of callbacks available. 
The core remains simple. 
Each plugin adds API functions and callbacks for 
your application (and other, higher level plugins). 
Each NkAPP can implement a different set of 
plugins. Can even change them on the fly. 
Zero added latency, even with many plugins. 
19
Pending features 
Distribution based on the Dynamo 
model. 
Other languages for NkAPPs (Node.js, 
Lua, Python…) 
More RFCs 
IMS 
20
1 2 3 4 5 
6 7 8 9 10 
11 12 13 14 15 
16 17 18 19 20 
Node1 
21 
Ip1 Ip2 Ip3 Ip4 
Router / Gateway
Ip1 Ip2 Ip3 Ip4 
Node1 
Router / Gateway 
Node2 Node3 
22 
1 2 3 4 5 
6 7 8 9 10 
11 12 13 14 15 
16 17 18 19 20
Ip1 Ip2 Ip3 Ip4 
Node1 
Router / Gateway 
Node2 Node3 
23 
1 2 3 4 5 
6 7 8 9 10 
11 12 13 14 15 
16 17 18 19 20 
node2> nksip_admin -join node1 
node3> nksip_admin -join node1
Ip1 Ip4 Ip2 Ip3 
1 4 7 10 13 
16 19 
Node1 
Router / Gateway 
2 5 8 11 14 
17 20 
Node2 
3 6 9 12 15 
18 
Node3 
24
Ip1 Ip4 Ip2 Ip3 
1 4 7 10 13 
16 19 
Node1 
Router / Gateway 
2 5 8 11 14 
17 20 
Node2 
3 6 9 12 15 
18 
Node3 
node2> nksip_admin -remove node1 
25
Ip1 Ip2 Ip3 Ip4 
1 7 13 4 10 16 19 
Node1 
Router / Gateway 
2 5 8 11 14 
17 20 
Node2 
3 6 9 12 15 
18 
Node3 
node1> poweroff 
26
NKCORE 
ERLANG DISTRIBUTED SDN/NFV APPLICATION SERVER 
27
Another application server? 
NkSIP offers a fresh approach to the development of 
applications, and it has very powerful tools, but is focused on SIP. 
However, NkSIP could behave as a generic high-capacity, low-latency 
message processing engine. 
Many concepts and technology solutions from NkSIP are 
applicable to many other protocols: REST, Diameter, MSRP, 
XMPP, DNS, DHCP, Mail, OpenFlow… 
There is no easy to use, fully distributed, heavy-load open source 
application server out there. 
This looks a lot like an SDN/NFV framework! 
28
NkCORE’s vision 
You start any number of control nodes, and install any number of user 
applications (NkAPPs) on the cluster. 
Incoming messages (in a broad sense: SIP, REST request…) are sent to a 
specific control node and triggers the call of specific application callbacks. 
Applications are written using Javascript, Lua, Java, etc. 
Many modules are available, offering tools and semi automatic processing of 
messages: SIP (NkSIP), Web (NkREST), DNS, DHCP, Diameter, 
OpenFlow,etc. Each one adds new callbacks and APIs available to the 
application. Some of them offer additional optional plugins (i.e. event 
support packages for SIP). 
Many common functionality is available: configuration, cluster management, 
distributed database, network transport management, storage, dns, logging, 
authentication, roles, etc. 
29
NkCORE’s vision 
You also start any number of worker nodes. They don’t need to have Erlang, only Docker. 
The NkAPP can program the scheduling of tasks (i.e, 10 instances of Freeswitch, 5 instances of 
a node.js application, etc.), and NkCORE selects the worker nodes and downloads and starts 
and monitors the Docker processes in selected ones. 
Control nodes route specific traffic to any of the workers nodes, and offers network 
functionalities to the application: firewall, load balancer, VPNs, VLANs… (using Openvswitch). 
NkCORE offers easy-to-use APIs for each type of task, and can act as a proxy or B2BUA, 
transparent or not. The application doesn’t even need to know that it is speaking to several 
different instances of the processes. 
We plan to support many common used packages: 
Media servers (Asterisk, Freeswitch…) and XMPP (Ejabberd…) 
NoSQL (Redis, Riak, CouchDB…) and SQL databases (MySQL, PostgreSQL) 
Distributed Storage (Ceph) 
Mail Servers 
… 
30
Control Nodes 
Router / Gateway 
Node.JS Node.JS 
Python 
Node.JS Node.JS 
Erlang Python 
Erlang Erlang 
Routing Routing Routing 
Node.JS Python 
Freeswitch Asterisk 
Node.JS Node.JS 
Python 
Worker Nodes 
Storage Storage 
Docker instances 
Erlang code 
Native code 
31 
NkAPPs 
NkCORE NkCORE NkCORE
32
Expected features 
The applications are in full control not only of the business 
logic, but also of the network, the storage and the related 
processes (data bases, media servers…) 
Hot code loading (NkCORE itself, modules and user 
applications). Hot relocation of external processes. 
NkCORE offers a everything-as-a-service model to the 
applications (Freeswitch, DNS, Riak, …), even in local. Hybrid 
or hierarchical cloud model. Multi-cluster management. 
Allows applications to become highly available and scalable 
very easily. 
33
Thank you 
Carlos González Florido 
https://github.com/kalta/nksip 
carlosj.gf@gmail.com 
@carlosjgf 
34
NKSIP 
EXAMPLES 
35
36
37
38
39
40
41

More Related Content

What's hot

3 - Introducing NFV by Adrie Taniwidjaja
3 - Introducing NFV by Adrie Taniwidjaja3 - Introducing NFV by Adrie Taniwidjaja
3 - Introducing NFV by Adrie TaniwidjajaSDNRG ITB
 
API Management for Software Defined Network (SDN)
API Management for Software Defined Network (SDN)API Management for Software Defined Network (SDN)
API Management for Software Defined Network (SDN)Apigee | Google Cloud
 
Introduction to OpenFlow
Introduction to OpenFlowIntroduction to OpenFlow
Introduction to OpenFlowrjain51
 
Sdn and open flow tutorial 4
Sdn and open flow tutorial 4Sdn and open flow tutorial 4
Sdn and open flow tutorial 4UmaMahesh Sistu
 
SDN (Software Defined Networking) Controller
SDN (Software Defined Networking) ControllerSDN (Software Defined Networking) Controller
SDN (Software Defined Networking) ControllerVipin Gupta
 
Practical virtual network functions with Snabb (8th SDN Workshop)
Practical virtual network functions with Snabb (8th SDN Workshop)Practical virtual network functions with Snabb (8th SDN Workshop)
Practical virtual network functions with Snabb (8th SDN Workshop)Igalia
 
Evolving Virtual Networking with IO Visor
Evolving Virtual Networking with IO VisorEvolving Virtual Networking with IO Visor
Evolving Virtual Networking with IO VisorLarry Lang
 
Naveen nimmu sdn future of networking
Naveen nimmu sdn   future of networkingNaveen nimmu sdn   future of networking
Naveen nimmu sdn future of networkingsuniltomar04
 
Implementing MPLS Services using Openflow
Implementing MPLS Services using OpenflowImplementing MPLS Services using Openflow
Implementing MPLS Services using OpenflowAPNIC
 
OpenFlow: What is it Good For?
OpenFlow: What is it Good For? OpenFlow: What is it Good For?
OpenFlow: What is it Good For? APNIC
 
MidoNet 101: Face to Face with the Distributed SDN
MidoNet 101: Face to Face with the Distributed SDNMidoNet 101: Face to Face with the Distributed SDN
MidoNet 101: Face to Face with the Distributed SDNMidoNet
 
Tutorial on SDN data plane evolution
Tutorial on SDN data plane evolutionTutorial on SDN data plane evolution
Tutorial on SDN data plane evolutionAntonio Capone
 
Introduction To Openflow
Introduction To OpenflowIntroduction To Openflow
Introduction To OpenflowWaqas Daar
 
SDN, OpenFlow, NFV, and Virtual Network
SDN, OpenFlow, NFV, and Virtual NetworkSDN, OpenFlow, NFV, and Virtual Network
SDN, OpenFlow, NFV, and Virtual NetworkTim4PreStartup
 
SDN Architecture & Ecosystem
SDN Architecture & EcosystemSDN Architecture & Ecosystem
SDN Architecture & EcosystemKingston Smiler
 
MPLS SDN NFV WORLD'17 - SDN NFV deployment update
MPLS SDN NFV WORLD'17 - SDN NFV deployment updateMPLS SDN NFV WORLD'17 - SDN NFV deployment update
MPLS SDN NFV WORLD'17 - SDN NFV deployment updateStephane Litkowski
 
Intel's Out of the Box Network Developers Ireland Meetup on March 29 2017 - ...
Intel's Out of the Box Network Developers Ireland Meetup on March 29 2017  - ...Intel's Out of the Box Network Developers Ireland Meetup on March 29 2017  - ...
Intel's Out of the Box Network Developers Ireland Meetup on March 29 2017 - ...Haidee McMahon
 
In-kernel Analytics and Tracing with eBPF for OpenStack Clouds
In-kernel Analytics and Tracing with eBPF for OpenStack CloudsIn-kernel Analytics and Tracing with eBPF for OpenStack Clouds
In-kernel Analytics and Tracing with eBPF for OpenStack CloudsPLUMgrid
 
OpenStack Paris Meetup on Nfv 2014/10/07
OpenStack Paris Meetup on Nfv 2014/10/07OpenStack Paris Meetup on Nfv 2014/10/07
OpenStack Paris Meetup on Nfv 2014/10/07Nicolas (Nick) Barcet
 
Introduction to OpenFlow, SDN and NFV
Introduction to OpenFlow, SDN and NFVIntroduction to OpenFlow, SDN and NFV
Introduction to OpenFlow, SDN and NFVKingston Smiler
 

What's hot (20)

3 - Introducing NFV by Adrie Taniwidjaja
3 - Introducing NFV by Adrie Taniwidjaja3 - Introducing NFV by Adrie Taniwidjaja
3 - Introducing NFV by Adrie Taniwidjaja
 
API Management for Software Defined Network (SDN)
API Management for Software Defined Network (SDN)API Management for Software Defined Network (SDN)
API Management for Software Defined Network (SDN)
 
Introduction to OpenFlow
Introduction to OpenFlowIntroduction to OpenFlow
Introduction to OpenFlow
 
Sdn and open flow tutorial 4
Sdn and open flow tutorial 4Sdn and open flow tutorial 4
Sdn and open flow tutorial 4
 
SDN (Software Defined Networking) Controller
SDN (Software Defined Networking) ControllerSDN (Software Defined Networking) Controller
SDN (Software Defined Networking) Controller
 
Practical virtual network functions with Snabb (8th SDN Workshop)
Practical virtual network functions with Snabb (8th SDN Workshop)Practical virtual network functions with Snabb (8th SDN Workshop)
Practical virtual network functions with Snabb (8th SDN Workshop)
 
Evolving Virtual Networking with IO Visor
Evolving Virtual Networking with IO VisorEvolving Virtual Networking with IO Visor
Evolving Virtual Networking with IO Visor
 
Naveen nimmu sdn future of networking
Naveen nimmu sdn   future of networkingNaveen nimmu sdn   future of networking
Naveen nimmu sdn future of networking
 
Implementing MPLS Services using Openflow
Implementing MPLS Services using OpenflowImplementing MPLS Services using Openflow
Implementing MPLS Services using Openflow
 
OpenFlow: What is it Good For?
OpenFlow: What is it Good For? OpenFlow: What is it Good For?
OpenFlow: What is it Good For?
 
MidoNet 101: Face to Face with the Distributed SDN
MidoNet 101: Face to Face with the Distributed SDNMidoNet 101: Face to Face with the Distributed SDN
MidoNet 101: Face to Face with the Distributed SDN
 
Tutorial on SDN data plane evolution
Tutorial on SDN data plane evolutionTutorial on SDN data plane evolution
Tutorial on SDN data plane evolution
 
Introduction To Openflow
Introduction To OpenflowIntroduction To Openflow
Introduction To Openflow
 
SDN, OpenFlow, NFV, and Virtual Network
SDN, OpenFlow, NFV, and Virtual NetworkSDN, OpenFlow, NFV, and Virtual Network
SDN, OpenFlow, NFV, and Virtual Network
 
SDN Architecture & Ecosystem
SDN Architecture & EcosystemSDN Architecture & Ecosystem
SDN Architecture & Ecosystem
 
MPLS SDN NFV WORLD'17 - SDN NFV deployment update
MPLS SDN NFV WORLD'17 - SDN NFV deployment updateMPLS SDN NFV WORLD'17 - SDN NFV deployment update
MPLS SDN NFV WORLD'17 - SDN NFV deployment update
 
Intel's Out of the Box Network Developers Ireland Meetup on March 29 2017 - ...
Intel's Out of the Box Network Developers Ireland Meetup on March 29 2017  - ...Intel's Out of the Box Network Developers Ireland Meetup on March 29 2017  - ...
Intel's Out of the Box Network Developers Ireland Meetup on March 29 2017 - ...
 
In-kernel Analytics and Tracing with eBPF for OpenStack Clouds
In-kernel Analytics and Tracing with eBPF for OpenStack CloudsIn-kernel Analytics and Tracing with eBPF for OpenStack Clouds
In-kernel Analytics and Tracing with eBPF for OpenStack Clouds
 
OpenStack Paris Meetup on Nfv 2014/10/07
OpenStack Paris Meetup on Nfv 2014/10/07OpenStack Paris Meetup on Nfv 2014/10/07
OpenStack Paris Meetup on Nfv 2014/10/07
 
Introduction to OpenFlow, SDN and NFV
Introduction to OpenFlow, SDN and NFVIntroduction to OpenFlow, SDN and NFV
Introduction to OpenFlow, SDN and NFV
 

Viewers also liked

VoIP2DAY2014 Alberto Sagredo
VoIP2DAY2014   Alberto SagredoVoIP2DAY2014   Alberto Sagredo
VoIP2DAY2014 Alberto SagredoVOIP2DAY
 
2014 jon bonilla pon un proxy sip en tu vida
2014 jon bonilla pon un proxy sip en tu vida2014 jon bonilla pon un proxy sip en tu vida
2014 jon bonilla pon un proxy sip en tu vidaVOIP2DAY
 
V2 d2013 elio rojano - 12 pruebas de asterisk
V2 d2013   elio rojano - 12 pruebas de asteriskV2 d2013   elio rojano - 12 pruebas de asterisk
V2 d2013 elio rojano - 12 pruebas de asteriskVOIP2DAY
 
2014 sergio serrano asterisk xiii
2014 sergio serrano asterisk xiii2014 sergio serrano asterisk xiii
2014 sergio serrano asterisk xiiiVOIP2DAY
 
2014 innovaphone different protocols for different things
2014 innovaphone different protocols for different things2014 innovaphone different protocols for different things
2014 innovaphone different protocols for different thingsVOIP2DAY
 
2014 saul ibarra proyecto op2
2014 saul ibarra proyecto op22014 saul ibarra proyecto op2
2014 saul ibarra proyecto op2VOIP2DAY
 
2014 pablo ruiz tuenti webrtc
2014 pablo ruiz tuenti webrtc2014 pablo ruiz tuenti webrtc
2014 pablo ruiz tuenti webrtcVOIP2DAY
 
Accent on Accessibility - Mira Georgieva | VoIP2DAY 2015
Accent on Accessibility - Mira Georgieva | VoIP2DAY 2015Accent on Accessibility - Mira Georgieva | VoIP2DAY 2015
Accent on Accessibility - Mira Georgieva | VoIP2DAY 2015VOIP2DAY
 
VoIP2DAY WEBINAR "Novedades 2016: beroNet + Elastix"
VoIP2DAY WEBINAR "Novedades 2016: beroNet + Elastix"VoIP2DAY WEBINAR "Novedades 2016: beroNet + Elastix"
VoIP2DAY WEBINAR "Novedades 2016: beroNet + Elastix"VOIP2DAY
 
WebRTC Security Concerns, a real problem?
WebRTC Security Concerns, a real problem?WebRTC Security Concerns, a real problem?
WebRTC Security Concerns, a real problem?VOIP2DAY
 
VoIP2DAY 2015 - Workshop comercial ivoz provider
VoIP2DAY 2015 - Workshop comercial ivoz providerVoIP2DAY 2015 - Workshop comercial ivoz provider
VoIP2DAY 2015 - Workshop comercial ivoz providerIrontec
 

Viewers also liked (11)

VoIP2DAY2014 Alberto Sagredo
VoIP2DAY2014   Alberto SagredoVoIP2DAY2014   Alberto Sagredo
VoIP2DAY2014 Alberto Sagredo
 
2014 jon bonilla pon un proxy sip en tu vida
2014 jon bonilla pon un proxy sip en tu vida2014 jon bonilla pon un proxy sip en tu vida
2014 jon bonilla pon un proxy sip en tu vida
 
V2 d2013 elio rojano - 12 pruebas de asterisk
V2 d2013   elio rojano - 12 pruebas de asteriskV2 d2013   elio rojano - 12 pruebas de asterisk
V2 d2013 elio rojano - 12 pruebas de asterisk
 
2014 sergio serrano asterisk xiii
2014 sergio serrano asterisk xiii2014 sergio serrano asterisk xiii
2014 sergio serrano asterisk xiii
 
2014 innovaphone different protocols for different things
2014 innovaphone different protocols for different things2014 innovaphone different protocols for different things
2014 innovaphone different protocols for different things
 
2014 saul ibarra proyecto op2
2014 saul ibarra proyecto op22014 saul ibarra proyecto op2
2014 saul ibarra proyecto op2
 
2014 pablo ruiz tuenti webrtc
2014 pablo ruiz tuenti webrtc2014 pablo ruiz tuenti webrtc
2014 pablo ruiz tuenti webrtc
 
Accent on Accessibility - Mira Georgieva | VoIP2DAY 2015
Accent on Accessibility - Mira Georgieva | VoIP2DAY 2015Accent on Accessibility - Mira Georgieva | VoIP2DAY 2015
Accent on Accessibility - Mira Georgieva | VoIP2DAY 2015
 
VoIP2DAY WEBINAR "Novedades 2016: beroNet + Elastix"
VoIP2DAY WEBINAR "Novedades 2016: beroNet + Elastix"VoIP2DAY WEBINAR "Novedades 2016: beroNet + Elastix"
VoIP2DAY WEBINAR "Novedades 2016: beroNet + Elastix"
 
WebRTC Security Concerns, a real problem?
WebRTC Security Concerns, a real problem?WebRTC Security Concerns, a real problem?
WebRTC Security Concerns, a real problem?
 
VoIP2DAY 2015 - Workshop comercial ivoz provider
VoIP2DAY 2015 - Workshop comercial ivoz providerVoIP2DAY 2015 - Workshop comercial ivoz provider
VoIP2DAY 2015 - Workshop comercial ivoz provider
 

Similar to 2014 carlos gzlez florido nksip the erlang sip application server

Snabb, a toolkit for building user-space network functions (ES.NOG 20)
Snabb, a toolkit for building user-space network functions (ES.NOG 20)Snabb, a toolkit for building user-space network functions (ES.NOG 20)
Snabb, a toolkit for building user-space network functions (ES.NOG 20)Igalia
 
Learn more about the tremendous value Open Data Plane brings to NFV
Learn more about the tremendous value Open Data Plane brings to NFVLearn more about the tremendous value Open Data Plane brings to NFV
Learn more about the tremendous value Open Data Plane brings to NFVGhodhbane Mohamed Amine
 
The Future of Networks is Open...Source
The Future of Networks is Open...SourceThe Future of Networks is Open...Source
The Future of Networks is Open...SourceFrancois Duthilleul
 
10 years in Network Protocol testing L2 L3 L4-L7 Tcl Python Manual and Automa...
10 years in Network Protocol testing L2 L3 L4-L7 Tcl Python Manual and Automa...10 years in Network Protocol testing L2 L3 L4-L7 Tcl Python Manual and Automa...
10 years in Network Protocol testing L2 L3 L4-L7 Tcl Python Manual and Automa...Mullaiselvan Mohan
 
Collaborating with OpenDaylight for a Network-Enabled Cloud
Collaborating with OpenDaylight for a Network-Enabled CloudCollaborating with OpenDaylight for a Network-Enabled Cloud
Collaborating with OpenDaylight for a Network-Enabled CloudTesora
 
The advantages of Arista/OVH configurations, and the technologies behind buil...
The advantages of Arista/OVH configurations, and the technologies behind buil...The advantages of Arista/OVH configurations, and the technologies behind buil...
The advantages of Arista/OVH configurations, and the technologies behind buil...OVHcloud
 
Red hat NFV Roadmap - OpenStack Summit 2016/Red Hat NFV Mini Summit
Red hat NFV Roadmap    - OpenStack Summit 2016/Red Hat NFV Mini SummitRed hat NFV Roadmap    - OpenStack Summit 2016/Red Hat NFV Mini Summit
Red hat NFV Roadmap - OpenStack Summit 2016/Red Hat NFV Mini Summitkimw001
 
Resume_Appaji
Resume_AppajiResume_Appaji
Resume_AppajiAppaji K
 
How APIs are Transforming Cisco Solutions and Catalyzing an Innovation Ecosystem
How APIs are Transforming Cisco Solutions and Catalyzing an Innovation EcosystemHow APIs are Transforming Cisco Solutions and Catalyzing an Innovation Ecosystem
How APIs are Transforming Cisco Solutions and Catalyzing an Innovation EcosystemCisco DevNet
 
2008-01-23 Red Hat Overview to CUNY Information Managers Forum
2008-01-23 Red Hat Overview to CUNY Information Managers Forum2008-01-23 Red Hat Overview to CUNY Information Managers Forum
2008-01-23 Red Hat Overview to CUNY Information Managers ForumShawn Wells
 
FD.io Vector Packet Processing (VPP)
FD.io Vector Packet Processing (VPP)FD.io Vector Packet Processing (VPP)
FD.io Vector Packet Processing (VPP)Kirill Tsym
 
FD.IO Vector Packet Processing
FD.IO Vector Packet ProcessingFD.IO Vector Packet Processing
FD.IO Vector Packet ProcessingKernel TLV
 
한국통신학회 워크샵: SDN/NFV for Secure Services - Understanding Open Source SDN Contr...
한국통신학회 워크샵: SDN/NFV for Secure Services - Understanding Open Source SDN Contr...한국통신학회 워크샵: SDN/NFV for Secure Services - Understanding Open Source SDN Contr...
한국통신학회 워크샵: SDN/NFV for Secure Services - Understanding Open Source SDN Contr...Ian Choi
 
Current & Future Use-Cases of OpenDaylight
Current & Future Use-Cases of OpenDaylightCurrent & Future Use-Cases of OpenDaylight
Current & Future Use-Cases of OpenDaylightabhijit2511
 
Srinivasan resume updated
Srinivasan resume updatedSrinivasan resume updated
Srinivasan resume updatedSrinivasan V N
 
LAS16-405:OpenDataPlane: Software Defined Dataplane leader
LAS16-405:OpenDataPlane: Software Defined Dataplane leaderLAS16-405:OpenDataPlane: Software Defined Dataplane leader
LAS16-405:OpenDataPlane: Software Defined Dataplane leaderLinaro
 
Summit 16: How to Compose a New OPNFV Solution Stack?
Summit 16: How to Compose a New OPNFV Solution Stack?Summit 16: How to Compose a New OPNFV Solution Stack?
Summit 16: How to Compose a New OPNFV Solution Stack?OPNFV
 
Unikraft: Fast, Specialized Unikernels the Easy Way
Unikraft: Fast, Specialized Unikernels the Easy WayUnikraft: Fast, Specialized Unikernels the Easy Way
Unikraft: Fast, Specialized Unikernels the Easy WayScyllaDB
 
Lean Microservices with OSGi - Christian Schneider
Lean Microservices with OSGi - Christian SchneiderLean Microservices with OSGi - Christian Schneider
Lean Microservices with OSGi - Christian Schneidermfrancis
 

Similar to 2014 carlos gzlez florido nksip the erlang sip application server (20)

Snabb, a toolkit for building user-space network functions (ES.NOG 20)
Snabb, a toolkit for building user-space network functions (ES.NOG 20)Snabb, a toolkit for building user-space network functions (ES.NOG 20)
Snabb, a toolkit for building user-space network functions (ES.NOG 20)
 
Learn more about the tremendous value Open Data Plane brings to NFV
Learn more about the tremendous value Open Data Plane brings to NFVLearn more about the tremendous value Open Data Plane brings to NFV
Learn more about the tremendous value Open Data Plane brings to NFV
 
The Future of Networks is Open...Source
The Future of Networks is Open...SourceThe Future of Networks is Open...Source
The Future of Networks is Open...Source
 
10 years in Network Protocol testing L2 L3 L4-L7 Tcl Python Manual and Automa...
10 years in Network Protocol testing L2 L3 L4-L7 Tcl Python Manual and Automa...10 years in Network Protocol testing L2 L3 L4-L7 Tcl Python Manual and Automa...
10 years in Network Protocol testing L2 L3 L4-L7 Tcl Python Manual and Automa...
 
Collaborating with OpenDaylight for a Network-Enabled Cloud
Collaborating with OpenDaylight for a Network-Enabled CloudCollaborating with OpenDaylight for a Network-Enabled Cloud
Collaborating with OpenDaylight for a Network-Enabled Cloud
 
The advantages of Arista/OVH configurations, and the technologies behind buil...
The advantages of Arista/OVH configurations, and the technologies behind buil...The advantages of Arista/OVH configurations, and the technologies behind buil...
The advantages of Arista/OVH configurations, and the technologies behind buil...
 
Red hat NFV Roadmap - OpenStack Summit 2016/Red Hat NFV Mini Summit
Red hat NFV Roadmap    - OpenStack Summit 2016/Red Hat NFV Mini SummitRed hat NFV Roadmap    - OpenStack Summit 2016/Red Hat NFV Mini Summit
Red hat NFV Roadmap - OpenStack Summit 2016/Red Hat NFV Mini Summit
 
Resume_Appaji
Resume_AppajiResume_Appaji
Resume_Appaji
 
How APIs are Transforming Cisco Solutions and Catalyzing an Innovation Ecosystem
How APIs are Transforming Cisco Solutions and Catalyzing an Innovation EcosystemHow APIs are Transforming Cisco Solutions and Catalyzing an Innovation Ecosystem
How APIs are Transforming Cisco Solutions and Catalyzing an Innovation Ecosystem
 
2008-01-23 Red Hat Overview to CUNY Information Managers Forum
2008-01-23 Red Hat Overview to CUNY Information Managers Forum2008-01-23 Red Hat Overview to CUNY Information Managers Forum
2008-01-23 Red Hat Overview to CUNY Information Managers Forum
 
FD.io Vector Packet Processing (VPP)
FD.io Vector Packet Processing (VPP)FD.io Vector Packet Processing (VPP)
FD.io Vector Packet Processing (VPP)
 
FD.IO Vector Packet Processing
FD.IO Vector Packet ProcessingFD.IO Vector Packet Processing
FD.IO Vector Packet Processing
 
한국통신학회 워크샵: SDN/NFV for Secure Services - Understanding Open Source SDN Contr...
한국통신학회 워크샵: SDN/NFV for Secure Services - Understanding Open Source SDN Contr...한국통신학회 워크샵: SDN/NFV for Secure Services - Understanding Open Source SDN Contr...
한국통신학회 워크샵: SDN/NFV for Secure Services - Understanding Open Source SDN Contr...
 
Current & Future Use-Cases of OpenDaylight
Current & Future Use-Cases of OpenDaylightCurrent & Future Use-Cases of OpenDaylight
Current & Future Use-Cases of OpenDaylight
 
Remote Web Desk
Remote Web DeskRemote Web Desk
Remote Web Desk
 
Srinivasan resume updated
Srinivasan resume updatedSrinivasan resume updated
Srinivasan resume updated
 
LAS16-405:OpenDataPlane: Software Defined Dataplane leader
LAS16-405:OpenDataPlane: Software Defined Dataplane leaderLAS16-405:OpenDataPlane: Software Defined Dataplane leader
LAS16-405:OpenDataPlane: Software Defined Dataplane leader
 
Summit 16: How to Compose a New OPNFV Solution Stack?
Summit 16: How to Compose a New OPNFV Solution Stack?Summit 16: How to Compose a New OPNFV Solution Stack?
Summit 16: How to Compose a New OPNFV Solution Stack?
 
Unikraft: Fast, Specialized Unikernels the Easy Way
Unikraft: Fast, Specialized Unikernels the Easy WayUnikraft: Fast, Specialized Unikernels the Easy Way
Unikraft: Fast, Specialized Unikernels the Easy Way
 
Lean Microservices with OSGi - Christian Schneider
Lean Microservices with OSGi - Christian SchneiderLean Microservices with OSGi - Christian Schneider
Lean Microservices with OSGi - Christian Schneider
 

Recently uploaded

Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 

Recently uploaded (20)

Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 

2014 carlos gzlez florido nksip the erlang sip application server

  • 1. NKSIP THE ERLANG SIP APPLICATION SERVER 1
  • 2. What is NkSIP? An open-source, scalable, easy to use and (soon) distributed Erlang SIP application server 2
  • 3. A bit of background Emergency Coordination Centers 3
  • 4. Our’s vision A communications product you can use as cloud-based, on-premises or any combination of local/remote sites and cloud providers. The only operator’s interface for voice/data/video is the browser. The web application connects to any local cluster if available, or directly to the cloud if none is up. Self-healing, peace of mind, dev-ops friendly. If a node goes down in any of the local clusters, there is no hurry in repairing it. Even if the full cluster goes down, operators connect automatically to another one or directly to the cloud. The specific client application should be developed easily, in a few months, without special distributed programming abilities. 4
  • 5. First approach Distributed Erlang/OTP core NoSQL Database (CouchDB -> Riak) HTML5 client, websockets, WebRTC Freeswitch 5
  • 6. Erlang / OTP Language, environment and best practices developed by Ericsson from late 80s Building critical, highly available systems The secret sauce of WhatsApp, RabbitMQ, Ejabberd, Riak, CouchDB… Incredible simple (BUT functional) Building distributed applications is NOT, even with Erlang 6
  • 7. Erlang / OTP Lightweight concurrency Asynchronous communication Process isolation Continuous evolution of the system Errors will happen: ”Let it crash” 7
  • 8. Erlang / OTP APPLICATION SUPERVISOR WORKER 8
  • 9. Erlang / OTP APPLICATION SUPERVISOR WORKER NODE1 NODE2 9
  • 10. First approach Distributed Erlang/OTP core NoSQL Database (CouchDB -> Riak) HTML5 client, websockets, WebRTC Freeswitch 10
  • 11. Freeswitch was not enough We need SIP OpenSIPS, Kamailio, Mobicents… … they don’t really fit. 11
  • 12. Another SIP product? Existing products are either too complex to integrate into a distributed application server (Kamailio, Mobicents) or too high-level to fully use all SIP’s potential (Freeswitch, Asterisk). SIP is a very complex protocol, but most of this complexity has no added-value and should be hidden from the developer. On the other hand, SIP concepts are actually easy. No product clearly maps SIP concepts to the application. Implementing new RFCs is currently a painful process. SIP routing is at the very heart of any multimedia solution. Wouldn’t it be nice to have full control of it? 12
  • 13. NkSIP’s vision An open source tool to develop any kind of SIP application (NkAPPs), specially focused on highly available, distributed and scalable SIP applications. Each NkAPP application decides what callback functions to implement. Very few for a simple, standard behavior. Many of them for fine-tuned or low level behaviors. NkSIP takes care of all the details: retransmissions, transactions, authentication, dialogs, sessions, etc. All SIP applications are similar from NkSIP’s point of view: UACs, UASs, proxy servers, B2BUAs, SBCs, load testers… why a different box for each one? 13
  • 14. NkSIP’s vision NkSIP does NOT try to emulate a PBX. No dial plans. No extensions. Only pure SIP. You need to now what INVITE and BYE means to use NkSIP, but don't need a deep understanding of the details. Implementing new RFCs should be easy and natural. NkSIP offers a rock solid core, written from scratch core to develop distributed, highly available and scalable systems. It has a hierarchical plug-in system to develop new functionality without having to modify the core or other base plugins. The Erlang ecosystem is the perfect fit for this kind of product. You can run any number of SIP applications on a NkSIP cluster, using Erlang but (soon) also using Javascript, Lua, Java, or any other language capable of receiving a JSON over a socket connection. 14
  • 15. Current features Full support for all defined SIP methods: PRACK, INFO, UPDATE, SUBSCRIBE, NOTIFY, REFER, PUBLISH and MESSAGE, as UAC, UAS and Proxy. Registrar and Event State Compositor (using the RAM built-in store or any other external database). Stateful proxy servers with serial and parallel forking. Stateless proxy servers, even using TCP/TLS. IPv6 support. NkSIP can connect IPv4-only with IPv6-only hosts. Support for NAPTR and SRV location, including priority and weights. Support for events, reliable provisional responses (100rel), session timers, path, service route, outbound and GRUU. 15
  • 16. Current features Automatic outbound registrations and timed pings. Dialog and SDP media start and stop detection. SDP processing utilities. UDP, TCP, TLS, SCTP and WEBSOCKETS transports, capable of handling thousands of simultaneous sessions. Robust and highly scalable, using all available processor cores. Currently is able to process 10.000 registrations/sec or 4.000 call setups/sec (INVITE+ACK+BYE) on a 4-core i7 machine. A written from scratch, fully typed Erlang code easy to understand and extend. Unit tests cover nearly all of the functionality. Few external dependencies. Hot, on the fly core and application code upgrade. 16
  • 17. 17
  • 18. 18
  • 19. Plugin system Most complex functionality have been extracted into plugins: Registrar, PRACK, Outbound, etc. Rich set of callbacks available. The core remains simple. Each plugin adds API functions and callbacks for your application (and other, higher level plugins). Each NkAPP can implement a different set of plugins. Can even change them on the fly. Zero added latency, even with many plugins. 19
  • 20. Pending features Distribution based on the Dynamo model. Other languages for NkAPPs (Node.js, Lua, Python…) More RFCs IMS 20
  • 21. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Node1 21 Ip1 Ip2 Ip3 Ip4 Router / Gateway
  • 22. Ip1 Ip2 Ip3 Ip4 Node1 Router / Gateway Node2 Node3 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
  • 23. Ip1 Ip2 Ip3 Ip4 Node1 Router / Gateway Node2 Node3 23 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 node2> nksip_admin -join node1 node3> nksip_admin -join node1
  • 24. Ip1 Ip4 Ip2 Ip3 1 4 7 10 13 16 19 Node1 Router / Gateway 2 5 8 11 14 17 20 Node2 3 6 9 12 15 18 Node3 24
  • 25. Ip1 Ip4 Ip2 Ip3 1 4 7 10 13 16 19 Node1 Router / Gateway 2 5 8 11 14 17 20 Node2 3 6 9 12 15 18 Node3 node2> nksip_admin -remove node1 25
  • 26. Ip1 Ip2 Ip3 Ip4 1 7 13 4 10 16 19 Node1 Router / Gateway 2 5 8 11 14 17 20 Node2 3 6 9 12 15 18 Node3 node1> poweroff 26
  • 27. NKCORE ERLANG DISTRIBUTED SDN/NFV APPLICATION SERVER 27
  • 28. Another application server? NkSIP offers a fresh approach to the development of applications, and it has very powerful tools, but is focused on SIP. However, NkSIP could behave as a generic high-capacity, low-latency message processing engine. Many concepts and technology solutions from NkSIP are applicable to many other protocols: REST, Diameter, MSRP, XMPP, DNS, DHCP, Mail, OpenFlow… There is no easy to use, fully distributed, heavy-load open source application server out there. This looks a lot like an SDN/NFV framework! 28
  • 29. NkCORE’s vision You start any number of control nodes, and install any number of user applications (NkAPPs) on the cluster. Incoming messages (in a broad sense: SIP, REST request…) are sent to a specific control node and triggers the call of specific application callbacks. Applications are written using Javascript, Lua, Java, etc. Many modules are available, offering tools and semi automatic processing of messages: SIP (NkSIP), Web (NkREST), DNS, DHCP, Diameter, OpenFlow,etc. Each one adds new callbacks and APIs available to the application. Some of them offer additional optional plugins (i.e. event support packages for SIP). Many common functionality is available: configuration, cluster management, distributed database, network transport management, storage, dns, logging, authentication, roles, etc. 29
  • 30. NkCORE’s vision You also start any number of worker nodes. They don’t need to have Erlang, only Docker. The NkAPP can program the scheduling of tasks (i.e, 10 instances of Freeswitch, 5 instances of a node.js application, etc.), and NkCORE selects the worker nodes and downloads and starts and monitors the Docker processes in selected ones. Control nodes route specific traffic to any of the workers nodes, and offers network functionalities to the application: firewall, load balancer, VPNs, VLANs… (using Openvswitch). NkCORE offers easy-to-use APIs for each type of task, and can act as a proxy or B2BUA, transparent or not. The application doesn’t even need to know that it is speaking to several different instances of the processes. We plan to support many common used packages: Media servers (Asterisk, Freeswitch…) and XMPP (Ejabberd…) NoSQL (Redis, Riak, CouchDB…) and SQL databases (MySQL, PostgreSQL) Distributed Storage (Ceph) Mail Servers … 30
  • 31. Control Nodes Router / Gateway Node.JS Node.JS Python Node.JS Node.JS Erlang Python Erlang Erlang Routing Routing Routing Node.JS Python Freeswitch Asterisk Node.JS Node.JS Python Worker Nodes Storage Storage Docker instances Erlang code Native code 31 NkAPPs NkCORE NkCORE NkCORE
  • 32. 32
  • 33. Expected features The applications are in full control not only of the business logic, but also of the network, the storage and the related processes (data bases, media servers…) Hot code loading (NkCORE itself, modules and user applications). Hot relocation of external processes. NkCORE offers a everything-as-a-service model to the applications (Freeswitch, DNS, Riak, …), even in local. Hybrid or hierarchical cloud model. Multi-cluster management. Allows applications to become highly available and scalable very easily. 33
  • 34. Thank you Carlos González Florido https://github.com/kalta/nksip carlosj.gf@gmail.com @carlosjgf 34
  • 36. 36
  • 37. 37
  • 38. 38
  • 39. 39
  • 40. 40
  • 41. 41