Does Rails Scale?
bearmetal.eu
bearmetal.eu
In terms of scaling, I've observed that many engineering organizations drop the idea of full-stack or monolithic anything for a couple of reasons. The first is understanding all of the major constituent parts of their system, and secondly to make it easier to replace any part that is identified as a bottleneck.
That said, ruby is an incredibly easy language to program in. If you start with ruby and an SOA, it doesn't matter where you start to hit scaling issues - you can replace the code (that you wrote far faster than you would have in Java) with something more performant.
Yes, you'll probably end up doing significant rewrites if you do actually win the lottery and get big, but it's nice to know that you're not going to top out at some arbitrary size and have to start turning customers away while you do those rewrites.
Here's another https://grails.org/
In particular, I don't think comparisons to Facebook or Twitter are particularly helpful. Twitter is basically global telecom-scale; Rails is never going to be the right tool for that, but the flipped of that is it was possible to get to that point using it.
Basically, use whatever framework or language that suits your other requirements. Build a sensible, modular system using standard software engineering principles. Don't sweat over the scalability of your framework until you hit scale, and you'll have a great problem to deal with.
That said, I'll disagree just a bit with the author: trying to get the rough system architecture correct early on by squinting at your app domain and estimating where the load is most likely to hit hardest, then putting in effort to make sure those areas are particularly scaleable and resilient, is a reasonable approach, even if it smacks of premature optimization.
I don't think we really disagree there. I might not have made it clear enough, but I mentioned that there are obvious things that need more consideration, like Kissmetric's or Skylight's data aggregation and massaging.
That said, for many (most?) that culprit is not easy to identify in the early stages and many apps are still basically glorified CRUD apps where that is a non-issue to begin with.
For example, a few years back we ran a much publicized vote for an unidentified social network with more than a billion users. It ran on a run-off-the-mill Monorails[1] app and MySQL, without any hitches. If anything, we vastly overestimated the number of app servers needed (a couple dozen IIRC).
Of course it was a fairly simple use case, just an example that high load by itself doesn't mean much.
[1] A term commonly used for a web app that is a single Rails application, as opposed to a more SOA-style app split in smaller pieces.
Sure, you just use more of them.
The point here is why the same algorithm would take 0.3 sec to run and the next time it would take 1 sec. After seen that I never coded Ruby again.