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

This is article three 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.

 

 

So you have a web application, and you’ve done enough research, situational or otherwise, to know that you want (or need) to invest in some acceleration; there are many options, of course. You could tune your web server, you could possibly even tune client settings, if you have control over the clients accessing your application, even though that isn’t usually the case these days. What you may want to consider, however, is a Web Application Optimization solution, that allows you to have full control of everything from caching and compression to influencing client behavior and more. That’s what we decided when looking at DevCentral, and it’s worked out pretty well for us so far.

Enter WebAccelerator.

 

What is WebAccelerator?

WebAccelerator is F5’s offering in the Web Application Optimization world. It’s a way to wring the absolute most out of any HTTP(S) based application. Whether you’re looking to cache the CSS on your social media site or modify headers sent back from your custom, internal inventory application; WebAccelerator is solid ticket for those looking to reduce response times and increase performance. It also happens to lighten the load on the back-end servers, which is just icing on an already tasty cake, really, but it’s not such bad icing. Increasing scalabity is never a bad thing.

Dawn Says...

 

If you’re like me you have an ever growing list of things to do. Every time a few items are knocked off new items are there waiting to be added. Prioritizing the list can seem like an insurmountable task. Being able to cross off a large number of to-do items all at once is an exhilarating feeling and wouldn’t it be nice if it could be done with just a few clicks of a button. This is essentially what WebAccelerator does for a web application.

When developing an application there are always trade offs to be made between performance and functionality. Without certain features users won’t come to the site, but if the performance is horrible they won’t come back. Building front end optimizations into the development process takes time away from building all the cool new features that users are screaming for. With just a few clicks through the configuration screens an application can get all the benefits of caching, object versioning, image optimization, domain sharding, compression & much more. Building these items manually could take months. Not to mention performance tuning and optimization isn’t something that is done once and then forgotten about. Every release of the application you need to make sure that the performance is as good as it was previously.

How Does it Work?

As with most F5 products, WebAccelerator is a module that runs on the BIG-IP platform. Backed by TMOS (Traffic Management Operating System), WebAccelerator (WA) ties in with LTM and any other modules you’ve got running to deliver the best performing application environment possible for your users. There are many default acceleration options within LTM, but WA takes those one step further. As such, in many cases, WA options will override your existing HTTP optimization settings within LTM. If you have a compression profile enabled, for instance, and apply a WebAccelerator policy that has specific compression settings, the WA settings will take precedence. That’s because this module is specifically designed to perform this type of task and the way it’s tied into TMOS allows it to execute against the traffic first, and bypass some of LTM’s core features, while benefiting from others.

General setup is pretty straight-forward. The heavy lifting is done by a WebAccelerator Profile. This is where you’re able to do define the behavior you want for individual objects. From images to HTML documents to particular components like CSS, in the policy editor you can affect each of them as individual object types and specify particular behaviors for each. Whether you want to change the way they are cached or set specific parameters for matching, this is where you can do it.

wa_building_blocks_1

Once you’ve got the individual objects set up the way you want them, say you have your static HTML content being cached along with any images and static script objects, then you’ll want to apply the policy you’ve just created. To do so you first create an application, which allows you to dictate which domain(s) this particular policy will apply to, custom WA header names, x-info options and more. Once you have your application, you’ll create a new Acceleration profile (different than a WebAccelerator policy). This profile will reference the new policy you’ve just created, and is the link between WA policy and virtual. Now that you’ve got all the objects created, it’s rather simple, just go apply the new acceleration policy to your virtual.

wa_building_blocks_2

Once that’s done, that’s it. You’ve now got WebAccelerator up and running and affecting the traffic passing through whichever virtual you just applied your policy to. You should see a performance difference right away; we certainly did in our testing.

What Does it Gain Me?

Well aside from the obvious answer of “better performance” there really are many things that WebAccelerator gains you. The core of the technology is really a powerful caching infrastructure. It allows you to move as much content as possible off of your web servers and into memory to be served rapidly by WA whenever possible. We even do some fancy things to allow caching of otherwise un-cachable content. In a symmetric deployment, this even gets the content closer to the end user, just like a CDN, which can be a massive performance improvement, especially when combined with intelligent routing via geolocation to send users to the closest WA cache to retriever their content.

Beyond that there are many features that you can enable in WebAccelerator to further improve performance. Some more basic such as compression and caching, some more complex like IBR, Image Optimization, and Content Reordering. Those, however, we’ll get into in another article.