There aren't many things quite so annoying as trying to access a Web site, only to have it load slowly or not at all. Unfortunately, as the e-commerce bubble continues to expand, an increasing number of companies are falling foul of inadequate planning for their Web sites, leading to disastrous results.
Toys-R-Us, suffered a well-documented embarrassment because of the mismanagement of its online toy store in the run-up to Christmas. That was largely down to a lack of capacity planning. But it needn't be this way. Thinking carefully about various elements of the system, such as processing power, hard disc space, memory and bandwidth will help you to avoid looking like a mickey mouse operation.
Reactive capacity planning is about as useful as a waterproof sponge. The trick is in prevention, which will save you both money and reputation in the long run.
There are three key areas to consider when handling capacity planning - software design, hardware specification, and bandwidth.
One important thing that you can do is tomake your software as modular as possible. This will enable you to hand over various tasks to dedicated servers, making them easierto manage individually. Thus, if you expect incoming e-mail from your Web site to increase following a marketing promotion, a separate e-mail server can be given more processors and memory to increase its capacity. Conversely, if you expect the number of orders for products within a particular company division to increase, a separate server dealing with those orders will help you beef up capacity more easily.
The other big advantage of running software on different servers is that you can take down certain servers without affecting the rest of the system. So, if your outgoing e-mail server (used for Internet marketing purposes, for example) has to be taken offline for half a day of maintenance, you won't have to take the rest of the Web site down.
To do this effectively, component-based software development is often the best way forward. Components are a method of chopping up software so that its of it can run effectively on different machines, and the e-commerce software development community has already realised this. It has adopted component-based technologies such as Microsoft's COM+ and Sun Microsystems' Enterprise Java Beans as the basis for software development.
But this is only the start. You must also work out the hardware specifications you need to stop your site falling over if it gets lots of traffic. There are software-based load testing tools around to help you do this. A good one is Astra LoadRunner, from Israeli company Mercury Interactive. This tool simulates thousands of virtual visitors to your Web site, to give you an idea of how it would perform if the traffic were real. Check it out at merc-int.com. Another pre-deployment tool is Application Expert from Optimal Networks optimal.com. This enables you to test an e-commerce application and produce a report on its performance before it goes live.
Finally, bandwidth is a vital consideration. If you are serious about handling lots of end-user traffic, then you may consider an in-house server installation at your ISP's facilities house (known as co-location). This will give you the ability to increase the bandwidth between the Internet backbone and your server very quickly, and the maximum bandwidth affordable will be much higher than it would be if you were considering a remote link to a server located in your own offices.
At the end of the day, capacity planning is more about common sense than magic. No one can tell how many visitors they will get to their Web site, but it stands to reason that if you run magazine advertising, radio campaigns and online promotions with popular Web sites, you will get inundated with customers who will turn very angry if you certainly can't handle the workload.
It's just a shame that someone didn't tell that to the IT team at Toys-R-Us.
Baselining is a good way to provide a reference point for application and network performance. Using tools such as Topaz or Application Vantage , you can get a good idea of how your e-commerce service performs on a regular basis. This will enable you to assess the impact of any changes to your system, and it can also help you to predict future behaviour by monitoring past activity. If you are a seasonal business, for example, then looking at last year's application performance in relation to the online traffic patterns at the time will enable you to plan changes to the system to keep performance at an acceptable level.
Critical Success Factors