Web applications
Building Web applications has now become a fairly common
scenario for developers building new applications or updating and Web enabling
existing applications. As applications move to the Web into a server based
environment it becomes increasingly important to be able to gauge the
performance and load capability of an application. Developers must be able to
answer hard questions about how much traffic a given site will be able to
handle and make intelligent choices of hardware, software and often times even
design approach of the application to make sure the application will be able to
handle an onslaught of customers on the Web site. We should all be so lucky to
have to worry about the problem of being too successful!
But it's often surprising to find how many Web sites hit
their limits and catch the operators off guard. An overloaded Web site is a
major problem and once happening the problem often can't be addressed rapidly.
A quick fix typically involves adding additional hardware that must be
purchased, installed and configured – a process that may take days or even
weeks. Being prepared and understanding the limits of an application and
managing advertising to bring traffic to a site in measured spurts is crucial
to the success of large and even not so large commercial sites.
Additionally, it's important to understand that today's
tools often make it much easier to build Web applications than the tools from
even a year ago. Today we have powerful scripting engines, easy access to COM
components we can write in high level languages and Web servers that
self-configure for the most part. But along with the ease of use also comes
more overhead and resource load on the server and it becomes even more
important to look at load issues right from the start of application
development. Load testing should be performed in the initial design phases to
get a good idea what overhead the application components incur on the server.
Constant monitoring should be performed as development continues on always
keeping a close eye on how well the software platform in relation to the
hardware it will be running on.
The problem is that often times these scalability questions
such as 'How much traffic can we handle on our particular hardware?' are not easily
answered because it’s hard to measure performance of Web applications outside
the actual environment that they will be running in. Even the process of
testing Web applications seems daunting: There are so many pieces involved from
a Web browser client, the Web server, the backend application and the backend
database server. The bottom line is that the only way to realistically test the
load capabilities of a Web application is in a close approximation of a live
environment, which means actually 'running' the Web application.
|