These last few months we’ve increasingly found ourselves talking with customers about scaling application deployments. A pair of issues seems to come up over and over again: scaling and reliability. Once the proof-of-concept version of an application is done, it’s time to start thinking about how to deploy the application in large-scale. Like building a large office building, it all starts with a solid foundation. Not any foundation – one that is designed for the specific structure it will eventually support.
Let’s step back and look at the challenge.
To properly scale an application, you have to assume that no one server can support all the traffic and computational resources needed to meet large customer demand. Spreading the effort over multiple servers also gives a reliability gain. But users don’t want or need to keep track of multiple server addresses – they want one URL to access the application, even though that request will be handled by any one of a number of servers. In the web world, this is accomplished with an Application Delivery Controller (ADC), essentially a load balancer providing a front-end to an array of application servers that serve web pages to users.
As communications applications have moved to use more web-based technologies, they too can use a similar architecture, using a common point of entry that will distribute workload across an array of application servers. However, real-time communications applications have a number of unique needs that are often overlooked, making ADCs a poor fit for the job at-hand, spawning the need for a purpose-built Load Balancer for Real-Time Communications:
Latency Sensitivity – voice and video conversations and protocols are much more sensitive to delays that would not be noticed during a web session.
Carrier-Grade Reliability – with real-time communications being adopted in Emergency Services and other critical infrastructure applications, reliability is far greater of an issue when compared to an e-commerce site.
Service Affinity – collaboration applications benefit tremendously by bringing all the parties together on a single application server. Doing so requires that session routing has the ability bring multiple users together.
Cloud-Ready Software – with many communications applications destined for the cloud in a software-only deployment model, the associated load balancing function must also be a software-only solution that can be deployed in a virtual environment.
Deployment Simplicity – SIP, WebRTC and other protocols are the staple of communications applications. Support for these protocols should be native.
Next week, James Rafferty, Product Line Manager at Dialogic and I will be hosting a webinar titled “Scaling Real-Time Communications Applications with Load Balancers”. During the event we’ll be exploring these unique requirements, discuss techniques to address those needs, and provide an overview of the Dialogic PowerVille LB – Load Balancer for Real-Time Communications. We’d love to have you join us for the live event on Thursday, May 26th at 2:00 PM ET for a deep dive into the world of large-scale deployments of applications with Load Balancers. Register Now.