> are you going to stay on that version for the lifespan of the system? Likely not.
Not sure why you say that -- if it works, it works. I've just spent the last year working on a multi-million dollar project budget building a new system on a SQL Server 2005 cluster. Why? Because there was no need to budget for new hardware. (SQL Server 2008 R2 would have been a big step up, after that not really worthwhile upgrades, in our case.)
> For example, if my Azure costs are $10K a month, from that cost is likely $2K-$3K the Microsoft tax. Keep scaling your VMs and servers and that margin starts to look a bit less palatable.
Let's say my hosting costs are 10k p.m, 120k p.a. and represent 15% of revenue (this is just how my business works - if I need that much SQL power I'm doing a hell of a lot of business). 120/0.15 = 800k in revenue. Keeping things really simple, let's say my gross margin is 50% and corp tax is 20%. That leaves the business with a nice 320k profit. Sure I don't like spending 4.5% of my revenue on MS licensing, but at this point I can quit my job and port over to Postgresql (or more likely pay somebody else to). The point is that nobody wants to give away 4.5% but if it's the line between success and failure then you probably have bigger issues with your business model/environment.
Don't get me wrong - for my current side project I'd love to use Postgresql as the backend and .NET for the rest but the problem with Postgresql is two-fold and really specific to me:
1. I'd spend a lot of my time learning a new set of tools for zero benefit when time is my most expensive resource right now. I'm very familiar with T-SQL and the MSSQL platform (even simple things like having MERGE available has saved me lots of time given my problem domain, nevermind the ability to reuse a lot of code I've written and optimised over the past 10 years and knowledge of various issues and errors I will encounter). Porting in 3 years will be easier because we'll have a working system to port from, and the risk to the project will be less because we aren't doing two things at once (learn a new platform + solve a new problem -- only the later is going to make me money).
2. I plan on using some of the MS BI tools for the first time as part of this project -- this represents quite valuable experience to have as a .NET developer/solution designer; if I go the Postgresql route I will spend a lot of time exploring and evaluating open source options with zero benefit to my day job career progression over the next 3 years - I don't have the luxury of neglecting my day job while I work on side projects, so I need to be careful I don't lose value