views:

4107

answers:

19

Is anyone out there using RoR for large scale, business critical enterprise applications?

Are there any other lightweight web-frameworks based on dynamic languages that people are using for these types of apps?

If you're not using these types of application frameworks what's stopping you? Is it simply the inertia associated with any large IT organization. Are the speed and stability issues of these frameworks enough of a problem that they offset the improvements in development cycle times?

+2  A: 

A buddy of mine just finished working at RecycleBank, and they were using Rails for their entire intranet system. I think Rails is definitely ready for the enterprise, though that isn't what has most been called into question. Most people question whether it can handle a ridiculous amount of traffic because of the memory requirements. That still has yet to be seen, but I think the framework is entirely capable of handling enterprise applications.

Brian Warshaw
+2  A: 

YellowPages.com and Penny Arcade are the biggest that I've heard of off the top of my head. Of course, lots of enterprises are using it for internal apps. As far as scaling goes, liberal caching is the secret no matter what your language/framework.

Neall
+3  A: 

If you talk with almost anyone running a high traffic enterprise site, most of them will tell you the same thing, the language you choose if handled properly will never be your problem it will always come down to IO.

If you look at sites like twitter, sure they had issues. But they already admitted it was cause things were not scaled properly. Since they have implemented the changes they did things have been cruising along.

The only thing stopping us here where I work is no one knows ruby and doesn't really have much time to learn.

Tanerax
A: 

I'm still not sold. Twitter has had massive outages (3 days on one episode!). Up to a point it was blamed on the difficulties behind scaling RoR: read here.

/mp

