8.4. Capacity Planning

During the development of most web applications, not enough thought is given to the capacity for the given application. Units such as bandwidth, database size, memory, disk usage, and server load all play a big role when it comes to capacity planning.

Essentially capacity planning is having the necessary metrics to enable teams to effectively increase the scalability of web applications.

8.4.1. Predicting Failure

Knowing when and where your web application will fail is a very important metric when it comes to capacity planning. Stress tests are similar to load tests as in they use the same tools, but whereas the goal of load testing is to ensure the application meets the performance requirements, the goal of stress testing is to find out under what type of load the web application will start to fail to meet the performance requirements. After you have this metric you can then start capacity planning.

8.4.2. Capacity Planning Goals

During the collection of performance requirements, developers/testers will collect the expected metrics on how the system should perform. This process will also collect capacity goals such as how many users should be expected during the first year the application is launched.

8.4.2.1. Example Goals

Here are some example goals for you to consider:

  • Adding a new web server will increase the amount of users by X.

  • Adding X amount of bandwidth will decrease response times by Y.

  • Moving the SQL Server off the web server will decrease processor time by X allowing for Y more number of users.

  • Adding faster hard drives will decrease disk read/write times by X.

8.4.3. Bandwidth

During capacity planning it's useful to have metrics of current bandwidth usage over a period of time. There are many network monitoring tools that will enable you to capture this type of data. Green field applications will not be able to collect this data; seeing that it's a new system you don't really know what to expect. Brown field applications will benefit from having this metric. This metric can help determine if it's logical to place hardware in different countries where large user pools are heavily using the system.

In recent years the price of bandwidth has dropped drastically; similar to hardware performance issues, many teams decide to upgrade the bandwidth to resolve performance issues related to bandwidth. In some situations this is a viable solution, until the web application outgrows the new bandwidth limitation. This paradigm is also seen in hardware performance issues, and it's only a "band-aid" to these types of performance issues.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.225.95.245