Most websites contain both static content and dynamic content, a combination that can really slow down user experience.
Of course, you want to avoid this slow-down at all costs and improve your user experience which can be achieved by scaling the web layer.
You might think to throw more server instances at the issue, though ultimately this is both ineffective cost-wise, and eventually not scalable.
Fear not, however, there is a solution, and it’s called caching.
By implementing a caching layer in front of your web servers you can dramatically increase the performance of your site and increase the experience of your users as well.
A typical CMS solution processes static content through the application engine, thereby increasing the latency to the end user. By off-loading the content that can be cached to separate servers you will decrease the need to scale the web/app servers.
As an example of how this can work consider the Wordpress software package. It’s a platform popular with bloggers and approximately 18% of all web sites on the internet are built on it. It is notorious for not serving many pages per second.
To investigate how using a caching layer would affect a website’s performance I load tested a pair of Wordpress servers, with a single database backend using a Claranet Virtual Data Centre public cloud. I was able to process just under 100Mbps of traffic with no failures; the load was on the web servers. The following diagram shows the architecture:
I then re-ran the same test, with the addition of a pair of varnish (caching) engines sitting on the same webservers, enabling the site to process in excess of 680Mbps with no failures (the bottleneck was now the load testing platform). This greater than 6 times increase in performance was achieved with no added cost (the varnish server was located on the same virtual machine as the web software).
Claranet has implemented this technology successfully, and with similar levels of performance improvements with Channel 5’s Big Brother website, as well as many other clients’ websites.
To serve static content is relatively straight forward, moving into the management of dynamic content can be a little more difficult. The application would need to apply cookies to content that shouldn’t be cached, and although varnish can strip cookies from static content, varnish would need to be specifically configured to serve the application. In short you need to know how the application works in detail in order to effectively deploy a caching layer.
That’s where we come in. With Claranet’s Managed Application Hosting service, we take responsibility for fully managing the production environment, while our customer gets no access to it (that’s how we guarantee service availability on the application rather than individual servers). Claranet manages the varnish caching using our experience to ensure your website is as fast as possible.
We give our customer’s full root/administrator access to a pre-production environment where they can make application changes. When content needs to be promoted into production, you raise a change request and ask Claranet to promote the content/application into staging.
At this point you can perform user acceptance testing, load testing, regression testing, etc. After you sign-off on the content as fit for purpose, you again ask Claranet via a change control to promote into production. This process ensures both your static and dynamic content works optimally and your users get the best possible experience.