3 ms·
Interesting that the article mentions Shopify supporting over 600,000 users with a Rails monolith. At my day job, one of the justifications for us adopting mic
by yakshaving_jgt 8y ago
Interesting that the article mentions Shopify supporting over 600,000 users with a Rails monolith.
At my day job, one of the justifications for us adopting microservices is that we want to horizontally scale.
We have fewer than 8,000 users.
Hubris, eh?
- ovi256 8y agoThe load per user can be widely different in different application. We don't have a great measure for that, one cound use a combination of requests per user per day, and the sum of CPU-seconds used to serve them. The sum of CPU-seconds should contain the periodic (e.g. cron-like, not directly request-answering) tasks too. At one extreme, you have applications that need horizontal scaling from day one (Scientific computing). At the other, a monolith serving 10^6 users from a single app instance.
- yakshaving_jgt 8y agoYes, that is a reasonable response and I should have preempted that. For context: the product at my day job does something likely at an equivalent level of complexity to Shopify. It's just another SaaS business that handles payments, invoicing, etc. If anything, Shopify is more complex.
- ovi256 8y agoSo the fact that Shopify succeeds doing that in Rails, not in C with assembler optimized code, is even more impressive!
- Hates_ 8y agoDon't forget, that's only the number of stores on Shopify, not the number of people accessing those stores.
- nickjj 8y agoAuthor here. Keep in mind Shopify does scale horizontally in terms of servers. They are just scaling a monolithic application. Those 600k shop owners results in Shopify's platform handling over 80,000 requests per second according to stats that are publicly available[0]. It's one of the largest scale Rails apps in production. [0]: https://twitter.com/dhh/status/885776244532551680 https://twitter.com/dhh/status/885776244532551680
- yakshaving_jgt 8y agoThanks for the clarification, but it doesn't negate my point. It supports the idea that "scaling" is a lousy motivation for my team to adopt microservices.
- lowercased 8y agolast few teams I've worked with, "microservices" has come up multiple times, and in at least 2 cases, parties indicated that this was something they wanted to learn and that was part of the motivation. it wasn't part of the justification for microservices - "scaling" and "uptime" and "robust" were thrown around - but some of the private justification was "I want to learn this stuff". Not saying everyone has that motivation, but it's contributed to my lack of enthusiasm. That and the relatively huge amount of cognitive overhead required for what turns out to be usually relatively benefit.
- maxsilver 8y agoI once worked with a team that wanted to use Microservices, because they felt like a Monolith approach for their webapp wouldn't support their user base long term. They had 400 users, serving roughly 40 requests per second. Their database was small enough to fit into RAM on my cell phone. -- I'm sure there are 100% valid reasons for billion dollar corporations to use microservices. But most of the uses of it that I've experienced personally were not really warranted for any technical reason, and were usually some combination of non-tech/non-product problems bleeding into the codebase. (Whether that's inexperience, mismanagement, communication issues, lack of leadership, political strife, tacit permission to silo oneself off, developer boredom, or whatever.)
- erik_landerholm 8y agoAbsolutely, and hubris of the worst kind...it's the company killing kind before it can even get started.