UKFMusic.com launched in a big way five months ago, bringing all of UKF’s content together in one site. It is an important step for the brand but it didn’t come without some interesting technical challenges.
UKF on the Web
UKF has over 2 million fans on Facebook and many more on Youtube and Twitter. As a result our content goes out to a huge audience and drives massive bursts of traffic across our sites.
From the start we’ve built UKF with cloud infrastructure in mind. Cloud hosting scales as traffic grows and spikes, with no server setup/monitoring time, which leaves us to focus on features not servers.
Starting with CloudControl
Our first choice for hosting the site was CloudControl who, until recently, have been hosting UKF Live our ticketing platform. They offer fully managed cloud hosting which, to our development team, is very appealing. We launched UKF Music on CloudControl expecting the same results as we’d had running UKF Live for 12 months before.
In reality the traffic spikes to our content were too much for the service to handle and when we had trouble our whole infrastructure was a black box. We couldn’t tweak anything but max and min resources. Despite CloudControls support we needed a more control to monitor and cater for these bursts of traffic.
Amazon’s Cloud
Taking one step up the chain we went to Amazon Web Services (AWS) on which CloudControl operate. Amazon’s own product called Elastic Beanstalk promises similar things to CloudControl. It dynamically creates and scales AWS resources for your site to operate. In reality though Elastic beanstalk is an awful product for our needs. The CloudWatch metrics on which any scaling activity is triggerred take at least 1 minute to take effect. Add to that the boot time of an linux instance and the site could already be taken down for minutes which could mean tens of thousands of missed views.
The other downside of AWS and Elastic Beanstalk was the cost. Making the site hyper responsive to changes in multiple metrics meant that instances were being spun up and down regularly. This ended up costing us thousands of dollars over the months we tested the service. Even building ElastiCache into our app only served to increase our bill further with no real benefit to the sites stability.
Our Own Take
Having taken down the top cloud hosting providers we took a step back and completely rethought the problem. Looking at our server usage the majority of our server resources were being used to process code and queries the database. For UKF Music, a content based site, the core of pages have very little dynamic content and are updated infrequently.
In just 2 weeks we put together a unique solution for our problem. Using a single small server we output a copy of the site as static HTML on when updates are made in the CMS or other content providers. This version of the site is then cached to Amazon S3 to be served to the user. The dynamic elements of the site were rebuilt using client side Javascript. We even boost the speed of the site internationally using CloudFront CDN.
The Results
“Speed is the most important feature.”
Matt Linderman from 37Signals, Rework
Our new file-based site launched at the beginning of September and was the biggest thing since the original launch. Now thoroughly Facebook-proof with no more downtime and page load times down to a tenth in some cases the results were incredible. As an added bonus our bill came down by 75%.
Checkout these stats after we relaunched the site:
Looking Forward
Next we’re looking at bring more UKF content to you. Checkout the recent addition of UKF’s Kiss radio show on the site. Kiss presents UKF.
