Let’s say you’re the Founder of a relatively young company. You’ve had the idea that you think could make an impact on the world, and now all you need is for some visitors to really start heading your way. In typical startup fashion, your team has worked around the clock, basically running things at-cost or at the hands of your own credit card, and you’re just waiting for that moment when the Web will catch on to your genius.
Suddenly, that trickle of steady traffic starts to flow — and then flow more forcefully. Things are happening. Maybe Product Hunt picks up your idea. Maybe a Hacker News thread in your honor gets some traction. Whatever the cause, your hard work is starting to pay off. Your traffic is coming, you’re making money, your startup team is in a constant mental state of PARTY!, and all you know is that you don’t want that traffic to go elsewhere… BOOM. Your servers go down.
There could be no more devastating a climax to this quintessential startup story than if the site that you’ve poured your heart and soul into scaling suddenly drops offline due to the load.
If your server can’t handle the growing number of visitors, you can’t expect to grow your site and thus your revenue. You need a way to anticipate your scaling needs and gauge whether your system is equipped to handle that traffic boost you’re striving for. You need to conduct load testing — and the experts over at Load Impact can help you do it.
Load Testing: Why You Can’t (or Shouldn’t) Scale Without It
Load testing is basically testing the server-side of your system to confirm it can handle the amount of traffic you’re anticipating. By increasing the load on the system until an upper limit is reached, you’re essentially evaluating the scalability potential of your application and infrastructure.
Traditionally, load testing has been known for being (a) expensive, due to the cost of the hardware to host the load testing software, plus the software licenses required, and (b) overwhelming, if you don’t know how to test or interpret the results. That’s where Load Impact steps in to save the day.
Load Impact CTO Robin Gustafsson gave us the rundown on how this company has alleviated both of those strains for the customer by instituting a Load-Testing-as-a-Service model.
Load Impact Pioneered a Load-Testing-as-a-Service Model So It’s Easy
Load Impact became very good at the load testing game very early on in the concept’s lifetime. In 2008, five founding members started working on the project having served in a consultancy capacity doing various monitoring and performance testing projects in the past. To paint a picture of their level of expertise in the performance testing space: These folks developed simulation software for the European Space Agency and did testing for NASDAQ.
Robin was one of the initial devs behind v1 of Load Impact, which they launched in 2009 and have been iterating on ever since. “What differentiated us from what existed when we first developed Load Impact is that we took away the burden on the customer to manage the testing infrastructure,” Robin said. “Load testing wasn’t offered as a SaaS online; it was delivered as a traditional piece of software that you installed on your own infrastructure. You had to manage it and you had to understand how it worked, so there was a lot of work for the companies that needed to do load testing.”
The Load Impact team knew they had gotten very good at conducting these tests, and they knew they could streamline this vital process for site owners. “Doing it as a SaaS with a good price point made a big difference when we launched initially,” Robin said.
They Manage The Confusing Stuff In the Cloud & You Start Running User Scenarios
There are a lot of questions that go into executing your load test:
- How many servers do I need to generate the traffic?
- How do I store the data and test results?
- How do I interpret my testing results?
With Load Impact, there’s no need to worry about any of them, because the team handles all of that for you in the Cloud. “We try to focus on the ease of use to make a load testing service that’s very easy to get started with and that you don’t have to be an expert to use,” Robin said.
As an example, Load Impact offers two recorders: a Chrome extension (User Scenario Recorder) and a Proxy Recorder, so you can start playing with user scenarios in the browser right away. Once you’ve mastered running browser sessions, you can easily graduate to more advanced options, e.g., manual scripting, down the road.
For those who are new to the idea of load testing, Robin told us the team cautions customers to consider two other very important questions before you get started:
- What system are you testing?
- What are you trying to achieve?
“You need to plan and understand what you’re testing, because otherwise, you don’t know what you’re looking for as far as results,” Robin added.
They Rent Hundreds of AWS EC2s: Dynamically Allocated & On Demand For Testing
Once you know your goals and objectives, Load Impact’s as-a-Service model includes virtual machines on demand for testing. “All the servers that we use for running the tests are dynamically allocated, so the number that we have up and running at any given point in time depends on the demand for the service,” Robin said. Depending on the demand, they may have hundreds of Amazon’s EC2 servers spun up in any given location at any point in time.
As one would expect, Robin told us that managing hundreds of cloud servers going up and down as tons of users conduct tests simultaneously in various geographic locations has been a significant challenge that the team had to learn to bear as they grew. Today, they keep a server image stored in each of Amazon’s regions, so spinning them up on the fly is no problem. Robin told us the average time it takes to get a server up for testing is about 30 seconds — wowzers.
Since Amazon charges for EC2 usage by the hour, Load Impact strives to “reuse” servers as many times as possible. For example, a test typically runs for about 10 minutes. Each test gets the exclusive attention of the server it’s running on, but once the test finishes, there are 50 minutes of residual, paid-for EC2 time to be recycled, so to speak, and used on additional customers’ tests.
Understanding What Load Testing is Great For & What It Is NOT
Load testing is crucially important, because you don’t want to be at the point where the traffic is coming when you realize that your system can’t handle it. “The flip side of that is you want to make sure that your hosting can satisfy your performance needs,” Robin added. “Depending on what type of hosting it is, a lot of providers clearly can’t deliver on the performance side of things, so it’s important to validate your hosting choice.”
A Day in the Life of the CTO, Devs, & Team at Load Impact
As I said, Robin’s been with Load Impact since the beginning, and since the team is still considered quite small (scaled from 5 to 18), he finds himself doing “a little bit of everything,” including product management, dev, support, documentation, content marketing, and managing the hiring and onboarding of the technical folks.
We asked him to give us a snapshot of a day at work as a dev at Load Impact: “As a developer, you spend your day working on tasks planned for the sprint that we are in,” he explained. “We have month-long sprints that we plan, so you’re working on whatever problem or feature that we are currently assigned.” The dev team works in an “asynchronous process,” with team members scattered but collaborating throughout Sweden, Macedonia, Russia, and New York City.
The pipeline flows as follows: write your code, then commit and push it to GitHub; code changes pushed to GitHub are picked up by the continuous integration system that runs the test suites and delivers pass/fail feedback to the dev team via a channel in HipChat. From there, you’d create a pull request in GitHub and ask a fellow dev to help you out with a code review. “When your work has been code reviewed and merged into our main development branch, it gets automatically deployed to our staging system, where we do final testing before manually deploying the code to production,” Robin said.
To give us a snapshot of life as a member of the team at Load Impact, Robin gave us an idea of what’s kept him around the company long-term. “I’ve worked here for a very long time,” he said. “I continue to work here because of my teammates; for me, the people that work here are the main reason why I like this place.” The company has cultivated that comradery by encouraging after-hours fun; Robin told us the team gets together at least once a month for dinner and some sort of activity — enjoying each other’s company outside the office.
The Load Impact office features load testing, tech folk, and crocodiles?! — OH MY. That’s right. Robin oh-so-casually informed us that Load Impact has hosted two beloved office pets: Bert and Ed, the caiman alligators (Alright, so the Wizard of Oz reference was a tad off). Bert and Ed now live elsewhere, but Bert still keeps watch over his Load Impact buddies. His gleaming, reptilian eye is the inspiration behind the company logo.
Final Words From Load Impact CTO Robin Gustafsson
If you’re even somewhat serious about scaling up your site and want to ensure that you’ll remain online as you do so, load testing is extremely important. The Load Impact team recognizes that as the Web continues to develop as a powerful medium for pushing your business, load testing is only going to become more necessary.
“Load testing has traditionally been looked at on a project-by-project basis. People think, ‘We have a big event coming up, so now we need to load test,’” Robin said. “While that’s partially true, we’re helping people realize that continuously testing your websites, apps, and APIs is the best practice. A major theme in software engineering is that you want feedback as early in the dev cycle as possible before pushing code into production, so we’ve been improving Load Impact with that in mind over the last few years. Like anything else, it’s so much easier to correct performance issues shortly after they occur. Continuous testing gives you the data you need to see how your web properties’ performance can change over time, and that’s how many of our users deliver a great experience to their customers. Now it’s just up to Load Impact to make load and performance testing a simple affair.”