If they'd used open-source software rather than the Microsoft stack, they could have scaled horizontally without having to worry about buying more software licenses.
Personally I'd rather manage a small number of large servers, compared to managing a large number of smaller ones.
The licensing costs associated with Stack Overflow also can't been that large. Sure Microsoft software isn't cheap, but it's also not that expensive. The licensing cost is easily offset by staying on a technology stack their employees know.
> The licensing costs associated with Stack Overflow also can't been that large
Because we went with the reliability of a full Microsoft stack—.NET, C#, and MSSQL—our costs grew with the number of instances. Each server required a new license
They literally mention license costs as an architecture driving constraint.
Sorry, I wasn't making that clear. It's not that it isn't a factor, they clearly think it is. The question is how big a factor is it really? My experience is that the licens is less of an issue, compared to the time and resources you'd otherwise need to redesign everything.
When Jeff Atwood and Joel Spolsky started Stack Overflow they had a podcast. In that podcast Joel repeatably argued that hardware wasn't that expensive, compared to Jeffs time. His argument was that buying a larger server and scaling that way was much more cost-effective. I think that's still true, to a point, even if you didn't have the licensing cost.
> [...] buying a larger server and scaling that way was much more cost-effective. I think that's still true, to a point, even if you didn't have the licensing cost.
I don't know if in the cloud world this still holds true, considering that (at least in AWS) if you vertical scale 2x you get usually a 2x price increase. Clearly I'm not factoring costs of making an app horizontally scalable or DB-shards aware (which I think was always the main selling point for SO vertical scaling: they usually referred to the DB, and they were against sharding)
> Because we went with the reliability of a full Microsoft stack
As opposed to what? What reliability are they worried about trading off?
Don't get me wrong - I love C# and .NET, and MSSQL is a fantastic RDBMS. And if your people already are familiar with this tech stack (which I think is the case here), it makes sense to play to strengths.
But let's not pretend that this stack is the more reliable option to any other alternative...
That was just a few years after Postgres became competitive.
Postgres was already a better choice than Oracle or SQL Server on almost every way (the clustering setup UX sucked). But very few people were aware of that, and they would have to learn a completely new stack to use it.
I don't know if SO is using everything that comes with MSSQL, but it's a lot more than just a RDBMS. SSIS for example is a full workflow/job execution environment fully integrated with MSSQL. When I did a similar analysis to move off of MSSQL in the past, there is a lot more to it than just swapping out databases.
SSIS, MSAS and SSRS are minimally functional products that exist from stopping MS customers from looking elsewhere. If they are adding value to you (instead of just being demanded from the high up and never used), it's better to look at the alternatives, some times even if you are already paying for them (that one is a difficult decision, as the others are kinda expensive).
Anyway, the Microsoft implementation of data workflows is so stupid that you are better of with manual dblinks or creating the entire thing in a general purpose language. Their largest competitors share a lot of the same problems, so I'd say that workflow software is just an excuse to hire low-paid professionals and a real drag on any working development team.
I worked at the MySpace parent company during the whole growth explosion. Microsoft would send us custom MSSQL patches to fix issues the team was running into. Sure, someone could have patched an open source database but not everyone wants or needs to staff engineers of every category.
> The licensing cost is easily offset by staying on a technology stack their employees know.
Stack Overflow wasn't developed by an established software company. It was a completely new startup, founded by two high-profile (at the time) software commentators.
They could have hired people to use any stack they wanted. While the state of web development wasn't what it is today, OSS stacks such as the LAMP stack were fairly well-understood and popular.
Stack Overflow existed for a couple of years before taking any funding and it was developed by three people who were friends (Jeff Atwood, Jarrod Dixon and Geoff Dalgas) none of which were even getting paid regularly at the start and who were all primarily familiar with the .NET stack from previous jobs.
It makes total sense why the tech is what it is. One could argue they could have shifted away from that stack since then, but one could also easily argue (very convincingly to anyone who has ever been involved with any significant project rewrite) "but... why?".
That's a reasonable point, but still is the cost of the licens higher than the cost of one or two additional developers? Jeff Atwood was/is if I recall a pretty talented C# developer, so why onboard extra people. It's more than just their salary, there's a cost beyond that associated with hiring people.
I'm not arguing that the licens isn't a concern, I just question how much of a concern it really is, compared to everything else.
The MS stack is affordable to developers working on developing countries and free for small products (with a lot of strings attached).
Of course, the OSS stack costs nothing to acquire, is cheaper to admin, and will give you more functionality and easiness of use, but the MS one isn't some unaffordable monster like other proprietary ones.
Depends on where you live. Certainly not peanuts here.
Edit:
I know that if you spent your whole life in California it can be hard to believe that in some places junior developers make $250 a month (senior more than that, but typically less than $1k a month), so a single Windows Server license buys you four months of work of a single junior dev (however unproductive it may be), or 1-1.5 months of a senior dev's work.
In my current place of work a few years back I started a strong push towards Linux and as much FOSS as possible, and over some time (as new projects were written and some legacy stuff re-written) it resulted in a massive reduction of total operation costs.
I didn't expect any other reaction, though. You understand our realities better than us.
They also commented that the licenses paid for themselves in reduced hw spend, as AOT compiled code plus very performant SQL Server allowed them to run in fraction of the size comparable sites operated.