How to calculate or estimate the cost of one user on Azure Application (SaaS)?

I believe that there is no magic formula to get the exact number and probably it will depend on a number of different aspects of the application and users.

But here is what:

I am creating software that will allow churches to manage their members, staff, and donations. Think of it as CRM (or something close to that). We must also remember that in some churches there are 200 members, of which 6,000. Some churches may receive several dozen donations per month, others thousands of donations per month.

This will be SaaS hosted on Azure. Each church will pay a monthly fee at the expense of, and this is where I am stuck. How to find out the cost so that I can decide for the final price?

I would like to know if someone there can share some data that will help me evaluate:

1) The minimum monthly cost of maintaining the operation of this application (albeit with one church).

2) The projected / estimated cost of each church so that we can calculate the final prices.

+4
source share
2 answers

This is a very open-ended question, and you can choose your architecture for optimization for different things (for example, cost, availability, speed). You will need to decide whether to create a single-user or multi-user application. The first, perhaps, is simpler and simpler in terms of each client, since there is actually one client (or church) per deployment; however, this can be costly to run, as during off-peak hours you are likely to have unoccupied roles in the network / employee. The multi-tenant app allows you to better use common calculations, but you will need ways to measure each tenant. Even when using the application with multiple tenants, you can still work with the database with one tenant, if necessary.

You might want to consider a tiered pricing model based on some unit of operation (or a certain number of users per church). To help with the measurement, you can:

  • Look at the storage analytics (this provides detailed logging of available blocks / tables / queues, including accurate access to resources, at what time).
  • Build your own performance counters and run them with Windows Azure Diagnostics.
  • Look at the consumption of SQL Azure SQL ( including dynamic controls )

For the base price: consider a few things:

  • For SLA and overall uptime reliability, you need at least 2 copies
  • Always go with the smallest instance size you can work with, and reduce the number of instances with increasing load.
  • Suppose you are optimizing the cost, so you run all the processing / scheduling / queuing scheduling / etc in your instances of the web role without any instances of the worker role.
  • For this exercise, suppose you have to calculate multiple tenants and a database with one tenant (Web Edition, average and 100 MB per tenant). This results in $ 5 for each tenant in the database.
  • Suppose, say, 5 churches. Assume 2 minimal Small copies and suppose that they break up to 4 copies within 12 hours during the day. This is an average execution speed of 3 copies, or $ 260 per month.
  • Assume some bandwidth costs, oh, $ 10 per month.
  • Suppose that some storage costs for queues, drops, diagnostics, for example, 25 US dollars per month.

With the assumptions above (fully composed to give you a straw to start):

  • DB: $ 5 x 5 tenants: $ 25 per month.
  • Calculate: $ 260 per month
  • Bandwidth: $ 10 per month
  • Storage: $ 25 per month
  • Total points: $ 300-400 per month.

Now: this is fully compiled, and I don’t know how much data or bandwidth your application will store / generate. But hopefully this gives you a general idea of ​​how to start predicting value. Please note that I did not consider storage transactions in the estimates. I think this is just background noise.

+2
source
  • Start one server (/ database / no matter what you measure).
  • Create a load until one server is enough.
  • Extrapolate.

Since I am responding with clear steps, there is still something to consider. How to determine your price:

  • Determine your costs.
  • Determine how much your customers will pay.
  • Charge something in between.

Please note that # 1 may be really inappropriate. Assume Cost

+1
source

All Articles