June 26th, 2009

So, the unexpected passing of Michael Jackson has been causing quite a stir. An unintended consequence of this unfortunate story is that the people hit the Internet to confirm the rumors. They hit it hard, causing downtime at numerous web sites. (Arguably, an even less expected side effect of his passing is that when MJ brought down twitter, Iranians were unable to tweet about their ongoing revolt. Oh, Internet, how fragile you are…)
Is MJ’s departure a unique, record setting event? I doubt it. It’s part of a trend, and I think it’s going to become the norm. We all know that Internet usage hasn’t plateaued yet. In fact, once it does, that will be pretty big news. In the meantime, it continues to grow thanks to increasing connectivity, abundance of netbooks and mobile devices, innovation on the web itself and, of course, a growing awareness of the web’s ever-increasing utility.
Think of the DESIGN GOAL for IPv6: let’s make everything uniquely addressable. EVERYTHING. What were those mad men thinking? What could we possibly want to address? They were preparing for a technology-drenched future. Let’s pave the way for innovation, let’s address devices that don’t even exist yet. That will lead to an incredible increase in connectivity and overall network utility! More, cheaper devices, with new, unforeseen functionality! Everyone benefits.
But that’s just concept. In the meantime, mashup-based cross-pollination of web content is rapidly growing, and the trend is all up from here. That’s not just “people on the web” anymore, that’s people USING the web. This affects everyone. Can the pipes handle it? What’s the horse power behind your web app? If you don’t know, find out, because today’s traffic nightmare is going to be tomorrow’s drop in the bucket.
Tweet This Post
Posted in Company | Comments Off
June 23rd, 2009

Within the previous five years, the size of the average web page has more than tripled, and the number of external objects has nearly doubled. The average page size is currently a little over 300k, according to WebsiteOptimization.com.
There are a number of optimizations that help with larger page sizes.
To take one, example, server-side compression mechanisms provide a good option to negate some of the problems that accompany larger page size, like higher bandwidth costs, and slower page load times.
If your web server is running Apache, mod_deflate can help. If you’re using IIS, there is a good article about compression settings in IIS here.
As with most optimizations, there is a trade-off. In the case of compression, the trade-off comes in higher CPU utilization. A nice overview of compression can be found here. Even though compression raises CPU usage, optimization is a game of trading what you have to spare to get more of what you need, so if you can spare some CPU cycles, compression is a very smart trade.
Tweet This Post
Posted in Tech | Comments Off
June 23rd, 2009

I recently stumbled across a blog post with this tidbit from a previous Web 2.0 conference. Google ran a user test to experiment with returning more than the usual ten results at a time in their search engine.
Google found that the half second needed to return the additional results killed user satisfaction, and caused a 20% drop in traffic. In spite of working in the load testing industry where page load time is king, seeing the real consequences of slow page load times drives home the point of “why page load times are important” in a very tangible way.
See Greg Linden’s blog post on this topic.
Tweet This Post
Tags: lost revenue, page load time
Posted in Tech | Comments Off
June 13th, 2009
Google recently announced a new open source Firefox plugin named Page Speed. Page Speed is an addition to the already amazingly handy Firebug plugin. It provides an additional tab within Firebug that displays information on how to speed up your web page load time.

Google Page Speed Plugin Screenshot
Implementing the optimizations suggested by the Page Speed plugin can help lower your base-line response time. Check it out if you haven’t already!
Tweet This Post
Posted in Tech | Comments Off
June 12th, 2009
If you’re load testing an app with Ajax that uses polling, or comet, using an http level test (no browser), don’t assume you can safely re-use your script in subsequent load tests. If a developer changes the polling interval, your script will no longer be accurate and the load it generates may be substantially less or more intense than real world traffic. A change like this is easy to miss. Also, if you don’t have content-checks on your Ajax actions, other changes may invalidate your script without you ever realizing it.
Tweet This Post
Posted in Tech | Comments Off
May 15th, 2009
According to Wired magazine, Wolfram Alpha delayed their load testing until only hours before their public debut, and hit a small snag–the system did not scale as expected. On their blog, the team had suggested that they were going to open for a soft launch at 7pm tonight, but it sounds as if that, and perhaps the Monday release, are now in question.
Tweet This Post
Posted in Uncategorized | Comments Off
April 22nd, 2009

I previously worked at a company, let’s call it “Edutech” to protect the innocent, that had developed a variety of customer-facing web applications to open their financial information to colleges around the country. The data-center manager, a friend of mine, once told me that they had spent over a million dollars on hardware (machines, SAN, etc) scaling one of our web apps. This application only had to support around 250 concurrent users. I was shocked. Edutech went years without load testing this particular application, even though it was under constant development.
The compounded effect of years of quick and dirty development decisions meant scaling the application in its current form wasn’t possible without the costliest cutting-edge hardware. Previous development decisions had locked the app into approaches that worked effectively only at small scale. Fortunately for Edutech, the function the app provided was so valuable that throwing money and hardware at it was a viable strategy. Load testing was being introduced, as a practice, for the first time at this company that year, because the costs of scaling the application had finally pushed the needle to a point where upper management took note.
Testing is a crucial step in the software development cycle, yet it’s often given short shrift.
Technical debt, a concept proposed by Ward Cunningham, suggests that, like financial debt, a price must be paid later when quick and dirty decisions are made in the development process.
The danger occurs when the debt is not repaid. Every minute spent on not-quite-right code counts as interest on that debt. Entire engineering organizations can be brought to a stand-still under the debt load of an unconsolidated implementation, object oriented or otherwise.
When load testing is a part of your release process, you escape the compounding interest of technical debt. The moral is: test early, and test often.
Tweet This Post
Posted in Company | Comments Off
March 2nd, 2009
Web technologies have progressed a great deal since the 90s. As we near the end of a new decade, we can look back on the development of useful, complex interactive web applications built atop any number of powerful technology stacks. However, as the complexity of applications increases to ever greater heights, many remain too brittle for their own good.
Eric and I have been thinking about the emerging challenges of web application development for quite some time. We believe that technology is outpacing our ability to properly use it. When we noticed the problem, we founded Testomatix.
Our goal is to help people alleviate the pain of testing the scalability of modern web applications. For many such applications, scalability can be a major source of problems for as long as they remain in active development. It doesn’t help matters that scalability issues don’t get the attention they deserve until actual damage is done.
In many cases, scalability issues come up not due to poor architecture, but from unanticipated bottlenecks. Introducing redundancies, caching data, and optimizing the queries will often make quite a difference, but the crucial bottleneck that will hold your site back can remain unapparent until after-the-fact. Load testing helps you know beforehand.
In a complicated application, tackling every aspect of design on paper is not always comforting–one can never discount human error. Using live traffic is similarly unreliable, since it won’t be predictable and it certainly won’t be forgiving once a problem occurs. In practice, the best approach is often to implement the most promising design candidate and see how it fares under heavy stress.
At Testomatix, we feel that load testing is important and frequently overlooked. Too often, it’s a time consuming process requiring expensive hardware, costly licensing, difficult scripting and other headaches. We started Testomatix to fix that problem. Scaling your application shouldn’t be so difficult. With easy and intuitive load testing, it won’t be.
Email us your thoughts, questions, and suggestions!
Tweet This Post
Posted in Company, News | Comments Off