I've seen discussion on this topic in the past, and was wondering what
people's feelings were in regards to the more recent releases?
Mainly, could it be possible to build a web application on the scale
of, say, Amazon, or deal with similar bandwidth and load requirements
as an iTunes would? It may be unfair to expect that much, seeing as
these are some of the largest around, but would a setup of RoR scale
to handle this and, if not, what are the limitations that prevent it
from handling it?
Basically, I'm about to embark upon a large scale project and am
weighing my options, and the small amounts of RoR I've developed with
I've loved -- yet I just don't know how far it can go. Thanks for the
input.
There was a good session (1/2 day) on scalability. As pointed out by
the session presenter of the 26 TYPES of servers in their large scale
application only 2 are running ruby code. There are load balancers,
databases, DNS, web servers, etc. The level of infrastructure
required for a high volume site is significant. The choice of
scripting language for the core business logic is a small part of the
puzzle. With JRuby and JDBC database connections it is also possible
to get higher scalability if your issue is database connection
pooling. I have seen nothing to suggest that Rails is unable to host
a major site. But, remember also that major sites do not grow on
trees, nor do they spring full grown from the brow of Zeus. They take
years to grow to that scale, and infrastructure will take many
iterations. The biggest limitation to scalability is generally the
organizations ability to scale. If you have a viable business model
the technical aspects are far easier to scale than the staffing.
Rails provides a good balance of production volume scalability, and
organizational demands.
Exactly. Rails can scale to epic proportions, but:
* You may end up with 2-3 times more hardware to execute that load
than an equivalent Java solution would need
* You may need to rewrite a few hotspots as native extensions
* You will have to be creative with caching
On the other hand,
* You may save 30-50% of overall development cost and time to market
* You may have similar savings on maintenance / ongoing development
* You may like your job a lot more that way
I've seen discussion on this topic in the past, and was wondering what
people's feelings were in regards to the more recent releases?
Mainly, could it be possible to build a web application on the scale
of, say, Amazon, or deal with similar bandwidth and load requirements
as an iTunes would? It may be unfair to expect that much, seeing as
these are some of the largest around, but would a setup of RoR scale
to handle this and, if not, what are the limitations that prevent it
from handling it?
Basically, I'm about to embark upon a large scale project and am
weighing my options, and the small amounts of RoR I've developed with
I've loved -- yet I just don't know how far it can go. Thanks for the
input.
To follow up with what everyone else has said, you are going to have database issues way way way before you're gonna have Rails issues.
And those database issues are gonna hit you regardless of what you pick for your framework.
To Alexey's list, I'd add
* Is Ruby/Rails still going to be actively maintained/extended by the
time your app grows to the size of an Amazon or iTunes?
Don't get me wrong; I love using Rails, am waaay more productive with
it and can do things with it that I've never bothered to learn with
any other framework. However, Rails has only been around for a few
years, has experienced stellar growth in mindshare over the past 2 to
the point where businesses now find it difficult to find good Rails
people, and there's only so much experience with using Rails on large
sites that actually exists in the world today.
At some point, some portion of Rails' mindshare is going to move onto
The Next Big Thing, and some chunk of Rails expertise in the market is
going to move with it. On a purely technical basis, I can see no
reason why Rails won't continue to grow and take over large chunks of
the incumbent's (Java) domain; however, I'm old enough to remember
thinking the same thing about C++ ~15 years ago, before Java moved in
and took away a lot of C++'s turf.
you can clearly see that Ruby on Rails is going to be threatened very soon
Surely, it's a fast-moving world.
well it is right around the corner. Consider MS and their .NET
extension which will eventually allow formal relational model style
integrated queries.
If you are talking about LINQ, I played with that a little last year.
It saves one from writing quite a lot of boilerplate code, but is
hardly earth-shattering. In terms of productivity, mixins in C# 3.0
will have a bigger impact on actual .NET application development,
IMHO. And none of MS's new stuff attempts to cure productivity drains
of ASP.NET and Visual Studio.
If anything is going to displace Rails for web app development, it's
not coming from Microsoft, not any time soon.
Now, what the heck are we doing with this conversation on Rails-talk?
If you take on a large project, consider yourself one of the people
who is in the position to contribute to the code in a unique way.
Think about how thankful we all are for those people.