Note: As of 11.4, WebAccelerator is now a part of BIG-IP Application Acceleration Manager.

This is article one of ten in a series on DevCentral’s implementation of WebAccelerator. Join Colin Walker and product manager Dawn Parzych as they discuss the ins and outs of WebAccelerator. Colin discusses his take on implementing the technology first hand (with an appearance each from Jason Rahm and Joe Pruitt) while Dawn provides industry insight and commentary on the need for various optimization features.

 

 

What is Web Acceleration?

Very simply, as the name indicates, Web Acceleration is the practice of taking anything that runs on the web, that is, anything HTTP or HTTPS, and making it…faster. This can range in tactics and practices, in effectiveness and outcome, but the premise is all still very much the same. You have an application of some sort that is delivered via HTTP, and you want to deliver it in a timelier manner to your users.

I think the gross misconception that comes along with discussing “Web Applications” is that we’re only talking about things like the web monster e-commerce, social media, search or news sites. Sure, those sites are absolutely web applications, and benefit to an incredible degree from many different acceleration tactics. As a matter of fact they are often the ones leading the charge and very literally writing the book on new technologies and methodologies to achieve faster applications across the World Wide Web. That being said, they are not, by any means, the only beneficiaries of such technologies and practices.

The vast majority of applications are already on, or moving towards a web based platform. More information and utilities than ever are being sent over HTTP today, and that trend doesn’t appear to be slowing down. With the advent of mobile devices, this curve took an even steeper slope, and isn’t likely to change nay time soon. Whether it’s an internal DB query being run from a smart phone, email being checked remotely via a laptop, or sales information being input into the internal customer DB; chances are it’s going to be traveling over HTTP. As you can see, this becomes a far more widespread topic, and something that nearly every company with an application or product being delivered is likely to be thinking about already, or in the near future.

Dawn Says...

 

Web Performance Optimization (WPO) is an area that has been growing in popularity over the years. Performance has always been important but just how to improve performance has shifted over the years. 10 years ago the focus was mainly on infrastructure – load testing, scaling the servers, tuning the database, etc. Once sites were as tuned as they could be on the back end people starting looking elsewhere to make improvements specifically how to optimize the front end. Tuning HTTP and HTML to improve the delivery of web applications were the next logical targets for improving the end user experience.

Browsers have improved the way that pages are rendered by increasing the number of requests that can be issued concurrently and changing JavaScript downloads from blocking to non-blocking. Books like High Performing Websites hit the market, the Velocity conference was launched and has grown every year, and a number of solutions to help automate WPO are on the market.

My view on performance is a holistic approach one can’t just tune the servers or the front end. Modifications along the entire delivery chain from optimizing the generation of content to tuning the delivery to front end optimization need to be made to provide the best end user experience. F5 calls this Application Delivery Optimization and it serves as the foundation for our acceleration strategies and solutions

This sounds fantastic and all, but it’s important to keep in mind that there are some inherent limitations to and intricacies of this beloved protocol. A proper web acceleration strategy will look at how to tune the interaction between the user and web server to make the absolute most of the protocol’s available performance, and then look at ways to layer further improvements on top of that. The basics are easy, but to get the most out of things, it quickly gets complex, and that is where different web acceleration experts and technology step in.

Why Bother?

With a growing number of applications and services being powered by the underlying HTTP protocol, it is ever more important to keep things secure, available, and performing as efficiently as possible. Wait times are destructive to user experience in very small doses. The drop off of user willingness to wait more than even a few seconds is massive. The number of studies alone on the difference between a three and four second wait time and the percentage of user drop off that occurs is staggering, and speaks to how pervasive the concern and focus on performance is. If you want an application that people use, value, and return to, you simply must have it perform.

How Do We Get There?

Some people will say that they do this tuning with the web server itself, and while that’s a good start, it simply isn’t enough. Tuning the web server is a good start, and something that anyone hosting any sort of HTTP based application should do. Once that is done, however, there are still massive gains yet to be had. Things like tuning not just the server side functionality, but client functionality as well.

Yes, you can tune client functionality without actually controlling the clients. By sending the appropriate information in response headers and data, you can manipulate the way in which the client browsing your application responds. You can do a myriad of things such as modifying caching behavior or request pipelining, and more. That’s not even delving into the more advanced options like server side image compression or pushing content closer to individual users based on geo-location information.

There are a host of different options available for the taking when it comes to performance improvements for web applications. In this series we’ll walk through how we made use of many of the above and more with F5’s Web Accelerator product.