SlideShare a Scribd company logo
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 and Event Packages 
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

More Related Content

What's hot

Using Kamailio for Scalability and Security
Using Kamailio for Scalability and SecurityUsing Kamailio for Scalability and Security
Using Kamailio for Scalability and Security
Fred Posner
 
Kamailio - Secure Communication
Kamailio - Secure CommunicationKamailio - Secure Communication
Kamailio - Secure Communication
Daniel-Constantin Mierla
 
Using Asterisk and Kamailio for Reliable, Scalable and Secure Communication S...
Using Asterisk and Kamailio for Reliable, Scalable and Secure Communication S...Using Asterisk and Kamailio for Reliable, Scalable and Secure Communication S...
Using Asterisk and Kamailio for Reliable, Scalable and Secure Communication S...
Fred Posner
 
Getting started with SIP Express Media Server SIP app server and SBC - workshop
Getting started with SIP Express Media Server SIP app server and SBC - workshopGetting started with SIP Express Media Server SIP app server and SBC - workshop
Getting started with SIP Express Media Server SIP app server and SBC - workshop
stefansayer
 
rtpengine and kamailio - or how to simulate calls at scale
rtpengine and kamailio - or how to simulate calls at scalertpengine and kamailio - or how to simulate calls at scale
rtpengine and kamailio - or how to simulate calls at scale
Andreas Granig
 
High-Performance Networking Using eBPF, XDP, and io_uring
High-Performance Networking Using eBPF, XDP, and io_uringHigh-Performance Networking Using eBPF, XDP, and io_uring
High-Performance Networking Using eBPF, XDP, and io_uring
ScyllaDB
 
Kamailio - SIP Routing in Lua
Kamailio - SIP Routing in LuaKamailio - SIP Routing in Lua
Kamailio - SIP Routing in Lua
Daniel-Constantin Mierla
 
Kamailio with Docker and Kubernetes
Kamailio with Docker and KubernetesKamailio with Docker and Kubernetes
Kamailio with Docker and Kubernetes
Paolo Visintin
 
Getting a live_transcript_of_your_call_using_the_ari
Getting a live_transcript_of_your_call_using_the_ariGetting a live_transcript_of_your_call_using_the_ari
Getting a live_transcript_of_your_call_using_the_ari
Pascal Cadotte-Michaud
 
RDMA programming design and case studies – for better performance distributed...
RDMA programming design and case studies – for better performance distributed...RDMA programming design and case studies – for better performance distributed...
RDMA programming design and case studies – for better performance distributed...
NTT Software Innovation Center
 
SIP Attack Handling (Kamailio World 2021)
SIP Attack Handling (Kamailio World 2021)SIP Attack Handling (Kamailio World 2021)
SIP Attack Handling (Kamailio World 2021)
Fred Posner
 
Project ACRN expose and pass through platform hidden PCIe devices to SOS
Project ACRN expose and pass through platform hidden PCIe devices to SOSProject ACRN expose and pass through platform hidden PCIe devices to SOS
Project ACRN expose and pass through platform hidden PCIe devices to SOS
Project ACRN
 
Asterisk High Availability Design Guide
Asterisk High Availability Design GuideAsterisk High Availability Design Guide
Asterisk High Availability Design Guide
Michelle Dupuis
 
SIPREC RTPEngine Media Forking
SIPREC RTPEngine Media ForkingSIPREC RTPEngine Media Forking
SIPREC RTPEngine Media Forking
Hossein Yavari
 
Kamailio - Large Unified Communication Platforms
Kamailio - Large Unified Communication PlatformsKamailio - Large Unified Communication Platforms
Kamailio - Large Unified Communication Platforms
Daniel-Constantin Mierla
 
Asterisk WebRTC frontier: make client SIP Phone with sipML5 and Janus Gateway
Asterisk WebRTC frontier: make client SIP Phone with sipML5 and Janus GatewayAsterisk WebRTC frontier: make client SIP Phone with sipML5 and Janus Gateway
Asterisk WebRTC frontier: make client SIP Phone with sipML5 and Janus Gateway
Alessandro Polidori
 
