When designing a business plan for a heavy load application, it is very important to take into account and accurately calculate such costs as the pricing of the hosting service where the application data will be stored. Large-scale applications, such as social networks, can become a real problem for their owners if the associated costs are calculated wrong initially.
Just imagine: thousands of users every day supplement the application database with messages, photos, and other media files – how much storage space is needed, how much can it cost and how much does a hosting server cost per user for a social network app? Will your application become a “dead” project because of the high maintenance expenses? In this article, we plan to describe the order of calculating the cost of server hosting for large applications to avoid unpleasant financial surprises after the app release.
What is the basis for calculating the average server cost per user?
It is important to keep in mind that server hostings are characterized not only by the provisioned storage space but also by communication channel bandwidth and hardware capacities. Thus, the mobile app backend hosting cost can be calculated based on the following indicators:
– The cost of each storage gigabyte;
– The cost of each megabit of bandwidth;
– 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.
How to calculate the cost
How much does a social app cost to run? Depending on the pricing parameters, the cost of server hosting for a heavy application can be calculated in several ways.
Calculation according to the storage space cost
A very simple calculation scheme, for which it is required to approximate the number of application users and the maximum storage limits for each of them. The rough estimation is simple: if the cost of storing the object is $0.1 per GB of space per month and your application is calculated, say, for 5000 users, with a limit of 2 GB, the result of multiplying all the numbers (5000 × 2 × 0.1) the monthly cost of the server would be $1000.
It is important to understand that this calculation gives only an approximate cost of required hosting. The actual number of users may differ, and each user will not necessarily use all the space provided to them. Thus, you can make an assumption about the actual use of the server space (as a percentage of the initial number of users and disk space) and use this coefficient to adjust the appraisal.
Own / rented server
Buying or renting a whole server can significantly reduce the cost of hosting, but requires the seed capital. For example, for an application designed for the same 5000 users and 2 GB storage limit (10,000 GB or 10 TB), you need to purchase about 2 servers with 8x 2TB SATA disks (taking into account the cost of server space for user data, operating systems, application backend and RAID reservation), the cost of which is about $3000 each, plus additional equipment (racks, etc.), the totals would approximate to $6500. If you have such a starting amount, you can recoup the costs for 2 years at a server cost of $270-300 per month. Thus, the price of one GB of space for one user would equal to $0.06.
Making a long-term business plan with the calculation of hosting costs for the above scheme it is important to consider the expiration of the equipment. Any device has an approximate service life and needs regular replacement.
Another variant suitable for those who do not have sufficient starting capital is server equipment rental. Calculating the cost to maintain an application when renting server hardware can be carried out according to the same scheme, but taking into account the monthly rental fees.
Testing the application to determine the required hosting parameters
All the previous estimation methods are based only on the approximate assumptions of the user numbers and the necessary space for each user. Such calculations do not take into account the traffic, the required processor power, the average load on the server and many other factors. The calculation for these models is suitable for compiling a primary business plan for understanding the profitability of the application even before work on it is started.
However, in order to obtain more or less accurate data on the required server capacity and volume for an already developed application and, accordingly, calculate the cost of server hosting, a deeper approach is needed.
The best and accurate calculations are given by testing the required application efficiency using the specially developed software. Such test programs create “virtual users” that simulate the actions of real users of the application, measuring the loads to identify the optimal configuration of the application’s server part infrastructure.
The essence of the testing
To test the application architecture, worker threads mirroring virtual users are used, each of which can execute one of three action scenarios:
– Light (authorization, login to the server, viewing the application partitions, sending/receiving requests);
– Medium (to the light scenario’s actions, sending/receiving messages, uploading photos, viewing photos of other users, sending/receiving pictures are added);
– Heavy (extensive exploitation of all the application features).
Typical time between each script action is established to 1 second.
Thus, gradually increasing the number of threads, each of which randomly engages one of the scenarios, the testing application measures the load on the server part of the application in its different configurations. As soon as any element of the application starts to work incorrectly, the test stops and changes the infrastructure configuration.
Most of the established outsourcing software development companies have such a sophisticated in-house testing programs.
The result of the test is the optimal configuration of the application infrastructure, which can support the maximum number of users simultaneously using the application. It also calculates the maximum hardware capabilities required for the application, based on which you can calculate the server hosting cost for the application most accurately.
Also, based on the results of the test, you can choose the hosting model (renting server hosting, renting server equipment or colocation, own server), which will not only be most advantageous financially but also meet the requirements of the application in the case of high loads.
When developing large applications similar to social networks, an important part of the business plan will be to estimate server costs per user. For preliminary calculations at the design stage of the application, you can employ simple mathematical models (number of users/space for each – to calculate hosting and storage costs/necessary equipment expenses/monthly fees – when buying or renting equipment).
However, for accurate calculations of the cost of hosting and choosing the most beneficial server interaction model (purchase, lease, colocation) in mobile development for Android or iOS, professional testing is necessary that would take into account all the appropriate factors. Only after calculating the necessary application load on the server can you tell exactly which server parameters will best meet the needs of the application and, based on the received data, clearly estimate the cost of hosting – total and average server cost per user.