Topics


Blogs


Forums


Samples


Media


Labs


Resources

 




DevCentral > Weblogs > Lori MacVittie - Two Different Socks
 It’s like load balancing. On steroids.
posted on Monday, April 20, 2009 3:40 AM

What is this application delivery thing that everyone keeps telling me I need? Isn’t that just the latest marketing term for load balancing?

A recently released Forrester report concludes that “firms must develop and integrated strategy for application delivery.” We don’t disagree with that, or with the Gartner report claiming that “Load Balancing is Dead, Time to Focus on Application Delivery.” Application delivery is the next step in the logical evolutionary path from the tactical solution of load balancing to a comprehensive application infrastructure strategy.

Forrester’s research indicates that despite the fact that application delivery makes sense, many organizations are still operating in a very tactical, problem-resolution oriented manner.

Application Delivery Takes Center Stage

Top infrastructure initiatives — like consolidation and virtualization — are focused within the data center, and firms aren’t paying enough attention to solving the growing need to provide anywhere, anytime access to applications. The result? Application response times don’t meet expectations. The knee-jerk usual reactions are to increase network bandwidth and to deploy point solutions like WAN optimization, but these measures do not address the underlying problems. Our conclusion: To deliver acceptable application performance levels without unacceptable increases in IT costs, firms must develop an integrated strategy for application delivery.

Despite the increased focus on the network, we still don’t see a lot of companies taking advantage of more purpose-built solutions that tackle application performance, availability, and scalability. An increasing number of firms are throwing hardware point solutions at the problem, as demonstrated by the 41% reporting that they are deploying such equipment as load balancers. However, we were a bit surprised to see a lower emphasis on more comprehensive solutions, with 33% and 20% indicating they are taking a more strategic approach by implementing application delivery infrastructure and application acceleration equipment, respectively.

Some of the reason for the lack of adoption of more integrated solutions is likely that organizations are simply not aware of what application delivery is. Some of the reason is certainly that there still exist silos within IT that focus on the many functions of application delivery but do so in a non-integrated fashion themselves. Some of the reason is simply that IT is overburdened at the moment; and has very little time for strategy when it is tasked with solving real problems right now.

Ironic, then, that IT doesn’t have time to focus on the very strategy that could reduce the burden of siloed application delivery management and thus give IT the time they need in the first place. A Catch-22, to be certain.


WHAT IS APPLICATION DELIVERY

Analysts, press, industry pundits. All three agree that application delivery is an essential component to the efficient data center of tomorrow. But they – and I’m guilty of this too - often assume you know what application delivery is, and what it does, and why it’s so necessary as part of solid foundation for emerging data center models.

The question “What is it?” is far more common than you might think. The term is one that almost always requires defining unless you’ve been knee-deep in the industry for a while. If I say “load balancer” to a crowd the term is immediately understood. But if I say “application delivery” the audience gets that “are-you-speaking-in-a-foreign-language-because-I-don’t-know-what-the-hell-you’re-talking-about” look on their face. You know, the one that makes you wonder if you just brayed like a donkey or maybe your latent Tourette’s Syndrome just kicked in.

That’s why I often describe it with “it’s like load balancing on steroids.” Mostly because application delivery grew out of load balancing because it just made sense.

Application delivery is what you do with applications. You deliver them, via some kind of network, to users. Application delivery infrastructure, then, is all the components necessary to make that happen.

Load balancing is the core of application delivery. This is because the load balancer just happened to be deployed in the perfect place in the data center to provide additional, application-focused functionality: between the client and the server. Because it usually acted as a proxy, it was able to grow from simple layer 4 (TCP) load balancing to a more flexible, intelligent and application-aware layer 7 (application) device. As it did so, developers began to see the potential benefits of adding functionality to the load balancers. Because the device could see everything from the network layer to the application data, it could optimize network and communication protocols, add security options, implement rate shaping and other QoS functionality, and be more “smart” regarding the definition of “availability” when it came to the application. And thus application delivery solutions began to appear, each one comprising more and more application-aware functionality; each one capable of providing more and more benefits.