ICE: The ultimate way of beating NAT in SIP
ICE: The ultimate way of beating NAT in SIPICE: The ultimate way of beating NAT in SIP
ICE: The ultimate way of beating NAT in SIP
Saúl Ibarra Corretgé
 
ACPI Debugging from Linux Kernel
ACPI Debugging from Linux KernelACPI Debugging from Linux Kernel
ACPI Debugging from Linux Kernel
SUSE Labs Taipei
 
Library Operating System for Linux #netdev01
Library Operating System for Linux #netdev01Library Operating System for Linux #netdev01
Library Operating System for Linux #netdev01
Hajime Tazaki
 
MIPI DevCon 2021: Meeting the Needs of Next-Generation Displays with a High-P...
MIPI DevCon 2021: Meeting the Needs of Next-Generation Displays with a High-P...MIPI DevCon 2021: Meeting the Needs of Next-Generation Displays with a High-P...
MIPI DevCon 2021: Meeting the Needs of Next-Generation Displays with a High-P...
MIPI Alliance
 

What's hot (20)

Using Kamailio for Scalability and Security
Using Kamailio for Scalability and SecurityUsing Kamailio for Scalability and Security
Using Kamailio for Scalability and Security
 
Kamailio - Secure Communication
Kamailio - Secure CommunicationKamailio - Secure Communication
Kamailio - Secure Communication
 
Using Asterisk and Kamailio for Reliable, Scalable and Secure Communication S...
Using Asterisk and Kamailio for Reliable, Scalable and Secure Communication S...Using Asterisk and Kamailio for Reliable, Scalable and Secure Communication S...
Using Asterisk and Kamailio for Reliable, Scalable and Secure Communication S...
 
Getting started with SIP Express Media Server SIP app server and SBC - workshop
Getting started with SIP Express Media Server SIP app server and SBC - workshopGetting started with SIP Express Media Server SIP app server and SBC - workshop
Getting started with SIP Express Media Server SIP app server and SBC - workshop
 
rtpengine and kamailio - or how to simulate calls at scale
rtpengine and kamailio - or how to simulate calls at scalertpengine and kamailio - or how to simulate calls at scale
rtpengine and kamailio - or how to simulate calls at scale
 
High-Performance Networking Using eBPF, XDP, and io_uring
High-Performance Networking Using eBPF, XDP, and io_uringHigh-Performance Networking Using eBPF, XDP, and io_uring
High-Performance Networking Using eBPF, XDP, and io_uring
 
Kamailio - SIP Routing in Lua
Kamailio - SIP Routing in LuaKamailio - SIP Routing in Lua
Kamailio - SIP Routing in Lua
 
Kamailio with Docker and Kubernetes
Kamailio with Docker and KubernetesKamailio with Docker and Kubernetes
Kamailio with Docker and Kubernetes
 
Getting a live_transcript_of_your_call_using_the_ari
Getting a live_transcript_of_your_call_using_the_ariGetting a live_transcript_of_your_call_using_the_ari
Getting a live_transcript_of_your_call_using_the_ari
 
RDMA programming design and case studies – for better performance distributed...
RDMA programming design and case studies – for better performance distributed...RDMA programming design and case studies – for better performance distributed...
RDMA programming design and case studies – for better performance distributed...
 
SIP Attack Handling (Kamailio World 2021)
SIP Attack Handling (Kamailio World 2021)SIP Attack Handling (Kamailio World 2021)
SIP Attack Handling (Kamailio World 2021)
 
Project ACRN expose and pass through platform hidden PCIe devices to SOS
Project ACRN expose and pass through platform hidden PCIe devices to SOSProject ACRN expose and pass through platform hidden PCIe devices to SOS
Project ACRN expose and pass through platform hidden PCIe devices to SOS
 
Asterisk High Availability Design Guide
Asterisk High Availability Design GuideAsterisk High Availability Design Guide
Asterisk High Availability Design Guide
 
