SlideShare a Scribd company logo
1 of 58
Download to read offline
HA and SIP Load
   Balancing
    Design documentation
     Revised: Sep, 2012
Important!

● HA here doesn't imply replication.
● HA quality units
     β—‹ one nine, two nines, three nines and so on
     β—‹ can claim them without any replication
         β–  it's not even cheating
● It is sufficient to partition your calls onto a set of machines
     β—‹ The SIP protocol doesn't mind address changes
     β—‹ Can go into production against any production-ready
       phone
Deployment Scenarios Overview
● Pure IP load-balancing
   β—‹ No SIP-based affinity, only IP-based affinity
   β—‹ Might violate some SIP rules
   β—‹ Not recommended
● Standalone SIP-based load-balancing
   β—‹ Provides SIP-based affinity
   β—‹ Provides SIP protocol compliance
● Distributed load balancing
   β—‹ IP load balancer in front
   β—‹ Multiple SIP load balancers at the back end
   β—‹ Eliminates the Single Point of Failure problem
   β—‹ Scales better when SIP LB capacity is exceeded
● Cooperative load balancing with HTTP (integrated, mod_jk
  and mod_cluster)
Deployment Scenarios Overview
● Pure IP load-balancing
   β—‹ No SIP-based affinity, only IP-based affinity
   NOT ENTIRELY BAD
   β—‹ Might violate some SIP rules
   β—‹ Not recommended
● Standalone SIP-based load-balancing
   ALMOST USELESS
   β—‹ Provides SIP-based affinity
   β—‹ Provides SIP protocol compliance
● Distributed load balancing
   β—‹ IP load balancer in front
   β—‹ Multiple SIP load balancers at the back end
   β—‹ Eliminates the Single Point of Failure problem
   β—‹ Scales better when SIP LB capacity is exceeded
● Cooperative load balancing with HTTP (integrated, mod_jk
  and mod_cluster)
Deployment Scenarios Overview

● New this year!
● DNS load balancing
   β—‹ No SIP message affinity
   β—‹ Affinity is temporary per UA by TTL
   β—‹ No built-in heartbeats with the SIP servers - must do it
     on your own, with a module or by the UA
   β—‹ You better try to keep all your IPs up
      β–  Use IP takeover for fast recovery
Two kinds of DNS load balancing

  ● Dynamic record DNS
     β—‹ Round-Robin DNS

  ● DNS SRV
     β—‹ Built-in load balancing with statistical weights
     β—‹ Requires support from the SIP phones (very common)
_service._proto.name TTL class SRV priority weight port target

For instance:
_sip._tcp.example.com. 86400 IN SRV 0 5 5060 sipserver.example.com.
_sip._tcp.example.com. 86400 IN SRV 0 5 5060 sipserver.example.com.
Deployment Scenarios Overview

● New this year!
● Dedicated IP load balancing by SIP headers
   β—‹ Equivalent to DNS SRV without the need of phone
     support
Pure IP load balancing
● Low priority
● Not very useful - just to clarify theoretically
   β—‹ Routes based on IP/UDP/TCP (Layer 3/4) fields - IP
     address, source or destination port, etc
   β—‹ Can not make routing decisions based on SIP messages
     (BigIP F5, etc are exception)
   β—‹ SIP AS-initiated requests and responses hard to route
   β—‹ IP LB is not a SIP entity.
Pure IP load balancing (cont'ed)

Retransmissions
 ● UDP
     β—‹ Retransmissions will get sprayed randomly
     β—‹ Forks and race conditions
 ● TCP
     β—‹ Works fine
        β–  Unless the TCP connection fails and the new
          connection ends up on new node
Via headers in IP load balancing

● Via headers should contain the original node address, not
  the address of the IP load balancer. Otherwise the SIP
  phones will follow the SIP spec and route responses
  through the IP load balancer, creating additional traffic.
● Via headers are per-transaction. Mid-transaction fail-over is
  not supported although we are able to recover from it with
  retransmissions.
● Before JBCP 1.2.6 and MSS 1.3 the Via headers were with
  IP balancer addresses.
● Via headers must be IP balancer headers only if the
  load balancer is capable of Via branch affinity
Standalone Mobicents SIP Load
Balancer




● The SIP LB is a stateless SIP proxy
● Responses and subsequent requests will follow the same
  path - UDP follows Vias and TCP/TLS follows the
  established connections as required per SIP spec.
● SIP LB can make routing decisions based on SIP headers
  or content. It parses the SIP messages.
● The Standalone SIP LB is a Single Point of Failure
Standalone Load Balancer (proxy)




Note: In case of SIP AS or SIP LB failure in in step 4 the
response will be lost.
Distributed Load Balancer




● IP Load Balancer in front of the SIP LB
● The SIP LB will advertise the IP LB address instead of its
  own
● Support for multiple SIP LBs. The IP LB will distribute the
  load among the SIP LBs
● Support for bidirectional load-balancing
Distributed Load Balancer




● The SIP LBs may maintain shared state when it is needed
  for certain load-balancing algorithms
● Certain algorithms don't need shared state (like consistent
  hash)
Bidirectional Distributed SIP LB
 ● The SIP Application Servers not only receive client
   requests, but can initiate SIP requests and transactions on
   their own
Solving the case for both directions in
the Distributed LB
When requests come from SIP phones(clients) it is clear we
should use an IP load balancer in front of the external ports of
the SIP LBs. However, when the Application Servers are
initiating requests there are two options:
 1. The Application Server is always aware which SIP LBs are
     alive, so if one dies the AS will pick another one on it's own.
     No IP load balancer is needed. This method works in terms
     of heartbeat resolution.
 2. Put an IP load balancer between the Application Servers
     and the internal ports of the SIP load balancers as shown in
     the next slide.
Distributed Load Balancer (2 IP LBs)
BIDIRECTIONAL
Bidirectional Distributed SIP LB
Deployment Scenarios
 ● The SIP LB can be configured with separate ports for
   inbound and outbound messages (simply specify the
   internalPort property in the SIP LB configuration file)
 ● Two IP LBs - use separate IP LBs for request that come
   from clients and requests that come from servers
 ● One IP LB - use the same IP LB for both types of requests.
   The problem with this one is that direction analysis must be
   done using Via header. If the SIP AS is a non-Record-
   Routing proxy application then non-initial requests initiated
   by the callee will bypass the SIP AS and there will be no SIP
   AS Via header to give a hint that the request comes from
   the callee and should no go to the SIP AS.
Distributed Load Balancer (2 IP LBs)
BIDIRECTIONAL
Distributed Load Balancer (or 1 IP LB)
BIDIRECTIONAL
Converged and
Cooperative Load
   Balancing
   SIP, HTTP and other protocols
Integrated HTTP forwarding
● The Mobicents Load Balancer supports HTTP forwarding
● SIP and HTTP can use common consistent hash affinity key
  to group and fail-over together SIP and HTTP sessions
● Example
    β—‹ SIP URI sip:app1@host.com
    β—‹ HTTP URL http://host.com/page?appsession=app1
    β—‹ app1 is sip user in the URI and appsession parameter
    β—‹ app1 will be hashed against the AS nodes for both and
      will cause the SIP and the HTTP request to always stick
      to the same node
