Capacity planning isn't easy, but it's not rocket science either,
says Danny Bradbury. And that makes the recent failure of some
large, well-funded Web sites particularly puzzling
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
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
- Design your software to be modular
- Load test your Web server before putting it online
- Consider co-location with your ISP
- Monitor your Web site constantly to predict potential
problems
- Locate Web servers regionally