- mandatory downtime for updates: every couple months your Windows server has a bunch of security updates that require a reboot. It's no problem for a development server, but just measure the wait SQL Server takes to start on a high-load environment. Compare that to Linux where the only reason to reboot is a kernel update and even that will be soon be history.
- The added cost per server. As someone pointed out, if you have to scale to 10 or 100 servers (just imagine one of your apps got successful) you will soon have to deal with their account managers. And they will know exactly how bad your position is. And you are pretty much stuck with x86 hardware too. You just can't employ a a Sun Niagara server for front-end business (instead of 5 x86s) because it doesn't run Windows.
- You are stuck with their licensing/core/memory limitations. You can't just pop a couple more gigabytes of RAM or a couple more processors in your servers without paying because neither Windows nor SQL Server will use them without - gasp - a reinstall.
Windows is cheap. It's not always inexpensive.
Got a link for that?
Let's suppose you just added a couple extra Opterons to your server at the same time you decided to max out the memory available in the box. You went from single-socket quad-core to four-socket 16-core and from 32 GB to 128 GB (it's your database server, after all). What are you supposed to do? You will have to upgrade in-place. Unless I am very wrong (I never faced this situation - I am a Unix guy)
also, what are you charging your customers if 20 minutes or your time is worth $100, that's impressive. I wish I worked for a microsoft platform company so that customers would be willing to pay that much for a simple service.
Only if you don't plan to grow beyond 50 CALs. Then it skyrockets.
That $2k/box starts adding up real quick.
That being said, one box on the MS stack can handle a lot of capacity. Enough that I'm constantly amazed to see other people's startups folding under the load of, say, a single slashdot article or a few thousand people kicking the tires at once.
The box that Twiddla lives on has seen some pretty heavy days, and it's never had its CPU over 5% in anger. Considering the number of paying users we'll need before we need to add a second one, well, I'd be delighted to pay another $2k out of that stack of money!
Anyway, I'm glad your technology choices are working out for you. However, you must understand that a $2k per box markup would be a stroke of death for many lower-margin startups.
Tools: $399 total. For Everything MS makes, for every developer in the shop, once every 2 years. That's what it costs for an MSDN license through the EmpowerISV program.
Servers: ~$2000 per production box. That's Small Business Server, which comes with production licenses for SQL Server, Exchange Server, and pretty much all the backend stuff you could want.
And that's it.
Assuming we buy a new server every 2 years, that means we pay about $100/month for the privilege of developing on the MS stack. Put another way, that means that the MS stack need only gain us 20 minutes worth of productivity every month to pay for itself.
Like I said up top, we build on the MS stack whenever we have a choice in the matter. It's just a no-brainer.