● When there is no key, the balancer behaves like mod_jk
  and analyses jvmRoute component to selet node
● Alternatively, you can use mod_jk and mod_cluster
Distributed Load Balancer (3 IP LBs)
BIDIRECTIONAL
HTTP and SIP consistent hashing
Session affinity
 with mod_jk
mod_jk support




mod_jk and mod_cluster can be manipulated by changing the
jsessionid cookie to reroute requests to a node of choice!
Additionally mod_cluster can be controlled by the MCCP
protcol
mod_jk hints
Rolling Upgrades from the LB

● Each node is bootstrapped with a version system property
   β—‹ Each node is started with -Dversion=1
● The version is advertised in the SIP LB heartbeat
● The SIP LB has awareness of the groups with particular
  version and can detect conditions that jeopardize the
  opertaions
   β—‹ More than two versions
   β—‹ Node count dangerously low
   β—‹ Stalled upgrade with idle nodes
Cluster groups

Divide the cluster into subgroups that failover only internally


subclusterMap=( 192.168.1.1, 192.168.1.2 ) (
10.10.10.10, 20.20.20.20, 30.30.30.30)
SIP LB Internal
 Architecture

  What is needed for the SIP LB to
 support the deployment scenarios?
Quick SIP LB functional spec
● Dumb SIP parsing - as dumb as possible with JSIP
  stateless.
● Pluggable routing decision algorithms. Pass the message to
  the algorithm and it will return the node where to send the
  message.
● Shared store - use JBoss Cache 3.2.1
● No need to translate between TCP and UDP. The SIP AS
  will be able to handle both anyway.
● Support separate SIP ports for inbound and outbound
  messages (add an internalPort property in the config file)
● Support for single SIP port (delete the internalPort
  property)
● RMI and JGroups heartbeats (right now RMI)
● Protocol to allow AS or other entity to give instructions to the
  SIP LB.(like the mod_cluster protocol)
Example
  Algorithms
Sample pluggable algorithms for the
        SIP load balancer
#1 - Call-ID affinity workflow
#2 - Consistent-hash on Call-ID
#3- Persistent Consistent Hash
Balancer Algorithm Interface
public interface BalancerAlgorithm {
  SIPNode processExternalRequest(Request request);
  SIPNode processHttpRequest(HttpRequest request);
  void processInternalRequest(Request request);
  void processExternalResponse(Response response);
  void processInternalResponse(Response response);
  void nodeRemoved(SIPNode node);
  void nodeAdded(SIPNode node);
  Properties getProperties();
  void setProperties(Properties properties);
  BalancerContext getBalancerContext();
  void jvmRouteSwitchover(String fromJvmRoute, String toJvmRoute);
  void init();
  void stop();
  void assignToNode(String id, SIPNode node);
}

  ● Click here to see the full interface with
    documentatione/browse/trunk/tool
  ● Click here to see one example algorithm Call-ID affinity with
    association map
The SIP LB configuration file
# The binding address of the load balancer
host=127.0.0.1


# The RMI port used for heartbeat signals
rmiRegistryPort=2000

# The SIP port used where client should connect
externalPort=5060

# The SIP port from where servers will receive messages
# Delete if you want to use only one port for both inbound and outbound)
internalPort=5065

# The HTTP port for HTTP forwarding.
# If you like to have integrated HTTP load balancer, this is the entry point
httpPort=8080

#Specify UDP or TCP (for now both must be the same)
internalTransport=UDP
externalTransport=UDP

# If you are using IP load balancer, put the IP address and port here
externalIpLoadBalancerAddress=127.0.0.1
externalIpLoadBalancerPort=111

# Requests initited from the App Servers can route to this address (if you are using 2 IP load balancers for bidirectional SIP LB)
internalIpLoadBalancerAddress=127.0.0.1
internalIpLoadBalancerPort=111

# Designate extra IP addresses as serer nodes
#extraServerNodes=222.221.21.12:21,45.6.6.7:9003,33.5.6.7,33.9.9.2
...the SIP LB configuration file
# Call-ID affinity algortihm settings. This algorithm is the default. No need to uncomment it.
#algorithmClass=org.mobicents.tools.sip.balancer.CallIDAffinityBalancerAlgorithm
# This property specifies how much time to keep an association before being evitcted.
# It is needed to avoid memory leaks on dead calls. The time is in seconds.
#callIdAffinityMaxTimeInCache=500

# Uncomment to enable the consistent hash based on Call-ID algorithm.
#algorithmClass=org.mobicents.tools.sip.balancer.HeaderConsistentHashBalancerAlgorithm
# This property is not required, it defaults to Call-ID if not set, cna be "from.user" or "to.user" when you want the SIP URI
username
#sipHeaderAffinityKey=Call-ID
#specify the GET HTTP parameter to be used as hash key
#httpAffinityKey=appsession

# Uncomment to enable the persistent consistent hash based on Call-ID algorithm.
#algorithmClass=org.mobicents.tools.sip.balancer.PersistentConsistentHashBalancerAlgorithm
# This property is not required, it defaults to Call-ID if not set
#sipHeaderAffinityKey=Call-ID
#specify the GET HTTP parameter to be used as hash key
#httpAffinityKey=appsession

#This is the JBoss Cache 3.1 configuration file (with jgroups), if not specified it will use default
#persistentConsistentHashCacheConfiguration=/home/config.xml

# Call-ID affinity algortihm settings. This algorithm is the default. No need to uncomment it.
#algorithmClass=org.mobicents.tools.sip.balancer.CallIDAffinityBalancerAlgorithm
# This property specifies how much time to keep an association before being evitcted.
# It is needed to avoid memory leaks on dead calls. The time is in seconds.
#callIdAffinityMaxTimeInCache=500
...the SIP LB configuration file
# Uncomment to enable the consistent hash based on Call-ID algorithm.
#algorithmClass=org.mobicents.tools.sip.balancer.HeaderConsistentHashBalancerAlgorithm
# This property is not required, it defaults to Call-ID if not set, cna be "from.user" or "to.user" when you want the SIP URI
username
#sipHeaderAffinityKey=Call-ID
# and specify the GET HTTP parameter to be used as hash key
#httpAffinityKey=appsession

# Uncomment to enable the persistent consistent hash based on Call-ID algorithm.
#algorithmClass=org.mobicents.tools.sip.balancer.PersistentConsistentHashBalancerAlgorithm
# This property is not required, it defaults to Call-ID if not set
#sipHeaderAffinityKey=Call-ID
# and specify the GET HTTP parameter to be used as hash key
#httpAffinityKey=appsession

#This is the JBoss Cache 3.1 configuration file (with jgroups), if not specified it will use default
#persistentConsistentHashCacheConfiguration=/home/config.xml

#NEW PROPERTIES IN MSS 1.2
#If a node doesnt check in within that time, it is considered dead
nodeTimeout=5100
#The consistency of the above condition is checked every heartbeatInterval milliseconds
heartbeatInterval=5000


#JSIP stack configuration.....
Example Configurations


       How to configure common scenarios?

 Note: All distributed configurations must use
     a consistent hash routing algorithm.

