Live data from Hacker News

“You don't need this overengineered goo for your project.”

twitter.com

51–60 of 107 posts

Re: “You don't need this overengineered goo for your project.”

#51
post #10

I love these Twitter takes. They say something to get attention but if you look at it for more than a second it's.. it's just nothing data Comparing a troubleshooting guide to running a site on a couple of servers is a bit too different for me. Compare it to a troubleshooting guide for those two servers, let's see how they stack up. No using any "ask {specific person}" either Don't get me wrong, kubernetes is overkil…

It's taking one source - look at how these people solved it! - and trying to apply it to others. SO is relatively simple; it's basically customized forum software which is a solved problem that has been around for decades. A junior dev can build an alternative, and it can be built using tried and true solutions like MySQL + PHP, which are horizontally scalable with database sharding, read replicas, and maybe stuff li…

>A junior dev can build an alternative

Of course junior dev can do it, the same way junior dev can make Youtube

it'll work as long as there's less than 100 concurrent users on SO and less than 50 4K 20min videos on youtube

Re: “You don't need this overengineered goo for your project.”

#52
post #46

Earlier quoted context omitted.

Because they're constrained by Windows and Microsoft licensing, scaling out was never an easy option for them.

>Because they're constrained by Windows How? didn't they migrate to .NET Core?

Did they ? I must have missed it, but seems so :

https://www.infoq.com/news/2020/04/Stack-Overflow-New-Archit...

That doesn't mean they've moved away from Windows servers hosting it though.

Re: “You don't need this overengineered goo for your project.”

#53
post #49

Earlier quoted context omitted.

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.

Re: “You don't need this overengineered goo for your project.”

#54
post #43

Earlier quoted context omitted.

> 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

what do you mean by saying "everything"? just SQL Server?

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.

Re: “You don't need this overengineered goo for your project.”

#55
post #54

Earlier quoted context omitted.

what do you mean by saying "everything"? just SQL Server?

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

Re: “You don't need this overengineered goo for your project.”

#56

Earlier quoted context omitted.

And if they don't like your politics, they simply pull the plug.

You mean morally indefensible politics and misinformation propaganda? Oh no. Anyway. I mean these politics are pushed by rich Americans and foreign interests, surely they have the means to start their own hosting platform. It's the same that advocate in favor of businesses rejecting customers because of free market.

[deleted]

Re: “You don't need this overengineered goo for your project.”

#57
> “You don't need this overengineered goo for your project.”

k8s is probably a great excuse to think how to compose your infrastructure and software in a declarative way - I'm still fascinated by https://demo.kubevious.io/ - It just made "click" when playing with that demo - it's not goo it's a different operating system and a different mindset.

You can do 80% of that with docker-compose / swarm for small projects but:

If you read HN you are in a huge bubble - gruelsome patched tomcat7 apps on Java8 with 20 properties/ini/xml config files are still popular - hosting things in docker or doing ci/cd is still not mainstream. At least in Europe in the public sector stuff where I was involved.

Sure you can mock it - but the declarative approach is powerful - if you can pull it off to have it across all your infrastructure and code with ci/cd and tests you are fast.

This alone correctly implemented https://github.com/adobe/rules_gitops solves so many problems I can't count the useless meetings we had over any of these bullet points, bazel alone would have solved most major pain points in that project. Just by beeing explizit and declarative.

Don't believe the hype but it's a powerful weapon.

Re: “You don't need this overengineered goo for your project.”

#58
post #26

Earlier quoted context omitted.

I think number of features have little to do with the situation. Nowadays, everybody insists on putting stuff on K8s regardless of how large or small it is. An application is an application for the purpose of running it on a server. It doesn't really matter how much functionality it has. It is microservices "revolution" (quotes intentionally) that caused larger applications to be split a lot of small ones and complic…

"Nowadays, everybody insists on putting stuff on K8s regardless of how large or small it is." But if you already have the tooling, experience and support for k8s, why wouldn't you use it? I can fire up a k8s cluster on any major cloud provider in minutes (or bare metal in slightly longer), and deploy almost any web app using a standard interface that has extremely wide adoption. K8s supports a ton of things, but you…

> It can be complicated, but usually it's not.

The usual story. Everything works, until it doesn't.

If you are a huge corp with good engineering you can have people dedicated to understanding k8s and then it kinda makes sense. They can spend time to learn it really well so that they have necessary chops to deal with problems when they happen.

On the other hand, if you are smaller company, you are more likely embracing this new idea of developers running everything including k8s, you are in for a trouble.

They will know how to make it work but that's about it.

Because if you need to learn everything you actually learn nothing very well. And there certainly isn't enough time in the world to learn everything in development.

My philosophy is applications must be built for when it breaks and it is unacceptable to run an application with a team that will not be able to fix it if it breaks.

**

Couple of years ago I joined a small group of teams of developers (together about 40 devs) who together maintained a collection of 140 services, all with same or very similar stack (Java, Spring, REST, RabbitMQ).

They had trouble delivering anything to prod because of complex dependencies, requirements, complex networking, complex process to find out where stuff broke between 7 layers of services between the original user call and the actual execution of their action.

I rolled my sleeves and put everything in a single repo, single build, single set of dependencies, single version, single deployment process, single layer of static app servers.

I left after the team was reduced from 40 to 5. There was no problem delivering anything (we had 60 successful deployments in a row when I left) and the guys who were left admitted they are bored and underutilized because of how easy it is to make changes to the system.

These were still the same guys that were advocating for microservices. From what I heard they are not advocating for microservices anymore.

Can microservices be done well? Sure they can. But it takes additional effort and experience to do it well. Why make your life difficult when it is not needed?

Re: “You don't need this overengineered goo for your project.”

#59
post #49

Earlier quoted context omitted.

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).

Re: “You don't need this overengineered goo for your project.”

#60

Earlier quoted context omitted.

Yes it does: https://stackexchange.com/performance Pretty impressive I think.

No it doesn’t. From your link: • 9 web servers • 4 SQL servers • 2 Redis servers • 3 tag engine servers • 3 Elasticsearch servers • 2 HAProxy servers That comes to 23. I know “a couple” is sometimes used to mean more than two, but… not that much more than two. “A couple” is just flat-out wrong; I’d guess that he’s misinterpreting ancient figures, taking the figures from no later than about 2013 about how many web ser…

One interesting aspect is that the number of servers is much higher than what would actually be needed to run the site, most servers run at something like 10% CPU or lower. Most of the duplication is for redundancy. As far as I remember they could run SO and the entire network on two web servers and one DB server (and I assume 1 each of the other ones as well).

If someone says SO runs on a couple servers this might be about the number actually necessary to run it with full traffic, not the number of servers they use in production. This is a more useful comparison if the question is only about performance, but not that useful if you're comparing operating the entire thing.

Post reply on HN