RoR for a Large Scale App?

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.

What kind of numbers are you talking about? How many users, total, concurrent, etc...

Quoting "mojo.talantikite" <Mojo.Talantikite@gmail.com>:

How is that relevant? :slight_smile:

I'm joking here, sort of, but in the end it doesn't really matter!

Rails can scale, it just does so less efficiently than other frameworks.

The question is whether Rails' perceived advantages are more valuable than eventual scale costs.

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.

Michael

mojo.talantikite wrote:

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

?

Meta-programming is powerful, useful and dangerous. But I don't see how it has anything to do with scalability.

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.

-philip

Sometimes, tuning up database access is not enough. Because Ruby interpreter is as slow as it is, it happens with Rails apps more often.

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.

And don't even get me started on Turbo Pascal!

Regards

Dave M.

By now this doesn't look like a huge risk from where I sit.

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? :slight_smile:

You're talking about this: http://joyeur.com/2007/05/18/slides-for-my-railsconf-talk-scaling-a-rails-application-from-the-bottom-up

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.