Live data from Hacker News

How to Scale a System from 0 to 10M+ Users

blog.algomaster.io

31–40 of 82 posts

Re: How to Scale a System from 0 to 10M+ Users

#31
post #17

Good post in general but some caveats: 1) His user numbers are off by an order of magnitude at least, as other comments have mentioned. Even a VM/VPS should handle more, and a modern bare-metal server will do way more than the quoted numbers. 2) Autoscaling is a solution to the self-inflicted problem of insanely-high cloud prices, which cloud providers love because implementing it requires more reliance on proprietar…

As is often stated, microservices is a solution for scaling an engineering org to 100s of developers, not for scaling a product to millions of users.

You can get the separation benefits of microservices in a compiled language with modules that only communicate over well-defined interfaces, constraining each team within their own module without having to introduce a network call between each operation.

Re: How to Scale a System from 0 to 10M+ Users

#32
post #17

Earlier quoted context omitted.

As is often stated, microservices is a solution for scaling an engineering org to 100s of developers, not for scaling a product to millions of users.

Unfortunately that message was way way behind the bombast of "microservices everywhere now" that preceded it for years, to the detriment of many small orgs. I've seen engineering orgs of 10-50 launch headlong into microservices to poor results. No exaggeration to say many places ended up with more repos & services than developers to manage them.

do they all manage to have 4 different ways to do something like "notify user about x", all In use because they could never be bothered to complete the "upgrade"?

Re: How to Scale a System from 0 to 10M+ Users

#33

Good post in general but some caveats: 1) His user numbers are off by an order of magnitude at least, as other comments have mentioned. Even a VM/VPS should handle more, and a modern bare-metal server will do way more than the quoted numbers. 2) Autoscaling is a solution to the self-inflicted problem of insanely-high cloud prices, which cloud providers love because implementing it requires more reliance on proprietar…

The best descripcion of microservices comes from "The Grug Brained Developer" ( https://grugbrain.dev/ ): "grug wonder why big brain take hardest problem, factoring system correctly, and introduce network call too seem very confusing to grug"

Grug actually covers this in his essay:

> note, this good engineering advice but bad career advice: "yes" is magic word for more shiney rock and put in charge of large tribe of developer

Microservices definitely contribute to having a "large tribe of developer" to manage.

Re: How to Scale a System from 0 to 10M+ Users

#34

Earlier quoted context omitted.

Unfortunately that message was way way behind the bombast of "microservices everywhere now" that preceded it for years, to the detriment of many small orgs. I've seen engineering orgs of 10-50 launch headlong into microservices to poor results. No exaggeration to say many places ended up with more repos & services than developers to manage them.

do they all manage to have 4 different ways to do something like "notify user about x", all In use because they could never be bothered to complete the "upgrade"?

Exactly the problem yes. Once you have more services than developers, you are probably running into infrequent releases and orphaned projects.

So whenever an inevitable common utility improvement is made, the effort of pushing out 100 repo releases for services no one has touch since Jim left 3 years ago is terrifying.

When there is a breaking change is going to be made and you HAVE to do the 100 releases, it's terrifying. Everyone says it never happens, but work on a project/team for 5 years and it does eventually, even once is enough to swear me off this "architecture".

Re: How to Scale a System from 0 to 10M+ Users

#35

Earlier quoted context omitted.

Unfortunately that message was way way behind the bombast of "microservices everywhere now" that preceded it for years, to the detriment of many small orgs. I've seen engineering orgs of 10-50 launch headlong into microservices to poor results. No exaggeration to say many places ended up with more repos & services than developers to manage them.

do they all manage to have 4 different ways to do something like "notify user about x", all In use because they could never be bothered to complete the "upgrade"?

That's often the case yes. In a monolith a developer disgruntled about the situation can clean up the mess in a weekend, test it and push it through. No chance of that happening in microservices - you'd run out of weekend just opening PRs in the dozens of repos and dealing with all the nitpicking and turf wars.

Re: How to Scale a System from 0 to 10M+ Users

#36
post #19

Earlier quoted context omitted.

You and another person made this point _but_ I’d encourage you to look at what $50/mo gets you on AWS all in. In reality it will get you a t4g.small plus 200GB of (very slow) storage. Honestly they start to chug at 500 or so users in my experience.

If you look at what $50 a month gets you at OVH or Hetzner then their post makes more sense. It isn’t an apples to apples comparison. But, you trade some additional operational overhead for a whole lot more hardware.

Totally agree - I was just trying to give a perspective for the user scale figures

Re: How to Scale a System from 0 to 10M+ Users

#37
post #19

Not criticizing the core idea, which is sound (don't waste ressource overengineering at the beginning, evolve your architecture to match your actual scale as you grow), but the “number of users” figures in this post are completely nonsensical. You ought to multiply them by 100 (if you're being conservative) or even 1000 (depending on the consumption pattern for the user). Modern hardware is fast , if you cannot fit m…

You and another person made this point _but_ I’d encourage you to look at what $50/mo gets you on AWS all in. In reality it will get you a t4g.small plus 200GB of (very slow) storage. Honestly they start to chug at 500 or so users in my experience.

Which is why you should not be going to AWS to begin with when there are plenty of providers who will give you orders of magnitude more performance for this price.

(of course, say goodbye to resume points and your cloud provider conference invite. Question is, what are you trying to do? Are you building a business, or a resume?)

Re: How to Scale a System from 0 to 10M+ Users

#40
post #17

Earlier quoted context omitted.

As is often stated, microservices is a solution for scaling an engineering org to 100s of developers, not for scaling a product to millions of users.

Unfortunately that message was way way behind the bombast of "microservices everywhere now" that preceded it for years, to the detriment of many small orgs. I've seen engineering orgs of 10-50 launch headlong into microservices to poor results. No exaggeration to say many places ended up with more repos & services than developers to manage them.

I once worked with a startup that had 3 total engineers, and their architecture diagram called for 8 micro services. We tore that architecture diagram up pronto
Post reply on HN