Drupal as a development framework

Hi Everyone,

It has been many years since I have posted on the Durpal forums, and as many years since I have used Drupal. For the past 8 years we have been developing our e-learning and corporate communication system on a PHP framework established in 2001 and recent developments have brought me back to Drupal.

After a few weeks of planning and discussion we have decided that our system needs to be re-written from the ground up, as the foundation on which it is built is not one I would want to build a system for the future on top of. Over the past weeks we have looked a the usual development frameworks like Zend, Ruby etc and none have provided me with the confidence I would like to have regarding a sustainable and structured framework to move forward with. Mainly because they still require coding methodologies and structures to be built, and these structures are left to one or many developers to propose and create.

I decided to look to Drupal and Joomla as possible options here, and after looking at both extensively, and advice from some reliable associates, I am about ready to commit to Drupal as a framework. I am sure I do not need to explain the benefits in terms of structure, modules etc.

I do however have two pertinent questions regarding this concept. Much of our system will not be catered for by existing Drupal modules, and many new ones will need to be created, and in terms of the final version of the system (forgive me if these sound elementary or rhetorical), the questions are:

  • We are aiming for hundreds of thousands, even millions of users on the system - is Drupal happy with this with regards to performance (especially if we use CCK etc to build complex features)? Will updates of Drupal core easily be patched into this so that the system can benefit from security and core updates.

  • If we sold our business in the future, which would mean selling our platform, would there be an issue with this - baring in mind the value of the system is the IP behind the system we are creating.

The system is nothing like facebook, but in terms of transactions and volume, it is of a similar type.

I would appreciate any feedback possible on this, and look forward to hopefully making a contribution to the track record of the Drupal system in enterprise applications.

Best Regards,

James Dey

Login to post comments

Need more solid numbers

bhuga-gdo's picture
bhuga-gdo - Wed, 2009-06-03 22:17

You say:

We are aiming for hundreds of thousands, even millions of users on the system

Then say:

The system is nothing like facebook, but in terms of transactions and volume, it is of a similar type.

Facebook is a website with 200 million registered users (that's like 3% of the world population, for the record). Those two numbers don't add up.

We've had a lot of experience pushing drupal to the limits in terms of maintaing performance while adding exceedingly dense amounts of functionality (see our dcdc09 presentation at http://www.archive.org/details/DrupalconDc2009-PoweringCollaborationInAD...). I'd happily post more if your numbers are in-line enough with ours that our experiences might be useful for you.


Scaling and flexibility are at odds

joshk's picture
joshk - Thu, 2009-06-04 01:52

For what it's worth, high-performance/availability/scalability and flexibility are competing imperatives, so when you say:

(especially if we use CCK etc to build complex features)

My honest answer is "probably not without some trouble." It all depends on the details of how you use CCK, and what you mean by "complex features," but the flexibility of having an application mostly in configuration means you're running general code. It won't be in any way optimized. Again, your mileage may vary, but you should not expect to be able to config your way to a complex application, then scale it with no hassles.

If you intend to take on issues of scale as a business proposition, I would strongly advise that your team include someone who understands all the layers to your stack, and has a minimal knowledge of how drupal interacts with them.

For your other questions:

Will updates of Drupal core easily be patched into this so that the system can benefit from security and core updates.

So long as you don't hack core, yes. Major upgrades (e.g. from 6.0 to 7.0) will still entail non-trivial effort.

If we sold our business in the future, which would mean selling our platform, would there be an issue with this...

IANAL, but there's nothing preventing you from selling GPLed code. The issue has to do with the restrictions you may want to place on whoever is purchasing it (e.g. you can't prevent them from freely distributing it). However, if you're talking about selling your whole business this wouldn't be a concern. Plenty of businesses have increased their productivity (and thus value) by leveraging open source tools and platforms as part of their service offering or operations.

http://www.chapterthree.com | http://www.outlandishjosh.com


IP not that important

Boris Mann's picture
Boris Mann - Thu, 2009-06-04 10:07

"If we sold our business in the future, which would mean selling our platform, would there be an issue with this - baring in mind the value of the system is the IP behind the system we are creating."

Actually, with most websites, the value of the system is NOT the IP behind the system - not anymore, at least. Having a running, production system with millions of users and transactions is the value of your business. So it wouldn't negatively affect the selling price of your business to use Drupal. It might increase it, since it's a common framework that is supported outside the walls of your business, and you can even do things like hire people how to run such a system instead of training them from scratch.

And yes, as Josh says, if it's a sale of the entire business, you're not distributing code outside the walls of the business, so any custom code doesn't have to be shared. IANAL, IANAL!