views:

2918

answers:

14

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

Does Drupal's lack of database transaction support dissuade potential users?

Are there any other lightweight web-frameworks based on dynamic languages that people are using for these types of apps? What about Java portals such as JBossPortal or Jetspeed as an alternative or a Drupal + J2EE hybrid architecture?

+2  A: 

My company is using Drupal to build the public facing website for one of the largest universities in the state that I live in. So far we have been pretty successful with it.

We use concrete for a bunch of other clients as well and I think we're generally happier with concrete although it is not nearly as wide spread used as Drupal.

matt_dev
+2  A: 

Drupal is used all over the place and has a very large community supporting its development. There is also a large for hire community if you want a custom drupal component.

hacintosh
+27  A: 

Answer One: Yes

Answer Two: It depends

There are surely some who have concerns about this issue. Drupal's database support and schema have been subject to some scrutiny and criticism over its evolution. That is likely to diminish if some or all of the planned enhancements make it into Drupal 7. This is the one out of your three questions that cannot be easily and definitively answered by searching the internet.

Answer Three:

Answer Four: (Update: 2010-02-03 11:25:04)

dreftymac
>>This is the one out of your three questions that cannot be easily and definitively answered by searching the internet.<< Yup, I like Drupal. It's a great tool for building websites but its database support is my major concern for enterprise applications.
parkr
We are currently using drupal right now for enterprise and have installed a lot of modules and when you go to the administer page....there is an error about maximum memory exhausted. Something like that so we have a problem right now :(
marknt15
Yeah, that happens a lot. Edit your php.ini and increase the available memory. Search google for "drupal php.ini memory"
dreftymac
edit your settings.php for that, located in sites/default or sites/yourwebsite.com dir.
Dr. Hfuhruhurr
you can also amaze yourself with the fact that drupal is being used at whitehouse.gov
barraponto
when Google or Oracle or Microsoft or some other company that hires people who engineer software for a living start using Drupal, *then* I will be amazed.
dreftymac
+5  A: 

I recommend against Drupal due to its inefficiency. Yes, it can do almost anything, but it does it slowly. For any but the simplest of sites, drupal will not build nearly as efficient a chain of queries and pages as a custom built site will. Something that can be done by hand with two SQL joins and a single PHP loop is likely to be handled by Drupal with five joins and a nested loop.

That said, I love Drupal and will continue using it in non-enterprise environments, and I cannot recommend any other CMS that does not have similar problems when presented with complex tasks.

Sparr
efficiency has never been a reason to go with any particular enterprise web application. s******, I'm looking at you :)
gbjbaanb
I also agree to you in using drupal to non-enterprise projects because for me it is slow.
marknt15
It is slow for logged in users. The only way to make it fast is to throw caches in front of it (static files, memcached, database caches). What they really need to do is reduce the number of queries, it can do over 90 per page with a handful of modules installed.If the website is to have 100s of logged in users Drupal might be too slow. However for a content driven, mostly view only website it is great.
Keyo
+2  A: 

Having helped to create drupal sites for Popular Science Magazine and soon another magazine (which I'm not sure if I can name yet?), I think it's quite suitable. We've also done an intranet site for BMW and Pregnancy.org.

It may not be perfect yet, but it's quite suitable.

John Fiala
+5  A: 

Yes, but...

Word of Caution: Many community-based themes are coded sloppily, which completely negates the efforts Drupal has made to make their CMS secure. Worse still, common practice in theme development is to find a theme like the one you want and customize it. Since code of these themes is shared so freely, a single sloppy mistake can affect many other themes derived from it.

If you go with Drupal (or any other stock CMS), don't just hire some joe-shmo designer to theme it for you. If possible, hire one contract for the visual theme and a php developer to actually build the theme from PSD's

yaauie
+2  A: 

I was the lead developer behind the recently relaunched American Diabetes Association - http://forecast.diabetes.org/ - rebuild in Drupal. At launch, we were getting about 250k uniques/month and it's been growing significantly. While the criticism for "inefficient query chains" is mostly accurate, there is a reason for that. The Lazy Loading pattern is used as frequently and often as possible. To streamline the process a bit, you can always configure Drupal's caching, there are some addon modules, and then you could go with something like APC or memcached.

Regardless, the trade off of being easily extended, customized, and - in normally less than an hour - having something to show the customer and allow them to load content, is pretty significant.

CaseySoftware
+1  A: 

I've used Drupal to build a combined public-facing site for an organization that also included internal features for employees such as meeting organization and internal document management. Mostly it worked out well and they are happy with it, and very happy not to have to manage two separate sites and / or something like sharepoint.

The one place I found Drupal to be a little lacking is in its LDAP support. You can use it just fine for authentication, but there are some bugs in the modules that try and bring LDAP groups down as roles, if this worked more seamlessly I would be completely on board with the "Drupal is enterprise-ready" sentiment, but it's not there yet.

That said, you can do a lot with content types and taxonomy-based access control to customize what content is available to what roles, something that is a requirement for most intranets.

alxp
+7  A: 

It depends on what you mean by "Enterprise." It's a horrible choice if you're building a supply chain management tool, for example.

But if you mean "extremely high traffic sites" or "Sites with complex approval workflows before content goes live" or "sites that we can scale horizontally", then I'd say yes. There are quite a few very large scale Drupal deployments out there, from SonyBMG's suite of artist web sites to newspapers and magazines.

Eaton
+1  A: 

I've worked on a Drupal project with about 1 million nodes. We added transactional support and it wasn't too hard. You'll need to patch the core of course but this shouldn't be a major concern for an enterprise application with good support and documentation. I was working as the observing pair programmer on the transactional support. I think it took us about a day.

Edit:

I've been working as a Drupal Developer for a few years now. And recently, I have revised my position on Drupal in relation to best practices and enterprise application.

I don't think Drupal is particularly suited to the Enterprise space because:

  • Drupal's testing framework is too cumbersome (a domain specific language would be great)
  • There are too many contributed modules of poor quality
  • Drupal's content model resides partly in code and partly in the database schema
  • Drupal's developer community have become focused on sexy software rather than quality software
  • Drupal doesn't have mature developer tools (drush is changing that) or a development environment built in.
  • Drupal Development is browser and UI centric.
  • The centralized nature of Drupal.org/projects, CVS and Drupal's policy on Contrib Projects inhibits the evolution of individual software projects

Also: The enterprise Drupal Application I was once working on has now been ported into Rails.

Rimian
+1  A: 

For transactional support and other significant scaling improvements consider Pressflow http://fourkitchens.com/pressflow-makes-drupal-scale

A: 

I too have issues with Drupal's slowness, but it seems that with top notch developers you can get around it.

It's a moderately difficult tool to make a company website with, its a very difficult tool to make an enterprise-application with. But when it comes to open source LAMP CMS's, there is no real competitor.

stef
A: 

Drupal is great. I've used it for several mid-scale community and personal websites, and so far is giving us very good results. I would support the comment pointing at the over-done or even low quality of the templates of many of the website's we've looked at out there, but then, just hire a good coder/designer that does this nicely for you.

As for the memory issues there's tons of articles out there that would help you in tweaking Drupal's database management. There's even a module called Drupal Tweaks (drupal.org/project/drupal_tweaks) that does this automatically for you.

Overall we are quite happy so far with Drupal for quick development of the most varied websites and corporate Intranets.

arieltools
+1  A: 

Drupal is great, but it is very inefficient. But, as I keep telling my frontend developers, this is the payoff for being flexible and highly modular.

We are currently creating a Druapl site, which I consider enterprise (http://stackoverflow.com/questions/161991/what-makes-an-application-an-enterprise-or-enterprise-level-application). It has about 40 content types, 15 user roles, integrated with Ubercart, interfacing with external APIs for membership verification etc. etc. Our development servers struggle some times, but on our staging hosting, it is lightening - fast as any similar sized site.

Make sure any bespoke code is well developed, use Drupal's performance features before release and ensure quality hosting is used.

JonB