Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

This question already has an answer here:

I am working on a smartphone application that will require a backend web service - but I have absolutely clueless to how much it will cost.

Web Service will handle:
- login of users
- cataloging of our user base
- holding minimal profile information for users (the only binary data is a display picture which will be < 20k each)
- performing some very minor calculation/algorithm before return results
- All the above will be communicated to server from a smartphone (iPhone/BlackBerry/Android)

Bandwidth Requirements:
- We want to handle up to 10k users throughout the day.
- I predict 10k * 50 HTTP requests a day = 500,000 requests a day * 30 = 15 million requests a month

Space Requirements: - Data will be in SQL database.
- I predict 1MB/user * 10k = 10GB + overhead. In other words - space is not a big issue.

Software Requirements: (unless someone knows an alternative)
- Windows Server 2008 + IIS
- MSFT SQL Server

Note: This is 100% new to me, so please hit me with all you got. Do I need Windows Server or are there alternative? Is it better to get multiple cheap servers to distribute load? Will Amazon S3 work for me? How about Windows Azure?

EDIT note: At this point in time - I'm am more concerned with COST and how that cost will scale. So if you provide a service recommendation, could you help ballpark to how much these requirements would cost?

Thank you!!

share|improve this question

marked as duplicate by Iain, Bryan, pauska, Jenny D, Scott Pack Jul 24 '13 at 13:18

This question was marked as an exact duplicate of an existing question.

that's a really open ended question. ;-)

It depends on a lot of things. Here is my take on how to approach problems like this:

1) Architecture - A lot of the scaling problems that you will run into are going to be defined by how you design the application now. Knowing the strengths and weaknesses of the language that you are writing in, the framework that you are using and the underlying OS/Servers that you are hosting on is essential.

2) How long does an average request take to complete with no load? What's your SLA on how long the requests should take?

3) How does the application handle load? At what point (request per second per server) do you see degradation?

4) Have you segmented your application into layers which can scale separately from each other? (ie, do you have a DB layer, a App Server layer and a storage layer?)

5) What's your budget?

Based on what you have posted, you are looking at about 6 requests per second. I'd start with a single app box, a single DB box and a single storage box if you need storage. Throw load at it, see what breaks. Slowly increase the # of users, and you'll see parts of the code that you'll want to optimize, or you can add more boxes where ever the app is experiencing problems.

Since this is your first foray, I'd almost suggest going with a fully managed hosting service - they'll be able to help out with the backend scaling.

Good luck!

share|improve this answer
Great, thank you for the insight! Right now, my concern is more towards a ballpark figure for how much it will cost, so I can plan out my expenses for this type of project. Could you link me to an example of a managed service to start with? – FrankieA Mar 18 '11 at 3:15
You should be able to get into a managed VPS for 300 - 600 a month. Starting out with the DB and app on the same server works just fine, as long as you are prepared to move when the need presents itself. My experience is on the Linux side of the house when it comes to Hosting, so I really do not have any leads. If you were looking for managed linux/ruby hosting, I'd check out Engine Yard, Heroku or BlueBox. – tsykoduk Mar 18 '11 at 5:29

Azure would handle this. See Windows Azure for details and free trial. I don't have an Iphone version but here is an article about how to build an app like this for windows phone 7

share|improve this answer

You could try a virtual server with Amazon (or any other cloud provider). You can start with small instance and then scale up as needed. The cost is based on instance size and bandwidth, so it is relatively easy to estimate. Windows license cost is included. I'm not sure about MSSQL, but there may be pre-built virtual appliances with it too in that case you will not need to purchase full license and will just pay per use. Hope this helps.

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.