And as applications grew more complex, so did the infrastructure. There’s performance and access considerations. Reliability, scalability, and security concerns. Failover, optimization, and application-specific quirks that must be addressed in a load balanced environment. There are a lot of components required to deliver an application, keep it secure, and make sure it’s fast enough to keep the user happy.

The Forrester report discusses the need to “provide anywhere, anytime access to applications.” That means from home, on the road, in the office, in the wee-hours of the morning or during the middle of the day. Application delivery also concerns itself with being able to handle the myriad other factors that go into application delivery such as SLAs based on application and user and network conditions.

Application delivery is about making decisions based on the context of each request, rather than on one or two variables. And not just decisions like which server should respond, but which network should it be returned on and which data center should be used and should the request be scanned for malicious intent and is this request even a legitimate one for this application, for this user, from this location. It’s about applying optimizations to protocols that improve the performance of applications over both WAN and LAN. It’s focused on ensuring availability of applications and maintaining service-level agreements through intelligent load balancing decisions and careful monitoring of application health at the application layer, not just the network layer. Application delivery focuses on the application and on its unique quirks and behaviors that can impede performance. It provides a platform on which on-demand adjustments can be made to the application delivery process; on which functionality can be deployed to address security or architectural issues in a centralized manner.

Application delivery is the integration of solutions focused on the security, performance, and reliability of applications.

This graphic from the aforementioned Forrester report very nicely illustrates the difference between a point-product based solution and an integrated application delivery architecture.

 

image

Source: “Application Delivery Takes Center Stage,” a commissioned study conducted by Forrester Consulting on behalf of Citrix Systems, December 2008


WHY APPLICATION DELIVERY

Hardware point solutions can result in sprawl. Sprawl increases operating expenses, makes it difficult to troubleshoot, introduces unnecessary complexity, and as a bonus it negatively impacts application performance – the very thing the solutions were put in place to address - by adding latency at every hop. I’ve explained the problem of sprawl and the proliferation of point solutions to many different types of audiences and not once has someone yelled out, “You’re a liar! Does not!” because everyone knows it’s true; we just may not agree on the best way to solve that problem.

Obviously if you integrate all the functionality normally found in point solutions so that they all work on the same data set, it’s going to remove the issue of latency because all the solutions can work on the same data without needing it packaged up and delivered via a fairly expensive TCP connection.

That used to be “the big” problem application delivery solved. Today the focus is also on streamlining application delivery processes: the manual configuration and coordination of policies across disparate solutions designed to secure and speed the delivery of applications. That process, when using multiple point solutions, can become a nightmare. It’s not just the configuration of each individual device that’s the problem, it’s the coordination across all those solutions that becomes problematic and time consuming. Policies implemented and enforced on one point solution may interfere with the application of a policy on another device, conflicting with one another even though both are equally valid and equally necessary. Resolving those conflicts takes time and can actually require a re-architecting of the network. For example, where in the data flow you place certain solutions such as security can change how the policies act. If an intermediary acting as a full proxy changes, in any way, the application data or headers it can trigger false positives on security devices inspecting traffic behind it.

Encrypted data has to be decrypted to be inspected by security and content filtering solutions, so it’s essential to ensure that those solutions are in the flow in the right place in the network. Or you have to provide them with the proper certificates so they can decrypt the data, which means more management and tracking of certificates. This also introduces the potential for certificate theft as few devices have secure key stores and cert management. That’s assuming you can store the cert on an intermediary device; some provide no mechanism for doing so.

These problems are solved with an integrated application delivery solution because the policies are designed to collaborate with one another; to work in concert with each other rather than conflicting with one another. They have access to each other’s data if necessary and understand their relationship with one another. And when there is still a conflict – and there invariably is for some situations – then the answer is to reorder policies, not re-architect the network. The former is a much simpler solution that requires less time and fewer headaches.

An integrated solution also ensures the reuse of knowledge. If you know how to configure the application acceleration components you also know how to configure the application security, and the core load balancing features. The interfaces are the same and the processes (and terminology) are the same, which means less time spent learning the nuances of each product and becoming familiar with each product’s unique view of how the product should be configured and managed. This streamlines the application delivery process and makes it more efficient, which translates into reduced operating expenses.


