Testing the cloud from above the clouds

by | May 28, 2012

Someone call Ripley’s Believe It or Not, because I might have performed the first-ever load test of a cloud-based enterprise application at 30,000 feet. I recently flew from Seattle to Los Angeles, and thanks to the beauty of in-flight Wi-Fi, I was able to conduct a proof-of-concept cloud application optimization test before landing.

Why did I set up and execute the test from 30,000 feet in the air? Well, since our SaaS-based cloud application optimization software doesn’t require anything to be downloaded or installed locally, and the application doesn’t need to be modified in any way (such as with JavaScript), the question was really, why not?

As part of our partnership with Rackspace, we offer proof-of-concept load tests to its customers to ensure success when launching cloud applications. This Rackspace customer was deploying a new application to the cloud and wanted to ensure adequate performance before the launch.

First, we held a discussion with the client to help us understand how a typical user navigates the site. In this case, it was a pretty complex scenario. People are logging in to a portal and running searches, taking it a step beyond your basic static landing page. The client’s target was to scale for 1,000 simultaneous users.

We also had the client install some of our agents on its servers, so we could get visibility into what was happening behind the firewall. This isn’t always necessary, but it provides a more complete picture of the application, and thus greater understanding of its performance.

It wasn’t until just after takeoff that I thought, “There’s Wi-Fi on here. I’m going to take this opportunity to run the test.” I set up the scenarios by recording browser sessions while using the client’s site, logging on, putting in a username and password, selecting menu items, and going through the whole process just as a typical user might. Then, I uploaded the scripts to the Apica portal and fine-tuned them to eliminate any issues we might get from third-party components like Google Analytics.

I started out doing a simple test, just five users from our East and West Coast clusters, and then gradually increased the load until I worked up to 200 simultaneous users. My idea was to increase the load linearly and see if I got linear scale with the application. The application crashed at 60 users. A long way from 200, and even further from 1,000!

But because the client had installed our agents behind the firewall, I could tell immediately that the problem was in the application, specifically when the front end made calls to the database. This is a classic example of how the performance of an application is just as important as that of the cloud infrastructure. More cloud resources wouldn’t help this application.

We pinpointed exactly where the problem was, and the client saw the immediate ROI of the proof-of-concept test. Now it is taking steps to optimize its application and retest it.

Once you’ve made the decision to deploy to the cloud, it is imperative that you test your application before launch to ensure scalability, reliability, and performance. Identifying bottlenecks in the system can be the difference between success and failure. The results of load testing might postpone the launch of your app, as it did in this case, but in the long run, the temporary delay will be beneficial for your business, your revenue, and your reputation.

Of course, after testing the cloud from the clouds (literally), I’m left wondering how I can top this location for my next load test. I climbed Mt. Whitney last March. Maybe I’ll make another climb, but this time with my laptop and my MiFi.

Where do you think I should try my next load test? Drop us a line and let us know where you’d like us to test your application.

Apica Product Team