mauriciopastrana
So because Twitter has had massive outages for 3 days, therefore all web sites (including the enterprise kind) will not scale?
Jaryl
http://twitter.com/ev/statuses/801530348
James McMahon
I think calling Twitter the gold standard of whether a language can scale is highly ludicrous. They've switched to a Java based environment and still have issues. Is that the fault of Java or is it the result of a platform growing way faster than anybody could have anticipated?
thaBadDawg
Most enterprise web apps don`t have anywhere near the traffic that twitter has. This scaling argument is largely bogus anyways. A lot of computing in a well-designed web application is done in the database, web server, or by special-purpose libraries written in C or C++. The language of most web apps is used for parsing incoming data, formatting output data, or driving the database. Parsing is expensive in any language. For the part of web systems that are choking, many folks are switching to Erlang for those parts...
Jay Godse
+5  A: 

I'm pretty surprised at how positive most of the responses have been. I'm a big fan of Ruby and Rails and agree with everything that has been said, but I get the sense that there is a general assumption in the community that "Rails just isn't ready for prime-time yet." (granted that community is generally less informed than I imagine the users of this site are)

I think from a technical perspective the examples others have brought up show that you can in fact get the uptime and performance out of Rails that you expect from a Java or .Net stack. The problem is, you can't build those kinds of highly performant, reliable applications in Rails with 30$/hr programmers. Ruby and other dynamic languages seem to enable great programmers to become amazingly efficient and productive, but at the same time they just cripple the so-so programmers. And considering that the vast majority of large IT shops have opted to higher the cheapest code monkeys they can find I think it would be a very painful transition for them to try to introduce Rails as a replacement for Java or .Net.

Mike Deck
It's not really that they cripple the so-so programmers. Some people just don't have the will or mindset to learn a new language or framework. Those are usually people who approached the profession with the idea that they only ever need to learn one language or technology and they'll make money from that skillset for their whole lifetime. And if that language/technology happens to be .net or java (most often is) they'll use the word enterprise freely especially in a situation where they are afraid to learn something new.
Vasil
+3  A: 

I think the 37Signals guys have built all of their applications using Ruby on Rails

I can imagine, they are the ones who invented it after all.


A List Apart uses RoR, not very enterprise-y though.

Kevin
+8  A: 

I work as a consultant with IBM and I've built several websites for clients using Ruby on Rails in the past year. Rails is without a doubt "ready for the enterprise." The key is to use rails for what it excels at, and use J2EE or other "enterprise tools" where they excel. Rails is great on the presentation end of any application. You can consume RESTful web services without approximately 0 work, and that is a great integration point to the rest of your "enterprise" tools.

Maybe I wouldn't use rails to build yahoo.com, but that's OK. There's hundreds and thousands of perfect niches where you can use rails, from the Enterprise to the smallest of IT shops.

Kyle Boon
since Yahoo! uses PHP... why not Ruby?
rtacconi
+63  A: 
John Topley
Fantastic commment!
Eduardo Xavier
Thanks Eduardo! :-)
John Topley
JRuby core developers have moved to EngineYard now.
jpartogi
+4  A: 

The Twitter story seems to have spread the word that "Rails doesn't scale". Meanwhile, LinkedIn created a Facebook app using Rails that is handling 1B page views/month.

I buy the argument they make, which is that scalability problems are less a product of what language/platform you use and more about how you implement things within that platform.

darin w
Linkedin uses Grails
rtacconi
But the comment refers to the LinkedIn Facebook Application, which uses Rails
Yaraher
+9  A: 

IBM, Oracle, Sun and JPMorgan Chase are only a few of the companies that use Ruby on Rails. It probably doesn't get more enterprisey than that.

Jörg W Mittag
but what do they use it for?
johnny
And where do they use it?
jpartogi
+11  A: 

I think a lot of people get confused with what the word "Enterprise" really means. YelloPages.com and Penny Arcade aren't enterprise applications. Sure, they might have high-volumes of users and hits/minute, but they're relatively simple apps.

An enterprise application is one that is used to run an enterprise - usually meaning a large multi-department, multi-location company. SAP is an enterprise system, BaseCamp isn't.

Some of the characteristics that you'll typically see in enterprise apps are:

  • They're big and complex. A typical ERP system needs to deal with 100's of entity types.
  • They often need to integrate with other systems and need to provide integration points for third parties.
  • They have a large number of different user types and roles, largely reflecting different job types in a large organisation.

To answer your question, I'd say that yes, Rails is ready. We're currently developing a large system financial management system for a company of over 1000 users crossing 20 departments. Scalability isn't a big problem for us, but reliability and availability is. Solving that problem is the same no matter what the technology stack.

I'd re-iterate the point others have made about skilled developers, but that again applies to any technology stack. It might be OK to have an average developer work on a non-critical small system, but if you're serious about developing an application that is critical and enterprise-wide, you'd best get your smartest guys working on it.

+5  A: 

We are using Ruby on Rails primarily for "enterprise" critical business applications. And for us it has been much more easy to integrate Ruby with other "enterprise" systems, for example:

  • we are using Rails on top of Oracle database
  • we integrate our Rails applications with Oracle E-Business Suite (ERP & CRM system)
  • we integrate user authentication with LDAP directories, NTLM Windows domain authentication, Oracle E-Business suite authentication
  • we build REST and SOAP web services for integration with other systems

There are a lot of "enterprise" integration platforms which are supposed to do such kind of things but they typically are quite costly and also quite often you get stuck on some problem and then you depend on vendor if he will solve the issue or not.

With Ruby and other open source components you are always able to solve the problem by yourself as you can dig down to the root of the problem and nothing is hidden to you.

So if you have smart developers who like to solve hard problems then Ruby will be excellent tool for them. But if you have average developers which do not want to learn anything new and which hope that vendors will do their job then probably Ruby is not for them. But I doubt that average developers will be able to create great software with any tool.

Raimonds Simanovskis
+3  A: 

Here's my take on this. My company (which has 120,000 employees) has a predominantly Java/J2EE stack for internal IT. They also use Sharepoint for document/knowledge management and Oracle apps for workflow etc. Over the last 2 years, I have leading a small group of Ruby on Rails/Python-Django/PHP enthusiasts to actively canvass the adoption of these frameworks inside the enterprise. THe usual (often invalid) arguments we ran into

  1. It wont scale
  2. It's not secure enough for the enterprise

But, we managed to push through a few apps (Wordpress for blogging, a custom built Yahoo answers like internal social Q&A app and a Digg style Rails based Idea/Innovation mgmt app) and things have really changed in very quick time. There is now a strong buy-in for the fact that Rails/Django and its ilk may actually be better for a certain class of enterprise apps, especially simple, lightweight ones in the areas of KM, workflow etc.

krishashok
120.000 employees? jesus...
never_had_a_name
+5  A: 

As my day job is all about enterprise architecture, I believe that the word enterprise isn't nowadays about size nor scale but refers more to how a software product is sold.

For example, Ruby on Rails isn't enterprise because there is no vendor that will come into your shop and do Powerpoint presentations repeatedly for the developer community. Ruby on Rails doesn't have a sales executive that takes me out to the golf course or my favorite restaurant for lunch. Ruby on Rails also isn't deeply covered by industry analyst firms such as Gartner.

Ruby on Rails will never be considered "enterprise" until these things occur...

jm04469
+2  A: 

I'm a web developer and I already built some Ruby on Rails websites for various companies (from intranet to medium scale websites), but I haven't used it for a really large scale application.

People always point out that it's slow, won't scale and is hard to deploy. The "scalability issue" is not really one anymore. It's still a bit slower than most of the other frameworks, but I have good hope that rails 3 will fix this. It is not really hard to deploy anymore thanks to Capistrano and mod_rails.

The real issues I can see with rails on large scale projects:

  • There are not a lot of people knowing Rails. If you have a PHP app, you can be sure that 66% of web developers out there will be able to maintain it. With rails that's not the same deal.
  • It's still slower and if the speed is critical it might be an issue
  • It still needs more components for e-commerce and so on. It's getting there, especially since shopify, but it's not as ready as Java for instance.

Aside from that, I think Rails is ready.

Often it's just a matter of finding the right technology for the project, and in some times it might be rails. Every language / framework has drawbacks, so in some cases Rails will not be the smartest choice, but in other cases it'll do the job just right.

Also, just wait for Rails 3, it will be awesome :)

marcgg
A: 

I use rails in an enterprise environment and it works quite well. You just have to mold your app to work in the environment. In my case we're a Java house so jRuby is the deployment method of choice.

I've also stopped using rails from rendering the actual pages, but use it for modules, tools and quick and dirty services that link to the tools. Our java services have no back-end tool that interface with them.

Our site has hundreds (possibly a thousand) pages so rails would probably be a poor candidate to replace that architecture. On the other hand, if I integrate rails into the Java site then I can solve quite a few problems that would be very difficult from the java end.

Your app architecture is key, if you don't design the app to scale well then you'll have problems no matter what framework/language you choose.

I did build a rails app for several pages that get hundreds of thousands of hits/month. Rails did just fine, but most of the content was cached. We had one instance where yahoo had a front page featured story linked to us. The page had some non cached rails content so the huge traffic brought the rails app down, but that was partially my fault for not optimizing better.

Robert DiNicolas
A: 

I don't know if I would consider it to be enterprise... but I think it says a lot that both twitter and hulu are built on rails.

tybro0103
A: 

We're current using Rails for a site with over 5 million uniques/month with great success, so if enterprise = scale then yes.

scottschulthess
A: 

I would definitely read this case study of Ruby On Rails

In this article, I'll walk you through the way we're using Ruby on Rails to build the site. You'll see the core features we're using, as well as the primary plugins that we depend on every day. Most of our technology isn't really earth shattering, but I hope to give you a glimpse inside our day to day operations. My aim is to give you a broad overview of how the team works, the technology we trust in the production environment, the tools we use, and the Rails frameworks that are most important to us. I'll link to a resource rather than going into great detail in any single area, but if you want to know more about any part of it, leave a comment.

Comptrol