The City of Melville is a local government organisation in the southern suburbs of the Western Australia’s capital city of Perth. The city is one of the largest local government authority in the metropolitan region and serves over 100,000 residents across 18 suburbs. A critical part of keeping the public informed about services, is the City’s Public Website. Recently the Website had been suffering from poor performance during peak usage periods. This has impacted the ability of the City to deliver timely information to their community.
The Public Website is constructed using a sophisticated, multi-tier solution using an open source stack consisting of a reverse proxy (Apache Web Server), presentation tier (Joomla) and content repository (Alfresco CMS). The infrastructure environment is virtualised using VMware with servers running Ubuntu Linux. The City employs a hybrid network architecture consisting of on-site back-end services in addition to a co-located datacenter for the web tier.
After conducting initial testing using BlazeMeter (blazemeter.com), Permeance confirmed that the underlying content delivery system simply did not scale. With a rising number of concurrent users, page load times increased from tens of seconds (slow) to over two minutes (unusable). The next step was to identify the solution. Since the City has made a considerable investment in a complex multi-tier architecture, it was decided to limit any impacts on the current solution by installing a web accelerator in front of the existing platform. The content being served was not personalised so the content was highly suited to caching, both in a web accelerator and in the user’s browser cache. However, the content authors within the City still required
However, the content authors within the City still required an ability to preview content immediately without being hindered by caching.
Permeance installed and configured a web accelerator. We chose the Varnish Cache (varnish-cache.org) because it is a highly performant, reliable and flexible open source product. Appropriate caching rules and proxy logic were created to optimise the delivery of content from the content delivery platform and other internal systems. At the same time, content authors were provided with an alternate hostname to by-pass the cache and allow them to preview their content immediately after publishing. The cache was also configured with a grace period to enable content to continue to be served even when the content delivery system was unavailable, thus improving availability. Some additional optimisations were performed within the content delivery platform to improve the cacheability of content and reduce the communication overhead between the layers of the application.
Following these efforts, the Public Website is significant faster and users are no longer complaining about performance or outages. Content authors are able to keep the community up-to-date with events and important information. Finally, the IT team are able to monitor the performance of the web accelerator and maintain it without any additional licence costs.
- Load and Performance Testing
- Performance Tuning
- System Administration and Installation
- Apache jMeter
- CA BlazeMeter
- Alfresco EDRMS
- Joomla CMS