Example with Call-ID header hashing:
# Uncomment to enable the consistent hash based on Call-ID algorithm.
algorithmClass=org.mobicents.tools.sip.balancer.HeaderConsistentHashBalancerAlgorithm
# This property is not required, it defaults to Call-ID if not set
sipHeaderAffinityKey=Call-ID
#specify the GET HTTP parameter to be used as hash key
httpAffinityKey=appsession
Two SIP LBs with client pools

Request coming from phone.
If a load balancer fails then a
  phone pool will experience
            outage.
Two SIP LBs with Internal and
 External IP LBs in the same
    network with sample
       configurations.

   Request coming from
         phone.
Two SIP LBs with Internal and
 External IP LBs in the same
    network with sample
       configurations.

   Request coming from
    Application Server.
Two SIP LBs with Internal and
 External IP LBs in the same
    network with sample
       configurations.

        Full picture
IP load balancer problems
SIP LB Topics 2011
Large scale tests

● Simulate the IP load balancing and rewriting the addresses
● Run many nodes, many load balancers
● Execute the test as part of a larger scenario
● Simulate application server
   β—‹ Heartbeat
   β—‹ Handling and initiating requests
● TLS
Cluster groups

Divide the cluster into subgroups that failover only internally


subclusterMap=( 192.168.1.1, 192.168.1.2 ) (
10.10.10.10, 20.20.20.20, 30.30.30.30)
Worst-case testing

Load balancing without affinity
Rolling Upgrades from the LB

● Each node is bootstrapped with a version system property
● The version is advertised in the SIP LB heartbeat
● The SIP LB has awareness of the groups with particular
  version and can detect conditions that jeopardize the
  opertaions
   β—‹ More than two versions
   β—‹ Node count dangerously low
   β—‹ Stalled upgrade with idle nodes
Performance testing

10K requests/s
Moving the load balancing on the
server side
● Eliminates the worst case
● Some requests will go deeper in the pipeline costing more
● Can't change the Route headers
● Delay the load balancing decision as much as possible
NIO in the SIP LB

BIO is limited at 2500-10000 concurrent sockets on servers

More Related Content

What's hot

Segment Routing: Prepare Your Network For New Business Models
Segment Routing:  Prepare Your Network For New Business ModelsSegment Routing:  Prepare Your Network For New Business Models
Segment Routing: Prepare Your Network For New Business ModelsCisco Service Provider
Β 
Firewall Best Practices for VoIP on pfSense - pfSense Hangout October 2017
Firewall Best Practices for VoIP on pfSense - pfSense Hangout October 2017Firewall Best Practices for VoIP on pfSense - pfSense Hangout October 2017
Firewall Best Practices for VoIP on pfSense - pfSense Hangout October 2017Netgate
Β 
Troubleshooting BGP
Troubleshooting BGPTroubleshooting BGP
Troubleshooting BGPDuane Bodle
Β 
Bgp training
Bgp trainingBgp training
Bgp trainingAun Haider
Β 
CCNA Advanced Routing Protocols
CCNA Advanced Routing ProtocolsCCNA Advanced Routing Protocols
CCNA Advanced Routing ProtocolsDsunte Wilson
Β 
VOIP security
VOIP securityVOIP security
VOIP securityRohit Gurjar
Β 
Mikrotik Hotspot With Queue Tree BW Management
Mikrotik Hotspot With Queue Tree BW ManagementMikrotik Hotspot With Queue Tree BW Management
Mikrotik Hotspot With Queue Tree BW Managementgopartheredbuff
Β 
Nxll26 bgp ii
Nxll26 bgp iiNxll26 bgp ii
Nxll26 bgp iiNetwax Lab
Β 
Ospf area types
Ospf area typesOspf area types
Ospf area typesRoger Perkin
Β 
Enhanced Interior Gateway Routing Protocol (EIGRP) || NETWORK PROTOCOL
Enhanced Interior Gateway Routing Protocol (EIGRP) || NETWORK PROTOCOLEnhanced Interior Gateway Routing Protocol (EIGRP) || NETWORK PROTOCOL
Enhanced Interior Gateway Routing Protocol (EIGRP) || NETWORK PROTOCOLNutan Singh
Β 
Vlan final
Vlan finalVlan final
Vlan finalVeena Rao
Β 
BGP (border gateway routing protocol)
BGP (border gateway routing protocol)BGP (border gateway routing protocol)
BGP (border gateway routing protocol)Netwax Lab
Β 
Ifupdown2: Network Interface Manager
Ifupdown2: Network Interface ManagerIfupdown2: Network Interface Manager
Ifupdown2: Network Interface ManagerCumulus Networks
Β 

What's hot (20)

Vpc notes
Vpc notesVpc notes
Vpc notes
Β 
Segment Routing: Prepare Your Network For New Business Models
Segment Routing:  Prepare Your Network For New Business ModelsSegment Routing:  Prepare Your Network For New Business Models
Segment Routing: Prepare Your Network For New Business Models
Β 
Firewall Best Practices for VoIP on pfSense - pfSense Hangout October 2017
Firewall Best Practices for VoIP on pfSense - pfSense Hangout October 2017Firewall Best Practices for VoIP on pfSense - pfSense Hangout October 2017
Firewall Best Practices for VoIP on pfSense - pfSense Hangout October 2017
Β 
Troubleshooting BGP
Troubleshooting BGPTroubleshooting BGP
Troubleshooting BGP
Β 
IP Source Guard
IP Source Guard IP Source Guard
IP Source Guard
Β 
Bgp training
Bgp trainingBgp training
Bgp training
Β 
CCNA Advanced Routing Protocols
CCNA Advanced Routing ProtocolsCCNA Advanced Routing Protocols
CCNA Advanced Routing Protocols
Β 
VOIP security
VOIP securityVOIP security
VOIP security
Β 
Bgp
BgpBgp
Bgp
Β 
Mikrotik Hotspot With Queue Tree BW Management
Mikrotik Hotspot With Queue Tree BW ManagementMikrotik Hotspot With Queue Tree BW Management
Mikrotik Hotspot With Queue Tree BW Management
Β 
Eigrp.ppt
Eigrp.pptEigrp.ppt
Eigrp.ppt
Β 
Nxll26 bgp ii
Nxll26 bgp iiNxll26 bgp ii
Nxll26 bgp ii
Β 
Ospf area types
Ospf area typesOspf area types
Ospf area types
Β 
Enhanced Interior Gateway Routing Protocol (EIGRP) || NETWORK PROTOCOL
Enhanced Interior Gateway Routing Protocol (EIGRP) || NETWORK PROTOCOLEnhanced Interior Gateway Routing Protocol (EIGRP) || NETWORK PROTOCOL
Enhanced Interior Gateway Routing Protocol (EIGRP) || NETWORK PROTOCOL
Β 
Bgp (1)
Bgp (1)Bgp (1)
Bgp (1)
Β 
Vlan final
Vlan finalVlan final
Vlan final
Β 
BGP (border gateway routing protocol)
BGP (border gateway routing protocol)BGP (border gateway routing protocol)
BGP (border gateway routing protocol)
Β 
BGP on mikrotik
BGP on mikrotikBGP on mikrotik
BGP on mikrotik
Β 
Pentesting ntp-17-02-18
Pentesting ntp-17-02-18Pentesting ntp-17-02-18
Pentesting ntp-17-02-18
Β 
Ifupdown2: Network Interface Manager
Ifupdown2: Network Interface ManagerIfupdown2: Network Interface Manager
Ifupdown2: Network Interface Manager
Β 