SIPREC RTPEngine Media Forking
SIPREC RTPEngine Media ForkingSIPREC RTPEngine Media Forking
SIPREC RTPEngine Media Forking
 
Kamailio - Large Unified Communication Platforms
Kamailio - Large Unified Communication PlatformsKamailio - Large Unified Communication Platforms
Kamailio - Large Unified Communication Platforms
 
Asterisk WebRTC frontier: make client SIP Phone with sipML5 and Janus Gateway
Asterisk WebRTC frontier: make client SIP Phone with sipML5 and Janus GatewayAsterisk WebRTC frontier: make client SIP Phone with sipML5 and Janus Gateway
Asterisk WebRTC frontier: make client SIP Phone with sipML5 and Janus Gateway
 
ICE: The ultimate way of beating NAT in SIP
ICE: The ultimate way of beating NAT in SIPICE: The ultimate way of beating NAT in SIP
ICE: The ultimate way of beating NAT in SIP
 
ACPI Debugging from Linux Kernel
ACPI Debugging from Linux KernelACPI Debugging from Linux Kernel
ACPI Debugging from Linux Kernel
 
Library Operating System for Linux #netdev01
Library Operating System for Linux #netdev01Library Operating System for Linux #netdev01
Library Operating System for Linux #netdev01
 
MIPI DevCon 2021: Meeting the Needs of Next-Generation Displays with a High-P...
MIPI DevCon 2021: Meeting the Needs of Next-Generation Displays with a High-P...MIPI DevCon 2021: Meeting the Needs of Next-Generation Displays with a High-P...
MIPI DevCon 2021: Meeting the Needs of Next-Generation Displays with a High-P...
 

Similar to NkSIP: The Erlang SIP application server

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
 
Software Stacks to enable SDN and NFV
Software Stacks to enable SDN and NFVSoftware Stacks to enable SDN and NFV
Software Stacks to enable SDN and NFV
Yoshihiro Nakajima
 
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 NFV
Ghodhbane 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...Source
Francois Duthilleul
 
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
Tesora
 
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
kimw001
 
SDN, OpenFlow, NFV, and Virtual Network
SDN, OpenFlow, NFV, and Virtual NetworkSDN, OpenFlow, NFV, and Virtual Network
SDN, OpenFlow, NFV, and Virtual Network
Tim4PreStartup
 
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
 
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
Cisco DevNet
 
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
 
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 Processing
Kernel TLV
 
Current & Future Use-Cases of OpenDaylight
Current & Future Use-Cases of OpenDaylightCurrent & Future Use-Cases of OpenDaylight
Current & Future Use-Cases of OpenDaylight
abhijit2511
 
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
Shawn Wells
 
Resume_Appaji
Resume_AppajiResume_Appaji
Resume_Appaji
Appaji K
 
Srinivasan resume updated
Srinivasan resume updatedSrinivasan resume updated
Srinivasan resume updated
Srinivasan V N
 
SDN Basics
SDN BasicsSDN Basics
SDN Basics
Nimit Shishodia
 
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
Linaro
 
Overview and Opentracing in theory by Gianluca Arbezzano
Overview and Opentracing in theory by Gianluca ArbezzanoOverview and Opentracing in theory by Gianluca Arbezzano
Overview and Opentracing in theory by Gianluca Arbezzano
Gianluca Arbezzano
 

Similar to NkSIP: The Erlang SIP application server (20)

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)
 
Software Stacks to enable SDN and NFV
Software Stacks to enable SDN and NFVSoftware Stacks to enable SDN and NFV
Software Stacks to enable SDN and NFV
 
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
 
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
 
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
 
SDN, OpenFlow, NFV, and Virtual Network
SDN, OpenFlow, NFV, and Virtual NetworkSDN, OpenFlow, NFV, and Virtual Network
SDN, OpenFlow, NFV, and Virtual Network
 
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...
 
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
 
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...
 
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
 
Current & Future Use-Cases of OpenDaylight
Current & Future Use-Cases of OpenDaylightCurrent & Future Use-Cases of OpenDaylight
Current & Future Use-Cases of OpenDaylight
 
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
 
