Web application scalability tops the list of challenges for those designing and developing e-commerce sites. Here are five steps to managing the performance of e-business applications: architecture validation, performance benchmarking, performance regression testing, performance tuning and acceptance, and continuous performance monitoring.
E-business is a gold mine that companies around the globe are rapidly moving to cash in on. Yet there is no shortage of news stories highlighting the vulnerability of high-profile Web sites, reminding us that turning e-business strategies into reality presents some very real hazards.
One of the biggest hazards, according to a recent Newport Group study I directed, was Web application scalability-topping the list of challenges for those designing and developing Web applications. (For the purposes of the study, scalability was defined as a Web application's ability to sustain its required number of simultaneous users and/or transactions, while maintaining adequate response times to its end users.)
FIGURE 1: On average, Web applications scale to handle 72% of the traffic volume planned COPYRIGHT 1999, NEWPORT GROUP, INC
If you're like many working to make e-business a reality, you are working to gain experience with new technologies, while simultaneously bringing your company's products and services to market via an e-business channel. It's difficult to find the right balance: You want to allow enough time to deploy an application that satisfies all of your business objectives, but you also need to manage the expectations of what will be realistically delivered in the time allotted. And because of the business urgency to create a significant Web presence, your team is afforded very little wiggle room if development doesn't go as planned.
Scalability has clearly become a stumbling block for many Web projects, as our study participants can attest. But it's also worth noting that the first solution built with new skills and new technologies will always have room for improvement. If you really expect total perfection for the launch of your Web application, you will never get the site open…or at least you will have missed the best window in which to inaugurate it.
The goal, instead, is to avoid launching a site that will cause embarrassment, or that could weaken customer confidence and business reputation.
Build in Phases, Keep Mindful of Performance
The most realistic strategy for rolling out a Web application is to do so in phases. This strategy will allow new and increasingly complex features to be added over time.
Poor planning, poor application design, and a reliance on ad hoc performance testing can ambush even the best development efforts because they typically manifest into chronic performance problems-an application that is difficult to use and may fail to meet customer demand. E-business environments are less forgiving of application errors because they are extended to unpredictable, external audiences with diverse needs. So in the quest to improve quality and deliver reliable e-business applications, performance testing is now more important than ever. Considering application performance-throughout each phase of development and into production-is a key ingredient in protecting the success of your e-business venture.
Performance testing is not a one-time effort to be addressed just prior to deployment. Opting to test in this fashion would leave you vulnerable to risk in the event that fundamental design flaws (which tend to be more complicated and costly to fix during the late stages of development) were uncovered.
Performance testing must instead be an integral part of designing, building, and maintaining Web applications. Validating the system architecture in the early stages of development is just as important as continuously monitoring its performance in the production environment. Considering scalability in the design
phase lets you validate that the planned architecture will handle expected traffic volumes.
Automated testing tools play a critical role in measuring, predicting, and controlling application performance. In fact, our study showed a strong correlation between the use of performance testing tools and the likelihood that