THE PROBLEMS OF ACCURACY and CONTEXT

In an architecture comprised of multiple solutions, the only real way to share that context is to pass it around somehow between devices. The only exception to this is in the case of some security solutions that can be deployed in a bridged mode. IDS and web application firewalls are the most common example, where the solutions are deployed in such a way that the original requests are essentially broadcast to the devices, usually through the use of mirroring on the switch. This solution does solve the problem, but it also results in duplication of data on the network and increases the bandwidth used in the process.

The passing around of context between devices doesn’t happen for a number of reasons. Foremost is the lack of a communication protocol to do so. There is no “context-sharing” standard, no best practices, no agreed upon method of sharing that context between disparate devices. context While there may be a way to do so among products from a single vendor, anyone who builds an application delivery network based on individual components rarely sources from a single vendor, so any “sharing” of context that is possible is generally lost.

The other issue with a multiple-solution architecture is that many solutions are full proxies. That means that it is not the user that appears to be the client, it is the last intermediary in the chain of proxies that appears to be the client. If the flow of data is client –> SSL accelerator –> load balancer –> server then the load balancer sees the SSL accelerator as the client, and not the end-user. That means data regarding the network conditions for the client are not accurate. The load balancer sees the local segment of the network as the “client link” and any decisions made based on that will be based on incorrect data.

This problem is particularly prevalent in Web 2.0 applications which provide APIs for integration. Requests via the API have different requirements; they are treated differently than requests for the same data arriving via the web application itself. Without an intelligent infrastructure, the handling of these requests is spread across multiple pieces of infrastructure – and often in the application itself. A change in policy requires changes across multiple devices, which can not be only be time-consuming but is prone to error introduction based on the sheer volume of changes required.

In an integrated application delivery network the myriad functions are integrated and deployed on the same platform. This means that what one solution (e.g. security) does to data is understand and recognized by other solutions (e.g. caching and application acceleration). The context is preserved as requests and responses flow through the disparate functions. It solves the second issue – accurate data upon which to make decisions – by having access to the original request, from the network layer up to the application layer.


START SIMPLE, GROW LATER

Most organizations necessarily turn to application delivery solutions because they are in need of a high availability architecture; they need a load balancer. As scalability through virtualization (horizontal scalability) continues to rise in popularity as a more efficient means of achieving goals, load balancing will continue to be a more strategic part of the data center. It behooves network and system architects, then, to consider the long-term ramifications associated with virtualization and increasing demand on applications in terms of access, performance, and security. Doing so should, according to analysts, lead those architects to determine that an application delivery networking solution will serve their needs best as it is these very issues that are addressed by such platforms.

Choosing a modularized, extensible application delivery platform allows architects to start with load balancing and add additional functionality as they need and in such a way as to allow them to truly design a solution that fits their specific needs rather than simply acquire and deploy more devices that may dictate changes in the network and infrastructure architecture. 

Follow me on Twitter View Lori's profile on SlideShare friendfeedicon_facebook AddThis Feed Button Bookmark and Share

Related articles & blogs



 
      

Feedback


4/20/2009 11:33 AM
Gravatar Great post, Lori. Your writing on the load balancing industry is some of the best out there. (I'm writing this having spent 5 years as a senior executive at two F5 competitors, although I'm not at one now.)

I used to think load balancers were at the core of application delivery until I dug into the branch office problem and WAN optimization. I realized that putting the focus on the data center was a normal way of thinking, similar to the way that we used to put the Earth at the "center of the universe" because we see it most often.

The last 10 years have taught me that there is no center of application delivery, that applications without users are not applications, that branch offices without data center access are not very good applications, and that mobile users are important too.

Application delivery has several components:
Availability - the #1 value prop for load balancers
Acceleration - offered by ADCs that do compression and TCP offload, etc., but also offered in a complimentary and faster flavor by on-premise branch office WAN optimization solutions
Visibility - data center centric view offered by ADCs for mostly HTTP/S traffic; branch-and-per-user all-protocol view offered by WAN optimization, including full APM
Security - offered by ADCs from a data center centric view, including WAF, SSL offload, SSL VPN. Offered from a WAN Optimization view including URL filtering, policy enforcement at branches (with AD integration), and anti-malware and antivirus solutions that keep applications clean as they're delivered.