Similar to Mobicents Summit 2012 - Vladimir Ralev - Mobicents Load Balancer and High Availability

kumra_310804.ppt
kumra_310804.pptkumra_310804.ppt
kumra_310804.pptwaqasraheel1
Β 
kumra_310804.ppt
kumra_310804.pptkumra_310804.ppt
kumra_310804.pptBarryAllen147
Β 
CodiLime Tech Talk - Adam KuΕ‚agowski: IPv6 - introduction
CodiLime Tech Talk - Adam KuΕ‚agowski: IPv6 - introductionCodiLime Tech Talk - Adam KuΕ‚agowski: IPv6 - introduction
CodiLime Tech Talk - Adam KuΕ‚agowski: IPv6 - introductionCodiLime
Β 
Run Your Own 6LoWPAN Based IoT Network
Run Your Own 6LoWPAN Based IoT NetworkRun Your Own 6LoWPAN Based IoT Network
Run Your Own 6LoWPAN Based IoT NetworkSamsung Open Source Group
Β 
Cilium - BPF & XDP for containers
 Cilium - BPF & XDP for containers Cilium - BPF & XDP for containers
Cilium - BPF & XDP for containersDocker, Inc.
Β 
F5 link controller
F5  link controllerF5  link controller
F5 link controllerJimmy Saigon
Β 
PLNOG 7: Emil GΔ…gaΕ‚a, SΕ‚awomir Janukowicz - carrier grade NAT
PLNOG 7: Emil GΔ…gaΕ‚a,  SΕ‚awomir Janukowicz - carrier grade NAT PLNOG 7: Emil GΔ…gaΕ‚a,  SΕ‚awomir Janukowicz - carrier grade NAT
PLNOG 7: Emil GΔ…gaΕ‚a, SΕ‚awomir Janukowicz - carrier grade NAT PROIDEA
Β 
Building a Small DC
Building a Small DCBuilding a Small DC
Building a Small DCAPNIC
Β 
Adding IEEE 802.15.4 and 6LoWPAN to an Embedded Linux Device
Adding IEEE 802.15.4 and 6LoWPAN to an Embedded Linux DeviceAdding IEEE 802.15.4 and 6LoWPAN to an Embedded Linux Device
Adding IEEE 802.15.4 and 6LoWPAN to an Embedded Linux DeviceSamsung Open Source Group
Β 
AusNOG 2011 - Residential IPv6 CPE - What Not to Do and Other Observations
AusNOG 2011 - Residential IPv6 CPE - What Not to Do and Other ObservationsAusNOG 2011 - Residential IPv6 CPE - What Not to Do and Other Observations
AusNOG 2011 - Residential IPv6 CPE - What Not to Do and Other ObservationsMark Smith
Β 
Building a Small Datacenter
Building a Small DatacenterBuilding a Small Datacenter
Building a Small Datacenterssuser4b98f0
Β 
LCU14 310- Cisco ODP v2
LCU14 310- Cisco ODP v2LCU14 310- Cisco ODP v2
LCU14 310- Cisco ODP v2Linaro
Β 
2017 Microservices Practitioner Virtual Summit: The Mechanics of Deploying En...
2017 Microservices Practitioner Virtual Summit: The Mechanics of Deploying En...2017 Microservices Practitioner Virtual Summit: The Mechanics of Deploying En...
2017 Microservices Practitioner Virtual Summit: The Mechanics of Deploying En...Ambassador Labs
Β 
Ceph at Work in Bloomberg: Object Store, RBD and OpenStack
Ceph at Work in Bloomberg: Object Store, RBD and OpenStackCeph at Work in Bloomberg: Object Store, RBD and OpenStack
Ceph at Work in Bloomberg: Object Store, RBD and OpenStackRed_Hat_Storage
Β 
Cloud Native API Design and Management
Cloud Native API Design and ManagementCloud Native API Design and Management
Cloud Native API Design and ManagementAllBits BVBA (freelancer)
Β 
Modern VoIP in modern infrastructures
Modern VoIP in modern infrastructuresModern VoIP in modern infrastructures
Modern VoIP in modern infrastructuresGiacomo Vacca
Β 
Towards constrained semantic web
Towards constrained semantic webTowards constrained semantic web
Towards constrained semantic webβ˜• Remy Rojas
Β 
6LoWPAN: An open IoT Networking Protocol
6LoWPAN: An open IoT Networking Protocol6LoWPAN: An open IoT Networking Protocol
6LoWPAN: An open IoT Networking ProtocolSamsung Open Source Group
Β 
SHARE 2014, Pittsburgh CICS Connectivity amd Networking
SHARE 2014, Pittsburgh CICS Connectivity amd NetworkingSHARE 2014, Pittsburgh CICS Connectivity amd Networking
SHARE 2014, Pittsburgh CICS Connectivity amd Networkingnick_garrod
Β 

Similar to Mobicents Summit 2012 - Vladimir Ralev - Mobicents Load Balancer and High Availability (20)

kumra_310804.ppt
kumra_310804.pptkumra_310804.ppt
kumra_310804.ppt
Β 
kumra_310804.ppt
kumra_310804.pptkumra_310804.ppt
kumra_310804.ppt
Β 
CodiLime Tech Talk - Adam KuΕ‚agowski: IPv6 - introduction
CodiLime Tech Talk - Adam KuΕ‚agowski: IPv6 - introductionCodiLime Tech Talk - Adam KuΕ‚agowski: IPv6 - introduction
CodiLime Tech Talk - Adam KuΕ‚agowski: IPv6 - introduction
Β 
Run Your Own 6LoWPAN Based IoT Network
Run Your Own 6LoWPAN Based IoT NetworkRun Your Own 6LoWPAN Based IoT Network
Run Your Own 6LoWPAN Based IoT Network
Β 
Cilium - BPF & XDP for containers
 Cilium - BPF & XDP for containers Cilium - BPF & XDP for containers
