Test in Formation - How to Avoid Website Crashes Like Glastonbury and Improve Your Site Performance
Music fans who were hoping to dance to the tunes of Beyonce, Radiohead and Lady Gaga (according to rumours) at the 2017 Glastonbury Music were in for a disappointment. Not only did all tickets sell out in 50 minutes, but the ticket website and the official website (the only way to order tickets) couldn’t handle the load and both crashed. The unavailable service due to high levels of traffic left many music lovers unable to connect to the site, or unable to complete their transaction, rendering them ticketless and without access to hearing their favorite melodies live.
While website performance crashes due to heavy loads can happen, fans claim the ticket site crashes every year. "Fourth year trying for #Glastonbury tickets and once again the page won't even load. Every year this happens." tweeted one fan. But the only way the ticket site and organizers dealt with the crash was to urge users to stick to one tab or device, and to stick to one screen.
Fans were not happy. “I mean, call me old fashioned but I'd like to at least reach the tickets page for it to tell me I have no hope of getting them #Glastonbury”, “It's genuinely easy to buy a guitar, take lessons, release an EP and get booked to play #Glastonbury than it is to buy a single ticket” and “Will they ever make the servers big enough that they don't crash five minutes before the start lmao #Glastonbury." were some of the reactions on Twitter.
This doesn’t have to be the case. Ticketfly, a progressive ticketing company that hosts its own datacenter and system, constantly deals with traffic spikes. When getting ready for their summer concert season, Ticketfly prepares for light loads and sudden immense loads, with users constantly hitting the refresh button. To prevent crashes, Ticketfly simulates this kind of traffic in advance, measuring and tuning the underlying systems, fixing whatever needs to be fixed, so they can serve customers in the next traffic spike.
Load Testing Tips
To answer the fan who tweeted about the size of the Glastonbury servers, here are 7 quick tips for load testing that can help organizations and their developers, QA engineers and DevOps determine how big their servers need to be before big events (and all the time):
1. Run Load Tests From the Production Environment
This is the only way to ensure your testing is accurate and that each point is tested properly. We recommend you choose a time you know traffic is low, and simulate loads from multiple geo-locations and environments.
2. Try to Bring Your System into Failure
The purpose of performance tests is to know your capacity. So keep increasing the load until you fail. Find out what fails and how, so you can prepare.
3. Find the Critical Resource
Investigate your system to find out what your weak points are and why. Set up alert monitoring dashboards for these critical issues.
4. Divide Your System and Stress Each Section Individually
Not all parts of your system will receive equal loads and traffic patterns. Identify different capacities and weak spots, and take proactive measures.
5. Set Up Back-Up Servers and Locations
Crashes can happen, even to Beyonce (ok, not to Beyonce). By setting up back-up servers and locations, you can make sure you are ready to continue providing service in a very short time.
6. Incorporate End User Performance Tracking Into Your Backend Testing
Automatically or manually analyze what your users are experience with various tools such as Selenium with Sauce Labs.
7. Check Your Third Party Integrations
Even if your web or app is 100% prepared, your third party plugin or module might not be. Look at your frontend dependencies, backend potential failures and make sure you’re aware of all limitations in your contract.
Congratulations! You are now ready to clear your throat, put on your dancing shoes and start load testing. For more tips see our Whitepaper “How to Ensure Your Website or App Won't Fail at Peak Times”.