Thanks for an insightful post, as always, and please consider that while the load balancer is a key part of the application delivery universe, and always will be, it's not the only one. Application users are distributed, so application delivery solutions will always have elements that are not in the data center. Application delivery is everywhere!

Thanks
Dave Asprey
Dave Asprey

4/20/2009 11:44 AM
Gravatar Hi Lori,
interesting post. You seem to be arguing for an all-in-one appliance solution for application delivery. Can you touch on some of the negatives of this solution? For example, increased load, software upgrades for some modules affecting others, etc?

Also, I've never licensed multiple non-LTM modules on the same host. If you license multiple options on the BigIP to cover some of the functions you describe, say security + LTM, do they really share anything between the processes? Or are we really just introducing multiple IP proxies inside the same box?

How do you troubleshoot? How can I be sure that a request that left the security module is identical to the original request and to what is received by the load balancing module? With separate devices I may have latency, but I also have an opportunity to inspect traffic on the wire for comparison if necessary.

-andy

btw, I like that you used a graphic from a study conducted on behalf of one of your competitors (Citrix) :)
Andy

4/20/2009 11:52 AM
Gravatar @Andy,

I'm not necessarily arguing for a god-box, which is really what an "all in one" solution ends up being. I am arguing for a single platform on which all related functionality can be deployed as needed by a given architecture. While reducing the number of individual boxes is certainly one of the goals, I don't think we'll see the day of the "god box" anytime soon. so reducing the number of devices to a minimum - in a way that makes sense for each organization - is really the point I'm getting at.

As far as non-LTM modules on BIG-IP - yes, they are completely integrated at this point. They are not hiding chained proxies under the covers (this used to be the "standard" integration method for most consolidated infrastructure platforms and for some still is) but are really sharing the data and control plane.

I'd have to dig into the specifics of the logging, but I believe you should be able to prove integrity by logging through each individual module.

Thanks!

:) It's a good study, regardless of who paid the invoice for it. I have no problems with studies that forward the industry as a whole, those are good for everyone. Hopefully better for F5, but that's to be expected - I gotta eat, right?
Lori MacVittie

4/20/2009 11:55 AM
Gravatar @Dave,

Thanks much for the kind words.

Your point about WAN is very true, and if we back up a few feet and view the bigger picture I think we'll see some interesting things happening around WAN/branch/remote offices and application delivery in the near future.

You're right about application delivery being everywhere. "SoftWOC" clients are (hopefully) coming from many places - in some cases already exist! Branch devices are important pieces of the application delivery puzzle, and one hopes that we'll see the incorporation of that model into the cloud such that hybrid environments can take advantage of WAN application delivery services just as easily as they do with their own remote locations.

Thanks for the commentary and the reminder that WAN and remote locations are indeed an integral component of application delivery.

Lori
Lori MacVittie

4/20/2009 12:00 PM
Gravatar @Andy,

Sorry - didn't touch on the negatives.

The negatives to deploying everything on one box is going to be increased bandwidth requirements and a heavier burden on the system. With higher end BIG-IP hardware platforms this is less of a problem (using v10, at least) because of the ability to provision CPU resources at the module level. Like bandwidth, you can specify a "maximum" and a "burstable" maximum that lets modules use more resources when it is available, assuming all other modules and components do not suffer (i.e. are unable to hit maximum).

The more you try to do, the more resources you'll need. That will always be true and that's one of the reasons I don't believe a "god box" will work. Some of the benefits of a unified platform are you can mix and match and maximize the efficiency of each device based on module combinations that make sense in your environment. The opex reductions then come from being able to admin the devices the same - because they are all the same platform.

HTH
Lori
Lori MacVittie

4/24/2009 1:29 PM
Gravatar DevCentral Top5 04/24/2009
Colin Walker
 Leave Feedback
Title  
Name  
Email
Url
Comments   
Please add 5 and 7 and type the answer here: