As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 9 years ago.
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?
Answer One: Yes
internet_search://"drupal in the enterprise" <- use this exact phrase
Drupal "Success Stories"
Student Activities Supports 170 Drupal 6 Sites at Texas A&M
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.
Drupal 7 Database Plans
Drupal 7 Database Update
Answer Three:
Open Source Content Management Systems
Answer Four: (Update: 2010-02-03 11:25:04)
see also: https://stackoverflow.com/questions/1715811
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.
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.
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
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.
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.
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.
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.
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.
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.
For transactional support and other significant scaling improvements consider Pressflow http://fourkitchens.com/pressflow-makes-drupal-scale
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.
If you will see the list of sites here http://buytaert.net/tag/drupal-sites and here http://www.drupalsites.net/, you will see that Drupal is being used to build small, medium and large scale sites!
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.
We use Drupal for the main corporate brochure and community areas of our website at http://www.tableausoftware.com
It has allowed us to add on a multitude of plug-able features and customize UX to meet our needs far beyond what we could do with either a more bare-bones platform like rails or django better suited for apps.
We still have room to grow for performance tuning, but we have millions of hits a year without a problem. We've made use of Solr indexing to improve search and allow faceted integrated search for site content and knowledge base and support forums. Additionally, our team has been empowered to create content and curate the site without development hassles.
Lastly, with recent community focus on tools like Features and Context we've been able to manage more risk free deployment and workflow/environment management in addition to improved site architecture.
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 that does this automatically for you. Here is an excerpt from its project page:
... provides following functionality:
Enabling and disabling modules through autocomplete suggestions
Quick search for the nodes, users, etc. to make some operations
clear the cache and rebuild permissions from one place or do them both at once
Overall we are quite happy so far with Drupal for quick development of the most varied websites and corporate Intranets.
Related
I am setting my own software development company and I have to choose how to organize our work. We will have to develop website and web applications in general in the near future and I would like t organize the workflow in the way we don't loose more time then needed on development process.
My concern regarding the above, is to take one of the tons of PHP existing CMS out there and use it as a base for all the coming projects or take a Laravel CMS such as OctoberCMS, or similar and use it as a base project. The former gives me more choice, because there are many CMSs with a lot of modules and templates ready to use, the latter would be a great base either for small websites and also for more complex web applications, being Laraval a MVC framework it is ready for developing more complex web applications, but offers less functionality and modules (for example OctoberCMS provides a not very easy CMS tool for editing pages, which would be not suitable for my customers).
I would like to hear your suggestions and thoughts.
Thank you
I kinda had the same trouble months ago, and I ended up choosing the framework option.
After months developing and using Wordpress-based solutions for my clients I noticed that the start up of every single project was very fast (easy to install, lots of materials available for free or cheap) and enough satisfactory, but the hell arrived every time there were some more-than-little modifications (logics and design).
Using a framework with a pattern like MVC (I use Yii) may be more difficult at the beginning, but write, debug, and organize your code is far more fluid and satisfactory, on the long run. Even a module (cms) can be easily extended or rewrite with lesser effort than packed CMS solutions like Wordpress.
So, summing up: upvote for framework option.
I made the decision to switch from WordPress being my defacto platform for new projects when Laravel Framework v4 was released, much for the same reasons mentioned by #SomethingWicked. I also have a fundamental issue with Matt M. and WordPress Core development team, that WordPress is an Application Platform. It is not, it is a Content Management Platform. Purely because it takes too many liberties in making assumptions (biased to blogging and content management) for the user.
I am also a firm believer in the 12-Factor App (http://12factor.net), which WordPress makes very difficult, neigh impossible, to adhere to.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 11 years ago.
My company wants to start mobile web application development, as an addition to our own ERP software. We do not have any expert knowledge about this, that is why I have to research which tools/frameworks/languages we are going to use.
We already have an existing database, and want to be able to quickly build an extra simple web app, to deploy some handy mobile functionality for our customers. For example, we want to start with making the agenda in our software available for mobile/tablet.
We want to set it up like the following:
we host the web application internally
the web application remotely accesses to the customer's database (Advantage Database Server, can be query'd remotely through JSON), which can also be multiple customer's databases
We develop our desktop software in Delphi, and therefore are not experienced web developers. A framework should meet the following needs:
IDE available, maybe some other handy tools
Preferably small learning curve
Good documentation/support
suited for mobile web development
suited for simple and small web apps, there won't be any need for developing web apps with lots of functionality (most likely aimed at being able to perform two or three tasks)
We will be making a choice for a direction for the coming years, so any possible guarantee about the framework being continued for a period of time is also nice.
So far I've learned that we most likely won't need an ORM, since we definitely won't change our database structure to suit the web app.
So my question is:
which frameworks should I take a closer look at, and which can already be ruled out?
BTW: I'm not looking for an answer for a designer's framework such as Sencha Touch, JQueryMobile etc.
Thanks in advance!
We develop our desktop software in Delphi, and therefore are not experienced web developers.
In that case, I think you are solving the wrong problem:
Hire a team lead who is (even if it is just as a contract role for the first project or two). You need to have someone on board who is aware of all the technologies involved (HTML, JavaScript, CSS, HTTP, SSL) and how to use them appropriately and securely.
Let them determine what tools the team uses — they will have to support the team as it learns to use them.
(If I was going to name a framework, it would be Dancer as that meets most of your requirements)
I have experience with many PHP frameworks (Zend, CakePHP, Kohana, CodeIgniter, Akelos and 2 in-house solutions). Also having some experience with Python's Django framework and lot's of experience with PHP Yii framework, I can recommend Yii both hands up. Even though every robust framework has quite some learning curve, I can say that Yii was the easiest to learn and I was left with most pleasure developing with it.
It is PHP 5 framework, event driven, with support for callback closures and other PHP 5.3 features.
Exceptionally well documented
Extremely fast, due to the fact its component based - you can use only few basic components that you need, also it doesn't have hundreds of abstractions like in Zend so you won't get lost in object references
Very friendly community - I have never been left without an answer if I explain my question well
You can use Active Record ORM models but this is absolutely your own choice. You can go with its DAO (basically PDO wrapper) and write plain SQL. I would rarely do that. Using AR in most cases can save you lots of work and at least in Yii it wouldn't mind any kind of table schema. So I don't see a valid reason to not use AR except for complex queries.
It is themeable, both simple views and widgets/modules - I've been amazed how easy it is to make a mobile version of a website just by creating a new theme.
It has great support of i18n - its easy to make a multilingual web applications if at some point you need it
Both Eclipse PDT and Netbeans 7 for PHP are great web development tools that have some additional support for Yii (though with them it was easy to develop such web apps even before their Yii support).
It's comes with jQuery for it's core widgets for common tasks, yet you are free to use any JS framework you prefer (you probably would never use most of those core widgets for mobile too much anyway).
There is even more to say, but go ahead and check its website:
http://www.yiiframework.com/
No matter what framework you choose, most of the work for a successful mobile web app is left for you.
Check out web2py, as it is probably one of the easiest to set up, learn, and use. You can use it with any IDE or editor, but it also includes its own web-based IDE and administrative interface for application management and basic editing (see demo). It has great documentation, and there's a very active and response mailing list if you need any help.
Rather than an ORM, it includes a database abstraction layer (DAL), which is a little closer to SQL and should provide some extra flexibility (it also includes some scripts to auto-generate web2py DAL models for existing MySQL and PostgreSQL database tables). It includes jQuery, and there's a plugin for jQuery Mobile.
web2py has been around for about four years and is still very actively developed, with new releases every month (yet it has maintained backward compatibility of the documented API since the beginning, and will continue to do so).
InfoWorld recently published a review of six Python web frameworks, including web2py:
Overview/Comparison
web2py
In-Depth
I've read that you can host multiple drupal sites, while they use the same core files(so not needing to copy a few megabytes for each site). I wanted to ask if there is an automated tool that can create a new site, while let you choose a template and then connecting it to the drupal system?
Are there tools like that(with a web layout)?
I would really like to get a few pointers as to how, lets say a company for building websites, will be able to use an automated system to build sites easily. I also understand that with drupal you have alot of manuver to edit your own code, when lets say you want some future in one of the sites. Is it pure php/html or in order to do that you have to delve into core Drupal futures? Also what are the chances that somebody already did it before and you can use this module?
Last, if a company wants to move to a Drupal system (web development company), how much of a transformation is it? Should they be Drupal core experts in order to not lose themself? Or they can keep a drupal base while still using the regular html/php? I really appreciate any leads.
Thanks.
*the questions is also intended to Joomla.
To answer your first question, the Aegir project is a system whereby you can use Drupal to create and manage Drupal sites. That includes installing from install profiles--which are sort of like site templates--or a distribution (Drupal installations pre-packaged with modules). The downside is that installation is fairly involved, more so than just Drupal itself. There's a lot of documentation on the Drupal groups site for Aegir. For a straight multi-site install, there's some documentation on the subject, but the install instructions with the software come with help that you should consult first.
As for your second question, the answer is (unfortunately) "it depends". Knowledge of PHP, especially "the Drupal way", plus integration with the community, are huge plusses. If you intend to join the community, immediately sign up both yourself and all developers an account on Drupal.org and, if you find solutions to bugs or other problems, providing back is a sign of goodwill, and it usually pays back dividends (one example: you submit a patch, it gets included in a module, and then the community maintains it for you). Developers need not be experts with Drupal core, but they need to be pretty comfortable with learning the API and knowing how to create sites for clients in general. First start with requirements gathering, then see how it fits into the Drupal way of doing things. If it doesn't fit, then use the right tool.
That's a tip of the iceberg view from the developer's point of view (as opposed to the businessman's point of view). There are plenty of companies that do only Drupal and there are plenty of companies where Drupal is one tool they use out of many.
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 8 years ago.
Improve this question
I'm looking at building a custom web application for a client (a specialized auction site, in this case), and we're evaluating using some existing CMS as the "scaffold" for the application.
The justification is the fact that for many custom web application projects, some 70% of the code written goes in to adding CMS features, user management, and basic admin CRUD. Presumably, if we start with an existing CMS, then those to components will already be built.
We've decided to stick with PHP for distribution and deployment reasons. The top CMSes we're evaluating are Wordpress, Drupal, and Joomla. Here's our analysis so far (listed in order):
Wordpress
Pros: Dead-simple design. Extremely popular and understood. Very solid recent security history.
Cons: Perhaps a little too simple -- can it be made to work?
Drupal
Pros: Potentially more friendly to custom application development. Decent security history.
Cons: More complex and difficult to understand.
Joomla
Pros: Popular and well understood.
Cons: Some security concerns
Once of the biggest issues we're running up against, and what we hope to gain from the S.O. community is understanding how easily these can be customized to become a custom application. As an example, when the client goes into his administration area, will he get the impression that this is an, "auction site with a built-in wordpress CMS", or will it be a "wordpress site with an auction plugin"? We're hoping for the former rather than the latter. But can it be done?
Or perhaps are we looking in the wrong direction? Should we be looking instead at something like CakePHP? (Note that options like RoR and Django are off-the-table because of distribution and deployment reasons.)
Here are some related (but not identical) questions which have some useful information:
Using a CMS to Design a Web Application
CMS for custom application
This is a question we used to face regularly.
Our development arsenal consisted of Wordpress and CakePHP. We used the former where we could and the latter when we really had to.
Unless you're doing something really radical, you can probably do it with (something like) Wordpress. These days, the admin area can be heavily modified and custom taxonomies allow for meaningful entities rather than just posts and pages.
What you need to consider is the wealth of features and testing that comes with an established CMS package. Plus, Wordpress et al. have an enormous collection of plugins/extensions, which can take you even closer to where you need to be.
I guess what I'm saying is, you'd find it hard to convince me to drop back down into something like CakePHP.
EDIT: Six revisions have a great post on customising the admin area. Also, if you have specific wordpress queries, remember we have a really strong stackexchange site waiting for your question!
Unless you're doing something radical you're going to be better of using a CMS (in agreement with Tom Wright above).
I'll pitch in for Drupal. Its a extremely capable CMS that powers some world class websites like http://www.whitehouse.gov (The US President's Official website). That itself speaks volumes about its scalability, reliability and security.
Check out http://drupalsites.net to see a whole set of websites made in Drupal. Once in Drupal you'll have access to one of the most active communities out there for an open source project. This community has produced over 2000+ free modules (or add-ons) to meet requirements that cannot be fulfilled by vanilla Drupal.
It is true that Drupal has got a sharper learning curve than Joomla or Wordpress. But Drupal, I believe is more powerful than Wordpress and Joomla. Once you've mastered fundamentals of Drupal its easy to roll out features. The whole Drupal system just feels consistent. Some CMSes are an endless series of one-off modules that just need to be configured that way. Drupal has some powerful modules like Views and CCK, that, once mastered will help you accomplish so many things that would have required many different hacks/add-ons/custom programming in other CMSes.
Joomla has a reputation for being easier to learn but ultimately difficult for building truly complex and massive community based sites. Wordpress, though fast maturing with version 3.0 is still a ways away in being as feature rich as Drupal/Joomla. Then there are some other upcoming CMSes on the horizon -- check out Packtpub CMS awards -- you can see some good CMSes listed there.
Essentially it comes down to this -- CMSes like Drupal are built to accommodate mainstream website needs. If your site is not radical (today's twitter or foursquare equivalent) stick with Drupal/another CMS. The development times are just severely reduced. Only once you feel that what you are doing is not practical in a CMS should you choose a framework like Cake, Django etc.
I'll jump on the use a CMS bandwagon as well. There is simply no point in starting from scratch unless you have a truly unique app that doesn't need any of the stand user/content type stuff.
I would base my decision on how tech savvy the client is. I would tend to stay away from Wordpress as extending it is not nearly as simple as Drupal or Joomla. It takes a lot more work to get Wordpress to do the same thing and its feature set out of the box is very limited.
We generally go with Joomla because the admin is a lot easier to teach a client than Drupal. Drupal has better user management and access control out of the box than Joomla, but there are very good extensions that can give you both if necessary. I think the other advantage Joomla has is its MVC architecture and huge development community. Nearly 6000 GPL extensions and many more non-GPL. Add in a good CCK like K2 and the sky is the limit.
As for customizing the admin, we use a custom install for our commercial sites. It's branded with our logos and all of the Joomla stuff is removed. None of the core extensions that are unused show up in the admin and depending on the purpose of the site it can be made to look like an app with a built in CMS. None of the changes we've made touch the core and most are simple settings turning stuff on or off as needed. You can even take it a step further with a simple admin extensions that gives you granular control over what a user sees when logged in to the admin. We haven't felt the need for that though.
In the end, it's more about which CMS you feel the most comfortable coding extensions for. It's already been proven that all 3 can be made to do basically the same thing so pick the one you like the best.
Our company has a great experience in web-development, but it was decided recently to direct common energies to web-development based on Drupal development because only in case of Drupal developments customers get:
a web-site build on the safe system which is based on open source code, the system which is tested by million users all over the world. professional content management system;
it is more likely that possibilities of Drupal system are limited by developer’s imagination rather than facilities of Drupal itself; this will be a web-site with great performance and scalability;
confidence that CMS producer won’t disappear;
web-site with moderate price even if there is a need in development of some specific features which are not developed in Drupal yet;
new versions of Drupal core and its modules are available for free.
I would definitely go with ExpressionEngine. It's a very full-featured CMS, and using it's Query module and allowing PHP in templates, you can get pretty fine-tuned from within the CMS framework.
If you need more power, it's built on top of CodeIgniter, and developing add-ons for it is very easy for a decent developer.
It's not free, but it's pretty perfect and worth the cost ($300 for commercial sites).
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a book, tool, software library, tutorial or other off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 8 years ago.
Improve this question
We're preparing to rewrite/restructure our corporate website and are looking for a CMS to back it. I need the CMS to provide a way of giving certain users in our company control over certain sections of the web site (i.e., allow our Marketing department to update press releases, our HR department to update job postings, etc). It should also be reasonably non-techie friendly...
Is there a particular one you'd recommend, and why? Personally, I'd prefer a ruby-based system, as we have a lot of that skill in-house, but I'm not sure the ruby ones have reached the level of functionality and following that the PHP-based ones have.
I recommend Drupal since a lot of major corporations use it to power their content sites (see Fast Company, Yahoo! Research, The Onion, 43folders, etc.)
Drupal is proven, very robust and solid. It has a large user-base, very helpful support, tons of modules/plugins and extensions to their code base. For developers, it is a fast setup and very easy to extend. For designers, the Drupal templating system is a lightweight way to integrate their designs.
Drupal also has an extensive role-based permissions system which will allow non-techies to manage rules as well.
As for ruby, the only thing I've seen come close is Radiant CMS. They too have a lot of modules/plugins available but I'm not sure how mature the project is. They have a simple role-based permission system too.
Comatose is another option, but it is a CMS plugin rather than a CMS package itself. It sits on top of rails, which may be a good or bad thing depending on your skill set, preferences and existing setup.
Our company uses Drupal. We chose it mainly because it's as close as we could find to an industry "standard", and it hasn't disappointed us.
Our graphics/UI person (who can't program) has no problem working with the "theme" files and "blocks", although she did have a slight initial learning curve as she figured out how they all worked together. Our blog maintainer (who doesn't even know HTML) can add entries to the blog using Drupal's rich text editor (ie. without knowing any HTML). And us Engineers ... well we pretty much haven't needed to interact with it at all once we got it setup (which was easy), so we have no complaints.
Of course, as with anything like this, your mileage may vary, and since I only used Joomla briefly I can't say that Drupal is necessarily better than it. I can say though that Drupal is more than capable of handling the front-end (our back-end is JSP) of a major website, and that it can be edited easily by non-technical people.
Joomla is my absolute favourite CMS for corporate intranet websites, it has fine grained access controls, is easy to extend and has a huge community built up around it.
I found Joomla a little easier to understand. A harder alternative, but with more features is Typo 3. Drupal is nice too.
Whatever you choose, make sure it is a well known open source name. Otherwise you may fall in a vendor lock or find no support.
I'm surprised that noone has mentioned Typo3, as every company I've ever worked for has used it.
It's quite extensible and I've yet to see the support for controlled userpermissions in an other CMS.
If you want a Ruby-based CMS, you very likely want Radiant. There are others, but I've found Radiant to be the easiest to extend. It's reasonably mature at this point, and some of my friends use it almost exclusively, with great success, for building client websites. There is also a very good PHP clone of Radiant called FrogCMS.
If you do opt for Radiant, you probably want to run it on top of Phusion Passenger to keep maintenance to a minimum. The other deployment options usually only make sense when performance is a major consideration, which is rare for a CMS.