Wanna know a secret? You can consolidate servers by using acceleration technologies
Forrester Research recently conducted a survey on virtualization, citing server consolidation as one of the primary drivers behind the 73% of enterprises already or planning on implementing virtualization technology. But virtualization, particularly operating system virtualization, assumes you have additional cycles on servers to spare. In some cases, that's just not true. Your application servers are working as hard as they can to serve up your applications and virtualizing them isn't going to change that fact.
But application acceleration technologies can change that, and offer you the chance to consolidate servers. I know that sounds crazy. How can making something faster result in needing fewer servers? That doesn't make any sense. Usually when you want faster applications it means more servers because reducing the load on the application servers makes the application execute faster thus delivering it more quickly to end-users.
That's one of the secrets of application acceleration. Some of the "tricks of the trade" that make applications faster include techniques that reduce the load on application servers which means, ultimately, that you can consolidate and use fewer servers while still improving performance.
There are three primary mechanisms used by application acceleration technologies that can help you reduce the burden on servers and thus consolidate your application infrastructure: offloading, optimization, and acceleration.
Let's say you have 10 servers in a server farm, each with a total capacity of 1000 concurrent HTTP requests, and that you need to support at least 10,000 concurrent HTTP requests. You're full up. In order to consolidate you're going to need to maintain support for those 10,000 concurrent HTTP requests with fewer servers.
Let's take a look at how application acceleration solutions can enable you to meet that goal.
1. Caching (Offloading)
Let's assume that at least 5 of those objects are actually static even though they are written into the page dynamically. CSS, external scripts, and images are good examples of this. Those objects don't change all that often, but developers and administrators probably aren't inserting the proper cache control headers for them, meaning that every time the page is loaded the images are re-requested from the server. Application acceleration solutions employ caching to relieve the situation, recognizing when static content is being served and automatically caching it. When the request for those objects hits the application acceleration solution, it recognizes it and doesn't bother the server, it just serves it out of cache or, in many cases, tells the browser to retrieve it from its cache.
Basically we've just cut the load in half and we've made the application appear faster because the content is being served by a device physically closer to the user or is being retrieved from the browser's cache, which is really much faster than transferring it.
- Reduces load by offloading requests
- Accelerates application delivery by obviating the need to transfer static content
2. TCP Multiplexing (Optimization, Acceleration)
TCP multiplexing allows full proxy-based application acceleration solutions to optimize the use of TCP connections. Rather than opening and closing two new connections to the server for every page (or more if the browser is FireFox) the application acceleration solution sets up connections ahead of time and reuses them. That means the server doesn't have to spend time opening and closing TCP connections, which can actually be quite costly in terms of time spent. This means the application responds faster, because it isn't concerned with connection management, it's just executing logic and serving up the application.
It also means the server has additional resources it can use to handle requests because they aren't being spent on opening and closing connections. That increases capacity of individual servers meaning you can reduce the total number of servers or, at least, stave off the purchase of additional servers.
- Reduces load by optimizing the use of connections
- Accelerates application delivery by reducing the amount of time required to respond to a request
3. Content spooling (Offloading)
Servers can only serve content as fast as users can consume it. Even in the world of nearly ubiquitous broadband access there are still folks on dial-up or who are accessing applications and sites from a far-reaching location. The speed of light is a law, not a guideline, so there are inherent limitations on how fast an object can be delivered to the user.
If the server is hanging around waiting for a user, spoon feeding it content because it's far away, the network is congested somewhere, or it's connected via dial-up, it can't process other requests. That connection is tied up for as long as the user is receiving data.
Application acceleration solutions resolve this problem by sucking up responses from servers as fast as the server can provide it, and then spoon feeding it to the client. That means the server is freed up and can respond to someone else's request rather than hang around bored while one user takes forever (and in the internets, even 10 seconds is forever).
- Reduces load by offloading responsibility for delivering content to clients
4. Protocol Optimizations (Optimization, Acceleration)
There is a lengthy list of RFCs (Request for Comments) regarding the optimization of TCP. By implementing these RFCs application acceleration solutions improve the performance of the underlying transport protocol used under the covers by HTTP which in turn improves the performance your applications.
HTTP has no such list of RFCs, but it is a chatty protocol and there are ways to improve its performance through optimization as well, and these mechanisms are generally also implemented by application acceleration solutions.
- Accelerates application delivery by making more efficient the protocols used to deliver applications
5. SSL Acceleration (Offloading, Acceleration)
When SSL is used to secure data in transit it can degrade performance and consume additional resources on servers. By placing the burden of negotiating SSL sessions and bulk encryption/decryption on an application acceleration solution, the server can reclaim the resources used to handle SSL.
Most application acceleration solutions employ hardware-based acceleration to improve the performance of SSL, allowing such devices to support a much higher number of concurrent SSL-enabled connections than any single server. This improves the capacity of your application without requiring additional servers.
- Reduces load by offloading responsibility for SSL
- Accelerates application delivery by increasing the performance of SSL through hardware acceleration
By reducing load on servers, capacity is increased. When the capacity of each individual server is increased, it allows you to reduce the total number of servers because you can handle the same volume with fewer servers. This enables you to consolidate servers (or just stave off the purchase of new ones) while simultaneously improving the performance of your web applications.
Virtualization is one way to consolidate servers when you have extra cycles laying around to spare. But if you don't and are still tasked with consolidating servers, consider application acceleration solutions as an alternative to meeting your goals.
Need an example? Here's one in which application acceleration technology reduced server load by 50%, lowered bandwidth usage by 20% to 50%, and reduced download times by 20%.