Cilium - BPF & XDP for containers
Β 
F5 link controller
F5  link controllerF5  link controller
F5 link controller
Β 
PLNOG 7: Emil GΔ…gaΕ‚a, SΕ‚awomir Janukowicz - carrier grade NAT
PLNOG 7: Emil GΔ…gaΕ‚a,  SΕ‚awomir Janukowicz - carrier grade NAT PLNOG 7: Emil GΔ…gaΕ‚a,  SΕ‚awomir Janukowicz - carrier grade NAT
PLNOG 7: Emil GΔ…gaΕ‚a, SΕ‚awomir Janukowicz - carrier grade NAT
Β 
Building a Small DC
Building a Small DCBuilding a Small DC
Building a Small DC
Β 
Adding IEEE 802.15.4 and 6LoWPAN to an Embedded Linux Device
Adding IEEE 802.15.4 and 6LoWPAN to an Embedded Linux DeviceAdding IEEE 802.15.4 and 6LoWPAN to an Embedded Linux Device
Adding IEEE 802.15.4 and 6LoWPAN to an Embedded Linux Device
Β 
AusNOG 2011 - Residential IPv6 CPE - What Not to Do and Other Observations
AusNOG 2011 - Residential IPv6 CPE - What Not to Do and Other ObservationsAusNOG 2011 - Residential IPv6 CPE - What Not to Do and Other Observations
AusNOG 2011 - Residential IPv6 CPE - What Not to Do and Other Observations
Β 
Building a Small Datacenter
Building a Small DatacenterBuilding a Small Datacenter
Building a Small Datacenter
Β 
LCU14 310- Cisco ODP v2
LCU14 310- Cisco ODP v2LCU14 310- Cisco ODP v2
LCU14 310- Cisco ODP v2
Β 
2017 Microservices Practitioner Virtual Summit: The Mechanics of Deploying En...
2017 Microservices Practitioner Virtual Summit: The Mechanics of Deploying En...2017 Microservices Practitioner Virtual Summit: The Mechanics of Deploying En...
2017 Microservices Practitioner Virtual Summit: The Mechanics of Deploying En...
Β 
Ceph at Work in Bloomberg: Object Store, RBD and OpenStack
Ceph at Work in Bloomberg: Object Store, RBD and OpenStackCeph at Work in Bloomberg: Object Store, RBD and OpenStack
Ceph at Work in Bloomberg: Object Store, RBD and OpenStack
Β 
Cloud Native API Design and Management
Cloud Native API Design and ManagementCloud Native API Design and Management
Cloud Native API Design and Management
Β 
Modern VoIP in modern infrastructures
Modern VoIP in modern infrastructuresModern VoIP in modern infrastructures
Modern VoIP in modern infrastructures
Β 
Towards constrained semantic web
Towards constrained semantic webTowards constrained semantic web
Towards constrained semantic web
Β 
Monkey Server
Monkey ServerMonkey Server
Monkey Server
Β 
6LoWPAN: An open IoT Networking Protocol
6LoWPAN: An open IoT Networking Protocol6LoWPAN: An open IoT Networking Protocol
6LoWPAN: An open IoT Networking Protocol
Β 
SHARE 2014, Pittsburgh CICS Connectivity amd Networking
SHARE 2014, Pittsburgh CICS Connectivity amd NetworkingSHARE 2014, Pittsburgh CICS Connectivity amd Networking
SHARE 2014, Pittsburgh CICS Connectivity amd Networking
Β 

More from telestax

Api and fly! CPaaS Enablement: Combining Apps, Networks, and APIs
Api and fly! CPaaS Enablement:  Combining Apps, Networks, and APIsApi and fly! CPaaS Enablement:  Combining Apps, Networks, and APIs
Api and fly! CPaaS Enablement: Combining Apps, Networks, and APIstelestax
Β 
RestComm Architecture Design
RestComm Architecture DesignRestComm Architecture Design
RestComm Architecture Designtelestax
Β 
RestComm Mobile Client SDKs
RestComm Mobile Client SDKsRestComm Mobile Client SDKs
RestComm Mobile Client SDKstelestax
Β 
Location Based Services at Heterogeneous Networks
Location Based Services at Heterogeneous NetworksLocation Based Services at Heterogeneous Networks
Location Based Services at Heterogeneous Networkstelestax
Β 
Restcomm past and future
Restcomm past and futureRestcomm past and future
Restcomm past and futuretelestax
Β 
Restcomm in an oauth environment
Restcomm in an oauth environmentRestcomm in an oauth environment
Restcomm in an oauth environmenttelestax
Β 
Restconn 2015 products
Restconn 2015 productsRestconn 2015 products
Restconn 2015 productstelestax
Β 
Restconn 2015 products
Restconn 2015 productsRestconn 2015 products
Restconn 2015 productstelestax
Β 
New Opportunities for Real Time Communications - WebRTC Conference Japan - Fe...
New Opportunities for Real Time Communications - WebRTC Conference Japan - Fe...New Opportunities for Real Time Communications - WebRTC Conference Japan - Fe...
New Opportunities for Real Time Communications - WebRTC Conference Japan - Fe...telestax
Β 
TeleStax - Convergence - uFone - AWCC - TADS 2014
TeleStax - Convergence - uFone - AWCC - TADS 2014TeleStax - Convergence - uFone - AWCC - TADS 2014
TeleStax - Convergence - uFone - AWCC - TADS 2014telestax
Β 
New Business Opportunities created by the IoT Explosion - WebRTCSummit - San...
New Business Opportunities created by the IoT Explosion - WebRTCSummit  - San...New Business Opportunities created by the IoT Explosion - WebRTCSummit  - San...
New Business Opportunities created by the IoT Explosion - WebRTCSummit - San...telestax
Β 
Boost JBoss AS7 with HTML5 WebRTC for Real Time Communications
Boost JBoss AS7 with HTML5 WebRTC for Real Time CommunicationsBoost JBoss AS7 with HTML5 WebRTC for Real Time Communications
Boost JBoss AS7 with HTML5 WebRTC for Real Time Communicationstelestax
Β 
Restcomm in Telehealth - Web RTC Summit - November 2013 - Santa Clara, CA
Restcomm in Telehealth - Web RTC Summit - November 2013 - Santa Clara, CARestcomm in Telehealth - Web RTC Summit - November 2013 - Santa Clara, CA
Restcomm in Telehealth - Web RTC Summit - November 2013 - Santa Clara, CAtelestax
Β 
Tel scale ussd_gateway-vuc
Tel scale ussd_gateway-vucTel scale ussd_gateway-vuc
Tel scale ussd_gateway-vuctelestax
Β 
Open Source Hangouts on WebRTC - WebRTC Workshop IMS World Forum
Open Source Hangouts on WebRTC - WebRTC Workshop IMS World ForumOpen Source Hangouts on WebRTC - WebRTC Workshop IMS World Forum
Open Source Hangouts on WebRTC - WebRTC Workshop IMS World Forumtelestax
Β 
Boost JBoss AS7 with HTML5 WebRTC for Real Time Communications
Boost JBoss AS7 with HTML5 WebRTC for Real Time CommunicationsBoost JBoss AS7 with HTML5 WebRTC for Real Time Communications
Boost JBoss AS7 with HTML5 WebRTC for Real Time Communicationstelestax
Β 
Mobicents Summit 2012 - CTBC/Algar TeleCom - Simplifying CTBC's IVR System an...
Mobicents Summit 2012 - CTBC/Algar TeleCom - Simplifying CTBC's IVR System an...Mobicents Summit 2012 - CTBC/Algar TeleCom - Simplifying CTBC's IVR System an...
Mobicents Summit 2012 - CTBC/Algar TeleCom - Simplifying CTBC's IVR System an...telestax
Β 
Mobicents Summit 2012 - Twilio Expanding internationally Challenges Solutions
Mobicents Summit 2012 - Twilio Expanding internationally Challenges SolutionsMobicents Summit 2012 - Twilio Expanding internationally Challenges Solutions
Mobicents Summit 2012 - Twilio Expanding internationally Challenges Solutionstelestax
Β 
Mobicents Summit 2012 - Jonas Borjesson - Introduction to Twilio
Mobicents Summit 2012 - Jonas Borjesson - Introduction to TwilioMobicents Summit 2012 - Jonas Borjesson - Introduction to Twilio
Mobicents Summit 2012 - Jonas Borjesson - Introduction to Twiliotelestax
Β 
Mobicents Summit 2012 - TeleStax Keynote
Mobicents Summit 2012 - TeleStax KeynoteMobicents Summit 2012 - TeleStax Keynote
Mobicents Summit 2012 - TeleStax Keynotetelestax
Β 

More from telestax (20)

Api and fly! CPaaS Enablement: Combining Apps, Networks, and APIs
Api and fly! CPaaS Enablement:  Combining Apps, Networks, and APIsApi and fly! CPaaS Enablement:  Combining Apps, Networks, and APIs
Api and fly! CPaaS Enablement: Combining Apps, Networks, and APIs
Β 
RestComm Architecture Design
RestComm Architecture DesignRestComm Architecture Design
RestComm Architecture Design
Β 
RestComm Mobile Client SDKs
RestComm Mobile Client SDKsRestComm Mobile Client SDKs
RestComm Mobile Client SDKs
Β 
Location Based Services at Heterogeneous Networks
Location Based Services at Heterogeneous NetworksLocation Based Services at Heterogeneous Networks
Location Based Services at Heterogeneous Networks
Β 
Restcomm past and future
Restcomm past and futureRestcomm past and future
Restcomm past and future
Β 
Restcomm in an oauth environment
Restcomm in an oauth environmentRestcomm in an oauth environment
Restcomm in an oauth environment
Β 
Restconn 2015 products
Restconn 2015 productsRestconn 2015 products
Restconn 2015 products
Β 
Restconn 2015 products
Restconn 2015 productsRestconn 2015 products
Restconn 2015 products
Β 
New Opportunities for Real Time Communications - WebRTC Conference Japan - Fe...
New Opportunities for Real Time Communications - WebRTC Conference Japan - Fe...New Opportunities for Real Time Communications - WebRTC Conference Japan - Fe...
New Opportunities for Real Time Communications - WebRTC Conference Japan - Fe...
Β 
TeleStax - Convergence - uFone - AWCC - TADS 2014
TeleStax - Convergence - uFone - AWCC - TADS 2014TeleStax - Convergence - uFone - AWCC - TADS 2014
TeleStax - Convergence - uFone - AWCC - TADS 2014
Β 
New Business Opportunities created by the IoT Explosion - WebRTCSummit - San...
New Business Opportunities created by the IoT Explosion - WebRTCSummit  - San...New Business Opportunities created by the IoT Explosion - WebRTCSummit  - San...
New Business Opportunities created by the IoT Explosion - WebRTCSummit - San...
Β 
Boost JBoss AS7 with HTML5 WebRTC for Real Time Communications
Boost JBoss AS7 with HTML5 WebRTC for Real Time CommunicationsBoost JBoss AS7 with HTML5 WebRTC for Real Time Communications
Boost JBoss AS7 with HTML5 WebRTC for Real Time Communications
Β 
Restcomm in Telehealth - Web RTC Summit - November 2013 - Santa Clara, CA
Restcomm in Telehealth - Web RTC Summit - November 2013 - Santa Clara, CARestcomm in Telehealth - Web RTC Summit - November 2013 - Santa Clara, CA
Restcomm in Telehealth - Web RTC Summit - November 2013 - Santa Clara, CA
Β 
Tel scale ussd_gateway-vuc
Tel scale ussd_gateway-vucTel scale ussd_gateway-vuc
Tel scale ussd_gateway-vuc
Β 
Open Source Hangouts on WebRTC - WebRTC Workshop IMS World Forum
Open Source Hangouts on WebRTC - WebRTC Workshop IMS World ForumOpen Source Hangouts on WebRTC - WebRTC Workshop IMS World Forum
Open Source Hangouts on WebRTC - WebRTC Workshop IMS World Forum
Β 
Boost JBoss AS7 with HTML5 WebRTC for Real Time Communications
Boost JBoss AS7 with HTML5 WebRTC for Real Time CommunicationsBoost JBoss AS7 with HTML5 WebRTC for Real Time Communications
Boost JBoss AS7 with HTML5 WebRTC for Real Time Communications
Β 
Mobicents Summit 2012 - CTBC/Algar TeleCom - Simplifying CTBC's IVR System an...
Mobicents Summit 2012 - CTBC/Algar TeleCom - Simplifying CTBC's IVR System an...Mobicents Summit 2012 - CTBC/Algar TeleCom - Simplifying CTBC's IVR System an...
Mobicents Summit 2012 - CTBC/Algar TeleCom - Simplifying CTBC's IVR System an...
Β 
Mobicents Summit 2012 - Twilio Expanding internationally Challenges Solutions
Mobicents Summit 2012 - Twilio Expanding internationally Challenges SolutionsMobicents Summit 2012 - Twilio Expanding internationally Challenges Solutions
Mobicents Summit 2012 - Twilio Expanding internationally Challenges Solutions
Β 
Mobicents Summit 2012 - Jonas Borjesson - Introduction to Twilio
Mobicents Summit 2012 - Jonas Borjesson - Introduction to TwilioMobicents Summit 2012 - Jonas Borjesson - Introduction to Twilio
Mobicents Summit 2012 - Jonas Borjesson - Introduction to Twilio
Β 
Mobicents Summit 2012 - TeleStax Keynote
Mobicents Summit 2012 - TeleStax KeynoteMobicents Summit 2012 - TeleStax Keynote
Mobicents Summit 2012 - TeleStax Keynote
Β 

Recently uploaded

Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
Β 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
Β 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
Β 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
Β 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
Β 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
Β 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
Β 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
Β 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
Β 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
Β 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
Β 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
Β 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
Β 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
Β 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
Β 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
Β 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
Β 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
Β 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
Β 

Recently uploaded (20)

Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
Β 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
Β 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
Β 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
Β 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
Β 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
Β 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
Β 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Β 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
Β 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Β 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
Β 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
Β 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
Β 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
Β 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Β 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
Β 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
Β 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
Β 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Β 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
Β 

