Hacker News new | ask | show | jobs
by Cthulhu_ 1744 days ago
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 like memcached to accumulate votes before updating the database or a CDN for caching static files.

Google has different problems and different workloads, and they have hundreds of times more applications with thousands of times more load. Apples and oranges.

3 comments

> it can be built using tried and true solutions like MySQL + PHP, which are horizontally scalable with database sharding, read replicas, and maybe stuff like memcached to accumulate votes before updating the database or a CDN for caching static files.

> Google has different problems and different workloads

Which of these do you think most organisations most closely resemble?

I don’t think anybody would disagree if you said that you should use Kubernetes for organisations that resemble Google. But most organisations don’t look anything like Google. They look a lot more like Stack Overflow. So the “You don’t need this…” statement holds true for almost everyone.

Stack Overflow is also a) old system built before a lot of current management tech was available openly b) Very single-application centered.

EDIT: To expand on it - they had to manually build a lot of what could be much easier handled today, and thus had no incentive to change later. Interestingly enough, SO has a lot of moving parts distributed over multiple servers, even if all of those servers used to fit into 1-3 racks per DC.

The single vs multiple application centric thing is a point that's not made enough. Google is basically now a company all about spinning up new products, rather than just periodically adding a new piece of tech to an existing product. As a layperson, Kubernetes _appears_ to be about making it easier to spin up (and run) new products, so it feels more appropriate for Google-like org types.
There are also a lot many more applications one might need to run, especially when scaling beyond one-two people running all development on their laptops/desktops and not having a company yet - especially when one doesn't have valley-style funding.

Also these days you might not want to implement login functionality from scratch, or have better logging, monitoring, etc. and that might involve running more applications than just your LAMP stack.

>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

Sometimes I question myself if people posting these "a junior dev can build this product" haven't really worked with systems at scale and all of the myriad of issues that scale brings or if they are being the usual hyper-optimistic-dev that isn't considering much past the proof-of-concept point of a product.

Either way is quite baffling how common this kind of comment is, almost a decade reading Hacker News and it pops up constantly.

It also doesn't matter if a junior dev could do it if they just don't do it

If it's so trivial, go be rich!

I remember this post from gregdoesit [1] as a good example of how much complexity is hidden under seemingly trivial interfaces. It's about Uber's supposedly bloated app, I believe that anyone who has worked at a scale where they had to support different national legal systems in their code would know that maintaining a large-scale product is nothing trivial.

[1] https://news.ycombinator.com/item?id=25376346

> a solved problem

Except 99% of forums run terrible software that doesn't perform, is not easily usable and won't work right on phones. That tells me it's not a solved problem at all.