Cloud Load Balancing vs. Application Delivery Controllers – Time to Set the Record Straight
By now, we should all know that a load balancer is an integral part of the new cloud application stack. But while cloud vendors have been charging extra merely for offering more virtual servers, there are several key differences between a shared, cloud load balancer instance – offered by virtually all cloud providers (i.e. Amazon ELB, Rackspace CLB) and a cloud hosted, enterprise-grade application delivery controller (ADC). It’s time to set the record straight.
As illustrated in the following diagram, a load balancing instance is one of the core components of the cloud application stack.
In most cloud implementations, the ability to scale up the virtual server instance is limited. As a result, the common practice in scaling application performance is scaling out – adding more virtual servers running the application. This requires a load balancer on the front end of the application to distribute traffic between all the running virtual servers. Additionally, the load balancer works to ensure high availability of the application, keeping the application running with reduced capacity if one of the virtual servers fails.
One of the downfalls of this design, however, is that the load balancer becomes a single point of failure. Exactly what we are trying to avoid! To overcome failures, cloud load balancers typically deploy a disaster recovery theme. When a load balancer fails, a new one with an identical configuration takes over. Additionally, With a shared cloud load balancer, hosting multiple load balancing instances for multiple tenants, a failure induced by any tenant can cause a broader failure impacting multiple tenants, (i.e. Amazon ELB Failure june-29th 2012) fact, a closer look at cloud load balancers reveals a host of challenges IT organizations may encounter:
- The need to redesign the application due to lack of advanced ADC functionality (L7 content switching, Caching, SSL o/l, etc…).
- Lack of control over the load balancer performance and capacity as a result of utilizing a fully shared resource.
- The inability to define custom health monitoring, which may impact load balancing algorithms and the ability to properly load balance non-standard protocol based applications.
- The inability to load balance and optimize application delivery across multiple data centers.
Given that most IT organizations are not planning to give up their physical datacenters, but rather leverage cloud infrastructure where it makes sense, it is important to maintain application fluency across private datacenters and public cloud infrastructures. All changes that have been made to an application throughout its lifecycle are typically reflected in some form in the application delivery controller configuration. The ability to seamlessly have these changes reflected across all application locations is critical to leverage the flexibility of cloud infrastructure.
Implementing an enterprise-grade application delivery controller functionally similar to the one used in the private datacenter, provides meaningful benefits to enterprise IT departments looking to leverage cloud infrastructure offerings without having to recertify and redesign all application elements. For example, an enterprise grade virtual ADC, like Radware’s Alteon VA, offers functionality similar to the virtual ADC instance running inside the Radware Virtualized ADC platform, the Alteon ADC-VX. This allows enterprises to take application elements as is, in a virtual form factor, install them in a cloud infrastructure, and easily build a multi-site cloud spanned application. The ADC’s enterprise features alleviate all the shortcomings of cloud based load balancers, while equipping IT departments with a reusable platform to deploy more applications and leverage the benefits of cloud infrastructure to improve overall business productivity.