Resume_Appaji
Resume_AppajiResume_Appaji
Resume_Appaji
 
Srinivasan resume updated
Srinivasan resume updatedSrinivasan resume updated
Srinivasan resume updated
 
SDN Basics
SDN BasicsSDN Basics
SDN Basics
 
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
 
Overview and Opentracing in theory by Gianluca Arbezzano
Overview and Opentracing in theory by Gianluca ArbezzanoOverview and Opentracing in theory by Gianluca Arbezzano
Overview and Opentracing in theory by Gianluca Arbezzano
 

Recently uploaded

Liberarsi dai framework con i Web Component.pptx
Liberarsi dai framework con i Web Component.pptxLiberarsi dai framework con i Web Component.pptx
Liberarsi dai framework con i Web Component.pptx
Massimo Artizzu
 
ACE - Team 24 Wrapup event at ahmedabad.
ACE - Team 24 Wrapup event at ahmedabad.ACE - Team 24 Wrapup event at ahmedabad.
ACE - Team 24 Wrapup event at ahmedabad.
Maitrey Patel
 
Enhanced Screen Flows UI/UX using SLDS with Tom Kitt
Enhanced Screen Flows UI/UX using SLDS with Tom KittEnhanced Screen Flows UI/UX using SLDS with Tom Kitt
Enhanced Screen Flows UI/UX using SLDS with Tom Kitt
Peter Caitens
 
Kubernetes at Scale: Going Multi-Cluster with Istio
Kubernetes at Scale:  Going Multi-Cluster  with IstioKubernetes at Scale:  Going Multi-Cluster  with Istio
Kubernetes at Scale: Going Multi-Cluster with Istio
Severalnines
 
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
Bert Jan Schrijver
 
The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...
The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...
The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...
kalichargn70th171
 
🏎️Tech Transformation: DevOps Insights from the Experts 👩‍💻
🏎️Tech Transformation: DevOps Insights from the Experts 👩‍💻🏎️Tech Transformation: DevOps Insights from the Experts 👩‍💻
🏎️Tech Transformation: DevOps Insights from the Experts 👩‍💻
campbellclarkson
 
42 Ways to Generate Real Estate Leads - Sellxpert
42 Ways to Generate Real Estate Leads - Sellxpert42 Ways to Generate Real Estate Leads - Sellxpert
42 Ways to Generate Real Estate Leads - Sellxpert
vaishalijagtap12
 
Migration From CH 1.0 to CH 2.0 and Mule 4.6 & Java 17 Upgrade.pptx
Migration From CH 1.0 to CH 2.0 and  Mule 4.6 & Java 17 Upgrade.pptxMigration From CH 1.0 to CH 2.0 and  Mule 4.6 & Java 17 Upgrade.pptx
Migration From CH 1.0 to CH 2.0 and Mule 4.6 & Java 17 Upgrade.pptx
ervikas4
 
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
XfilesPro
 
Modelling Up - DDDEurope 2024 - Amsterdam
Modelling Up - DDDEurope 2024 - AmsterdamModelling Up - DDDEurope 2024 - Amsterdam
Modelling Up - DDDEurope 2024 - Amsterdam
Alberto Brandolini
 
WWDC 2024 Keynote Review: For CocoaCoders Austin
WWDC 2024 Keynote Review: For CocoaCoders AustinWWDC 2024 Keynote Review: For CocoaCoders Austin
WWDC 2024 Keynote Review: For CocoaCoders Austin
Patrick Weigel
 
Superpower Your Apache Kafka Applications Development with Complementary Open...
Superpower Your Apache Kafka Applications Development with Complementary Open...Superpower Your Apache Kafka Applications Development with Complementary Open...
Superpower Your Apache Kafka Applications Development with Complementary Open...
Paul Brebner
 
美洲杯赔率投注网【​网址​🎉3977·EE​🎉】
美洲杯赔率投注网【​网址​🎉3977·EE​🎉】美洲杯赔率投注网【​网址​🎉3977·EE​🎉】
美洲杯赔率投注网【​网址​🎉3977·EE​🎉】
widenerjobeyrl638
 
