How to avoid your service collapsing under pressure
History is littered with countless government projects that collapsed under load or worked so slowly it frustrated users.
In commercial web segment, it’s also important that your systems and applications are highly efficient and can deal with expected (and unexpected) levels of traffic to avoid money and/or clients lose due to unavailable service.
This means you need to do:
- capacity planning work at the beginning;
- specific load and performance testing.
Capacity planning is the process of determining what amount of infrastructure and software is required to run a live system.
You also need to look at how this changes over time:
- will traffic or database load increase every month as the site grows;
- are some days or months particularly spikey (self-assessment deadline or bank holidays)
This planning will help with both estimating your ongoing costs as well as setting up realistic load and performance tests.
Types of testing
To make sure your system is efficient and able to deal with high levels or traffic, carry out:
- performance testing;
- load testing
Although related and tested in similar ways, load testing and performance testing are done for different reasons.
It’s useful for you to understand the subtle differences. Make sure you consider both types when testing and analysing results.
This is when a site or application is given the most it can handle, while still being able to function properly.
Test sites and applications under realistic load (traffic) to make sure that sites and applications work for the people using them.
Load testing should involve testing load in excess of your expected traffic levels. You must be ready for certain types web-site attacks, such as Denial of Service (DOS) attack including a Distributed Denial of Service (DDOS) attack.
This is about testing stability and responsiveness.
Even if a site or application is able to scale out successfully it doesn’t mean it’s fast. Site performance is dependent on many factors like:
- the software running the site;
- the networks, proxies and caches involved in serving traffic over the internet.