When designing a business plan for an on demand application, you must account for the costs of the hosting infrastructure where your application’s data will be stored, served and transferred. Imagine thousands of users utilizing the storage requirements of your database, taxing your servers and filling your bandwidth with messages, photos, payments and other application functions. How much storage do need, how much data will be transferred and what server hardware capacities are required? Most importantly, what will it cost for this infrastructure per user?
In this post, we plan to describe the means of calculating your cost to host an on demand application.
The basis for calculating your server cost per user
Hosting infrastructure costs are comprised of storage space, communication channel bandwidth and your servers at the requisite hardware capacities. Thus, your application’s hosting cost can be calculated based on the following factors over time:
- The cost of each storage gigabyte;
- The cost of each megabit of bandwidth; and
- The cost of the server’s performance.
Also, the cost of server hosting can be affected by the equipment maintenance expenses, technical support charges, and other factors depending on whether you decide to host using your own equipment or utilize cloud-based IaaS hosting services such as Microsoft Azure, Amazon Web Services or Google Cloud Computing.
How to calculate the cost
First, you must approximate the number of users. Once you have an idea of their number and your maximum storage limits and expected data transfers for each of them, a rough estimation of your storage and bandwidth costs is simple – i.e. if your storage costs are $0.1 per GB/month and you have 10000 users, with a limit of 2 GB each, the result of multiplying all the numbers (10000 × 2 × 0.1) discloses that your monthly storage costs would be $2000. Bandwidth costs can be calculated using the same formula.
When you app goes live, you will be able to use to your app analytics and hosting data to determine your total users and their ensuing monthly storage and bandwidth usage.
Determine Server Requirements Through Testing
The above method is based on assuming user numbers and the necessary space and bandwidth for each user, but do not calculate the required processor power and server load your users will impose. The best server load estimates are garnered by testing your on demand application’s efficiency using software which creates “virtual users” that simulate the actions of real users, measuring the loads to identify application server hosting requirements.
Testing software mirrors users loads under the following typical scenarios:
- Light server load activities such as authorizations, logins and sending/receiving requests);
- Medium server load activities such as sending/receiving messages, and uploading and viewing media of other users; and
- Heavy server load activities which utilize all the application’s features.
Server load testing functions by gradually adding virtual users under the various scenarios with a test server configuration set up until a portion of the application begins to work incorrectly. When you reach failure, the test stops and you change server configuration and determine the new limits of the new configuration. This process continues until you reach a point where your application can meet your projected server-load demands for a projected number of users under each of the scenarios.
In summary, server-load testing determines the optimal configuration of your server infrastructure, which can support the required number of users simultaneously under whichever scenarios you have tested. It also calculates your required server hardware capabilities so you can project your related costs.
Only after calculating the necessary storage, bandwidth and server infrastructure will you be able to determine exactly which configuration will best meet the needs of your application so you can ensure your app remains functional under all foreseeable scenarios while simultaneously allowing you to estimate your related total and average costs per user.