Hacker News new | ask | show | jobs
by codeulike 1744 days ago
Here's the stats on Stackoverflow

https://stackexchange.com/performance

1.3 billion page views per month, 9 web servers, 4 sql servers

Stackoverflow is notable because they went down the C#/MVC/SQL Server route from the start, which meant much better performance per server. Thats why they make an interesting counterexample to the usual way...

2 comments

You left off 10 servers: 2 Redis servers, 3 tag engine servers, 3 Elasticsearch servers, and 2 HAProxy servers. So, that's 23 servers in total, which is not a trivial amount, but also not a huge number, either.
What is really interesting to me is that they just have a very small number of each kind. It's not like they have 50 redis servers, it's just 2. 2 looks more like a smaller project ar first, but it's great proof that a lot can be achieved by doing engineering.
They are probably able to do it with little because they understand what they are doing.

There are too many developers and teams that don't understand the underlying principles and limitations of the technology they use. In a good case those developers get schooled by experienced engineers, but frequently they end up in an important position in some big enterprise software company and makes life miserable for many people.

I agree. This also ties back to the whole "a junior developer could clone Stack Overflow," or "I could do that in a weekend" mentality.

Sure, maybe a junior dev can make a simple forum, or you could make a web app that duplicates the functionality of SO at low loads in a weekend. But, when you're serving an average of 500 requests per second, you need to know what you're doing. And, IMO, this "knowing what you're doing" is the difference between knowing how to engineer a system and how to write an application.

> Stackoverflow is notable because they went down the C#/MVC/SQL Server route from the start, which meant much better performance per server

And also notable because everything is under an expensive license, so big performant servers is the cheaper option.

Edit: everything = Windows servers for their .NET app ( apparently in the process of migrating to .NET Core) and SQL Server

License costs are usually per-core, not per-server. It's the same whether you have a single large server or multiple small ones.
It used to be per-socket for Windows Server before 2016, and StackOverflow's infrastructure and architecture predate that.
what do you mean by saying "everything"? just SQL Server?
Technically Windows licences, too, but maybe they migrated to Linux with their switch to .NET (Core).
Indeed, afaik they have been migrating long time ago

2018:

>This is the query pattern that caused StackOverflow.com to go offline yesterday:

https://github.com/dotnet/efcore/issues/13524

but on the other hand their tech stack site says: C# + ASP.NET MVC

instead of ASP.NET Core, but I don't think it is proof of anything.

They are definitely using ASP.NET Core, most likely version 3.1 LTS.

EF Core (like ASP.NET Core) ran on .NET Framework until version 2.1. Everything after that requires .NET (Core).

Updated my comment for clarity - yes, SQL Server and Windows for their .NET app. Maybe they've moved to Linux if they have finished their migration to .NET Core, but even if they did, it's a fairly recent thing.
> Maybe they've moved to Linux if they have finished their migration to .NET Core,

As far as I know they have been using .NET Core (or just EF Core? would be weird to go EF Core + .NET Framework, I guess?) on prod in 2018:

>This is the query pattern that caused StackOverflow.com to go offline yesterday:

https://github.com/dotnet/efcore/issues/13524

So maybe they used some things on Linux and some things on Windows - those that couldnt be ported to .NET Core back in the days

They're using .NET Core, and I think even .NET 5 in the meantime though I couldn't find a clear confirmation for that. But they're still on Windows, looking at Linux and containers for potentially in the future.
License costs are peanuts in traditional enterprise bugdgets, when mapped across the overall costs of developer salaries, contracting, designer agencies, travel expenses,....
Is StackOverflow a traditional enterprise for you? I don't think they have huge travel expenses...
Yes, it's a typical large software/SaaS company.

It's not about the travel specifically, it's that servers and licenses are the cheapest cost of any company when compared to salaries, especially for engineering and sales.