Mobicents Summit 2012 - Vladimir Ralev - Mobicents Load Balancer and High Availability

  • 1. HA and SIP Load Balancing Design documentation Revised: Sep, 2012
  • 2. Important! ● HA here doesn't imply replication. ● HA quality units β—‹ one nine, two nines, three nines and so on β—‹ can claim them without any replication β–  it's not even cheating ● It is sufficient to partition your calls onto a set of machines β—‹ The SIP protocol doesn't mind address changes β—‹ Can go into production against any production-ready phone
  • 3. Deployment Scenarios Overview ● Pure IP load-balancing β—‹ No SIP-based affinity, only IP-based affinity β—‹ Might violate some SIP rules β—‹ Not recommended ● Standalone SIP-based load-balancing β—‹ Provides SIP-based affinity β—‹ Provides SIP protocol compliance ● Distributed load balancing β—‹ IP load balancer in front β—‹ Multiple SIP load balancers at the back end β—‹ Eliminates the Single Point of Failure problem β—‹ Scales better when SIP LB capacity is exceeded ● Cooperative load balancing with HTTP (integrated, mod_jk and mod_cluster)
  • 4. Deployment Scenarios Overview ● Pure IP load-balancing β—‹ No SIP-based affinity, only IP-based affinity NOT ENTIRELY BAD β—‹ Might violate some SIP rules β—‹ Not recommended ● Standalone SIP-based load-balancing ALMOST USELESS β—‹ Provides SIP-based affinity β—‹ Provides SIP protocol compliance ● Distributed load balancing β—‹ IP load balancer in front β—‹ Multiple SIP load balancers at the back end β—‹ Eliminates the Single Point of Failure problem β—‹ Scales better when SIP LB capacity is exceeded ● Cooperative load balancing with HTTP (integrated, mod_jk and mod_cluster)
  • 5. Deployment Scenarios Overview ● New this year! ● DNS load balancing β—‹ No SIP message affinity β—‹ Affinity is temporary per UA by TTL β—‹ No built-in heartbeats with the SIP servers - must do it on your own, with a module or by the UA β—‹ You better try to keep all your IPs up β–  Use IP takeover for fast recovery
  • 6. Two kinds of DNS load balancing ● Dynamic record DNS β—‹ Round-Robin DNS ● DNS SRV β—‹ Built-in load balancing with statistical weights β—‹ Requires support from the SIP phones (very common) _service._proto.name TTL class SRV priority weight port target For instance: _sip._tcp.example.com. 86400 IN SRV 0 5 5060 sipserver.example.com. _sip._tcp.example.com. 86400 IN SRV 0 5 5060 sipserver.example.com.
  • 7. Deployment Scenarios Overview ● New this year! ● Dedicated IP load balancing by SIP headers β—‹ Equivalent to DNS SRV without the need of phone support
  • 8. Pure IP load balancing ● Low priority ● Not very useful - just to clarify theoretically β—‹ Routes based on IP/UDP/TCP (Layer 3/4) fields - IP address, source or destination port, etc β—‹ Can not make routing decisions based on SIP messages (BigIP F5, etc are exception) β—‹ SIP AS-initiated requests and responses hard to route β—‹ IP LB is not a SIP entity.
  • 9. Pure IP load balancing (cont'ed) Retransmissions ● UDP β—‹ Retransmissions will get sprayed randomly β—‹ Forks and race conditions ● TCP β—‹ Works fine β–  Unless the TCP connection fails and the new connection ends up on new node
  • 10. Via headers in IP load balancing ● Via headers should contain the original node address, not the address of the IP load balancer. Otherwise the SIP phones will follow the SIP spec and route responses through the IP load balancer, creating additional traffic. ● Via headers are per-transaction. Mid-transaction fail-over is not supported although we are able to recover from it with retransmissions. ● Before JBCP 1.2.6 and MSS 1.3 the Via headers were with IP balancer addresses. ● Via headers must be IP balancer headers only if the load balancer is capable of Via branch affinity
  • 11. Standalone Mobicents SIP Load Balancer ● The SIP LB is a stateless SIP proxy ● Responses and subsequent requests will follow the same path - UDP follows Vias and TCP/TLS follows the established connections as required per SIP spec. ● SIP LB can make routing decisions based on SIP headers or content. It parses the SIP messages. ● The Standalone SIP LB is a Single Point of Failure
  • 12. Standalone Load Balancer (proxy) Note: In case of SIP AS or SIP LB failure in in step 4 the response will be lost.
  • 13. Distributed Load Balancer ● IP Load Balancer in front of the SIP LB ● The SIP LB will advertise the IP LB address instead of its own ● Support for multiple SIP LBs. The IP LB will distribute the load among the SIP LBs ● Support for bidirectional load-balancing
  • 14. Distributed Load Balancer ● The SIP LBs may maintain shared state when it is needed for certain load-balancing algorithms ● Certain algorithms don't need shared state (like consistent hash)
  • 15. Bidirectional Distributed SIP LB ● The SIP Application Servers not only receive client requests, but can initiate SIP requests and transactions on their own
  • 16. Solving the case for both directions in the Distributed LB When requests come from SIP phones(clients) it is clear we should use an IP load balancer in front of the external ports of the SIP LBs. However, when the Application Servers are initiating requests there are two options: 1. The Application Server is always aware which SIP LBs are alive, so if one dies the AS will pick another one on it's own. No IP load balancer is needed. This method works in terms of heartbeat resolution. 2. Put an IP load balancer between the Application Servers and the internal ports of the SIP load balancers as shown in the next slide.
  • 17. Distributed Load Balancer (2 IP LBs) BIDIRECTIONAL
  • 18. Bidirectional Distributed SIP LB Deployment Scenarios ● The SIP LB can be configured with separate ports for inbound and outbound messages (simply specify the internalPort property in the SIP LB configuration file) ● Two IP LBs - use separate IP LBs for request that come from clients and requests that come from servers ● One IP LB - use the same IP LB for both types of requests. The problem with this one is that direction analysis must be done using Via header. If the SIP AS is a non-Record- Routing proxy application then non-initial requests initiated by the callee will bypass the SIP AS and there will be no SIP AS Via header to give a hint that the request comes from the callee and should no go to the SIP AS.
  • 19. Distributed Load Balancer (2 IP LBs) BIDIRECTIONAL
  • 20. Distributed Load Balancer (or 1 IP LB) BIDIRECTIONAL
  • 21. Converged and Cooperative Load Balancing SIP, HTTP and other protocols
  • 22. Integrated HTTP forwarding ● The Mobicents Load Balancer supports HTTP forwarding ● SIP and HTTP can use common consistent hash affinity key to group and fail-over together SIP and HTTP sessions ● Example β—‹ SIP URI sip:app1@host.com β—‹ HTTP URL http://host.com/page?appsession=app1 β—‹ app1 is sip user in the URI and appsession parameter β—‹ app1 will be hashed against the AS nodes for both and will cause the SIP and the HTTP request to always stick to the same node ● When there is no key, the balancer behaves like mod_jk and analyses jvmRoute component to selet node ● Alternatively, you can use mod_jk and mod_cluster
  • 23. Distributed Load Balancer (3 IP LBs) BIDIRECTIONAL
  • 24. HTTP and SIP consistent hashing
  • 26. mod_jk support mod_jk and mod_cluster can be manipulated by changing the jsessionid cookie to reroute requests to a node of choice! Additionally mod_cluster can be controlled by the MCCP protcol
  • 28. Rolling Upgrades from the LB ● Each node is bootstrapped with a version system property β—‹ Each node is started with -Dversion=1 ● The version is advertised in the SIP LB heartbeat ● The SIP LB has awareness of the groups with particular version and can detect conditions that jeopardize the opertaions β—‹ More than two versions β—‹ Node count dangerously low β—‹ Stalled upgrade with idle nodes
  • 29. Cluster groups Divide the cluster into subgroups that failover only internally subclusterMap=( 192.168.1.1, 192.168.1.2 ) ( 10.10.10.10, 20.20.20.20, 30.30.30.30)
  • 30. SIP LB Internal Architecture What is needed for the SIP LB to support the deployment scenarios?
  • 31. Quick SIP LB functional spec ● Dumb SIP parsing - as dumb as possible with JSIP stateless. ● Pluggable routing decision algorithms. Pass the message to the algorithm and it will return the node where to send the message. ● Shared store - use JBoss Cache 3.2.1 ● No need to translate between TCP and UDP. The SIP AS will be able to handle both anyway. ● Support separate SIP ports for inbound and outbound messages (add an internalPort property in the config file) ● Support for single SIP port (delete the internalPort property) ● RMI and JGroups heartbeats (right now RMI) ● Protocol to allow AS or other entity to give instructions to the SIP LB.(like the mod_cluster protocol)
  • 32. Example Algorithms Sample pluggable algorithms for the SIP load balancer
  • 33. #1 - Call-ID affinity workflow
  • 34. #2 - Consistent-hash on Call-ID
  • 36. Balancer Algorithm Interface public interface BalancerAlgorithm { SIPNode processExternalRequest(Request request); SIPNode processHttpRequest(HttpRequest request); void processInternalRequest(Request request); void processExternalResponse(Response response); void processInternalResponse(Response response); void nodeRemoved(SIPNode node); void nodeAdded(SIPNode node); Properties getProperties(); void setProperties(Properties properties); BalancerContext getBalancerContext(); void jvmRouteSwitchover(String fromJvmRoute, String toJvmRoute); void init(); void stop(); void assignToNode(String id, SIPNode node); } ● Click here to see the full interface with documentatione/browse/trunk/tool ● Click here to see one example algorithm Call-ID affinity with association map
  • 37. The SIP LB configuration file # The binding address of the load balancer host=127.0.0.1 # The RMI port used for heartbeat signals rmiRegistryPort=2000 # The SIP port used where client should connect externalPort=5060 # The SIP port from where servers will receive messages # Delete if you want to use only one port for both inbound and outbound) internalPort=5065 # The HTTP port for HTTP forwarding. # If you like to have integrated HTTP load balancer, this is the entry point httpPort=8080 #Specify UDP or TCP (for now both must be the same) internalTransport=UDP externalTransport=UDP # If you are using IP load balancer, put the IP address and port here externalIpLoadBalancerAddress=127.0.0.1 externalIpLoadBalancerPort=111 # Requests initited from the App Servers can route to this address (if you are using 2 IP load balancers for bidirectional SIP LB) internalIpLoadBalancerAddress=127.0.0.1 internalIpLoadBalancerPort=111 # Designate extra IP addresses as serer nodes #extraServerNodes=222.221.21.12:21,45.6.6.7:9003,33.5.6.7,33.9.9.2
  • 38. ...the SIP LB configuration file # Call-ID affinity algortihm settings. This algorithm is the default. No need to uncomment it. #algorithmClass=org.mobicents.tools.sip.balancer.CallIDAffinityBalancerAlgorithm # This property specifies how much time to keep an association before being evitcted. # It is needed to avoid memory leaks on dead calls. The time is in seconds. #callIdAffinityMaxTimeInCache=500 # Uncomment to enable the consistent hash based on Call-ID algorithm. #algorithmClass=org.mobicents.tools.sip.balancer.HeaderConsistentHashBalancerAlgorithm # This property is not required, it defaults to Call-ID if not set, cna be "from.user" or "to.user" when you want the SIP URI username #sipHeaderAffinityKey=Call-ID #specify the GET HTTP parameter to be used as hash key #httpAffinityKey=appsession # Uncomment to enable the persistent consistent hash based on Call-ID algorithm. #algorithmClass=org.mobicents.tools.sip.balancer.PersistentConsistentHashBalancerAlgorithm # This property is not required, it defaults to Call-ID if not set #sipHeaderAffinityKey=Call-ID #specify the GET HTTP parameter to be used as hash key #httpAffinityKey=appsession #This is the JBoss Cache 3.1 configuration file (with jgroups), if not specified it will use default #persistentConsistentHashCacheConfiguration=/home/config.xml # Call-ID affinity algortihm settings. This algorithm is the default. No need to uncomment it. #algorithmClass=org.mobicents.tools.sip.balancer.CallIDAffinityBalancerAlgorithm # This property specifies how much time to keep an association before being evitcted. # It is needed to avoid memory leaks on dead calls. The time is in seconds. #callIdAffinityMaxTimeInCache=500
  • 39. ...the SIP LB configuration file # Uncomment to enable the consistent hash based on Call-ID algorithm. #algorithmClass=org.mobicents.tools.sip.balancer.HeaderConsistentHashBalancerAlgorithm # This property is not required, it defaults to Call-ID if not set, cna be "from.user" or "to.user" when you want the SIP URI username #sipHeaderAffinityKey=Call-ID # and specify the GET HTTP parameter to be used as hash key #httpAffinityKey=appsession # Uncomment to enable the persistent consistent hash based on Call-ID algorithm. #algorithmClass=org.mobicents.tools.sip.balancer.PersistentConsistentHashBalancerAlgorithm # This property is not required, it defaults to Call-ID if not set #sipHeaderAffinityKey=Call-ID # and specify the GET HTTP parameter to be used as hash key #httpAffinityKey=appsession #This is the JBoss Cache 3.1 configuration file (with jgroups), if not specified it will use default #persistentConsistentHashCacheConfiguration=/home/config.xml #NEW PROPERTIES IN MSS 1.2 #If a node doesnt check in within that time, it is considered dead nodeTimeout=5100 #The consistency of the above condition is checked every heartbeatInterval milliseconds heartbeatInterval=5000 #JSIP stack configuration.....
  • 40. Example Configurations How to configure common scenarios? Note: All distributed configurations must use a consistent hash routing algorithm. Example with Call-ID header hashing: # Uncomment to enable the consistent hash based on Call-ID algorithm. algorithmClass=org.mobicents.tools.sip.balancer.HeaderConsistentHashBalancerAlgorithm # This property is not required, it defaults to Call-ID if not set sipHeaderAffinityKey=Call-ID #specify the GET HTTP parameter to be used as hash key httpAffinityKey=appsession
  • 41. Two SIP LBs with client pools Request coming from phone. If a load balancer fails then a phone pool will experience outage.
  • 42.
  • 43. Two SIP LBs with Internal and External IP LBs in the same network with sample configurations. Request coming from phone.
  • 44.
  • 45. Two SIP LBs with Internal and External IP LBs in the same network with sample configurations. Request coming from Application Server.
  • 46.
  • 47. Two SIP LBs with Internal and External IP LBs in the same network with sample configurations. Full picture
  • 48.
  • 49. IP load balancer problems
  • 50.
  • 52. Large scale tests ● Simulate the IP load balancing and rewriting the addresses ● Run many nodes, many load balancers ● Execute the test as part of a larger scenario ● Simulate application server β—‹ Heartbeat β—‹ Handling and initiating requests ● TLS
  • 53. Cluster groups Divide the cluster into subgroups that failover only internally subclusterMap=( 192.168.1.1, 192.168.1.2 ) ( 10.10.10.10, 20.20.20.20, 30.30.30.30)
  • 55. Rolling Upgrades from the LB ● Each node is bootstrapped with a version system property ● The version is advertised in the SIP LB heartbeat ● The SIP LB has awareness of the groups with particular version and can detect conditions that jeopardize the opertaions β—‹ More than two versions β—‹ Node count dangerously low β—‹ Stalled upgrade with idle nodes
  • 57. Moving the load balancing on the server side ● Eliminates the worst case ● Some requests will go deeper in the pipeline costing more ● Can't change the Route headers ● Delay the load balancing decision as much as possible
  • 58. NIO in the SIP LB BIO is limited at 2500-10000 concurrent sockets on servers