The Rising Future of CPaaS in the Middle East 2024
The Rising Future of CPaaS in the Middle East 2024The Rising Future of CPaaS in the Middle East 2024
The Rising Future of CPaaS in the Middle East 2024
Yara Milbes
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
Drona Infotech
 
Unveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdfUnveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdf
brainerhub1
 
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
kgyxske
 
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
safelyiotech
 
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
dakas1
 

Recently uploaded (20)

Liberarsi dai framework con i Web Component.pptx
Liberarsi dai framework con i Web Component.pptxLiberarsi dai framework con i Web Component.pptx
Liberarsi dai framework con i Web Component.pptx
 
ACE - Team 24 Wrapup event at ahmedabad.
ACE - Team 24 Wrapup event at ahmedabad.ACE - Team 24 Wrapup event at ahmedabad.
ACE - Team 24 Wrapup event at ahmedabad.
 
Enhanced Screen Flows UI/UX using SLDS with Tom Kitt
Enhanced Screen Flows UI/UX using SLDS with Tom KittEnhanced Screen Flows UI/UX using SLDS with Tom Kitt
Enhanced Screen Flows UI/UX using SLDS with Tom Kitt
 
Kubernetes at Scale: Going Multi-Cluster with Istio
Kubernetes at Scale:  Going Multi-Cluster  with IstioKubernetes at Scale:  Going Multi-Cluster  with Istio
Kubernetes at Scale: Going Multi-Cluster with Istio
 
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
 
The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...
The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...
The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...
 
🏎️Tech Transformation: DevOps Insights from the Experts 👩‍💻
🏎️Tech Transformation: DevOps Insights from the Experts 👩‍💻🏎️Tech Transformation: DevOps Insights from the Experts 👩‍💻
🏎️Tech Transformation: DevOps Insights from the Experts 👩‍💻
 
42 Ways to Generate Real Estate Leads - Sellxpert
42 Ways to Generate Real Estate Leads - Sellxpert42 Ways to Generate Real Estate Leads - Sellxpert
42 Ways to Generate Real Estate Leads - Sellxpert
 
Migration From CH 1.0 to CH 2.0 and Mule 4.6 & Java 17 Upgrade.pptx
Migration From CH 1.0 to CH 2.0 and  Mule 4.6 & Java 17 Upgrade.pptxMigration From CH 1.0 to CH 2.0 and  Mule 4.6 & Java 17 Upgrade.pptx
Migration From CH 1.0 to CH 2.0 and Mule 4.6 & Java 17 Upgrade.pptx
 
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
 
Modelling Up - DDDEurope 2024 - Amsterdam
Modelling Up - DDDEurope 2024 - AmsterdamModelling Up - DDDEurope 2024 - Amsterdam
Modelling Up - DDDEurope 2024 - Amsterdam
 
WWDC 2024 Keynote Review: For CocoaCoders Austin
WWDC 2024 Keynote Review: For CocoaCoders AustinWWDC 2024 Keynote Review: For CocoaCoders Austin
WWDC 2024 Keynote Review: For CocoaCoders Austin
 
Superpower Your Apache Kafka Applications Development with Complementary Open...
Superpower Your Apache Kafka Applications Development with Complementary Open...Superpower Your Apache Kafka Applications Development with Complementary Open...
Superpower Your Apache Kafka Applications Development with Complementary Open...
 
美洲杯赔率投注网【​网址​🎉3977·EE​🎉】
美洲杯赔率投注网【​网址​🎉3977·EE​🎉】美洲杯赔率投注网【​网址​🎉3977·EE​🎉】
美洲杯赔率投注网【​网址​🎉3977·EE​🎉】
 
The Rising Future of CPaaS in the Middle East 2024
The Rising Future of CPaaS in the Middle East 2024The Rising Future of CPaaS in the Middle East 2024
The Rising Future of CPaaS in the Middle East 2024
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
 
Unveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdfUnveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdf
 
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
 
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
 
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
 

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 and Event Packages 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