As we've seen time and again, in an increasing number of enterprise software categories, open source has become a promising alternative to commercial software. But there's no free ride.
Support from developers is often problematic, and you need to find products with a large enough following so that programmers have an incentive to build add-on modules. When the Test Center reviewed open source CMSes (content management systems), these two factors often broke the tie between otherwise robust solutions and gave Alfresco the advantage.
(For InfoWorld's comparative review of Drupal, DotNetNuke, Plone, Joomla, and Alfresco Community Edition, see "Open source CMSes prove well worth the price." For the Test Center's top picks of free and open source software for business, IT, and personal productivity, see "Best of Open Source Software Awards 2008.")
Yet if you take support out of the equation, Drupal emerges as the better solution for many enterprise Web projects. That's because this social publishing solution starts with a mature Web CMS, adds a blog system, and then offers discussion forms, community features, and extensibility through 1,800 add-on modules -- many of them also open source. Given this flexibility, it's not surprising that Drupal powers about 250,000 live sites -- including big names such as Federal Express, The Onion, and Popular Science.
But big organization or small, there's a dark side to Drupal: You'll probably need the services of an experienced support staff or a costly consultancy that has mastered a complex setup and knows how to assemble all the building blocks into a workable system. Now, for those with limited resources, Acquia is stepping in with a commercially supported Drupal distribution along with a network that delivers patches and security updates.
Laying Web Tracks
I looked at Acquia Drupal 1.0, which includes the Drupal 6.4 core distribution, network modules for communicating with the Acquia Network, and the Acquia Network itself. The last item complements an easy deployment experience with support, online documentation, and performance monitoring.
The process starts when you sign up for an account at Acquia's Web site and download its hardened Drupal distribution. You'll still need to have hardware already set up with PHP, MySQL (or PostgreSQL), and a Web server, such as Apache. Don't underestimate the work to get this running -- especially in a large production setting. It took me about a day to set up and troubleshoot this stack on my Windows Server 2003 server.
However, when you get to loading Drupal, things get much easier. Acquia's engineers have created the necessary customized settings files and configured a suite of contributed add-on modules. After just 30 minutes, I had a running Acquia Drupal site with blogs, forums, social networks (people could publish their profiles), articles, mashups, and Web content management.
Another big timesaver is Acquia's set of pre-integrated add-on modules. Acquia looked at some 1,800 modules available for Drupal -- then selected, fully tested, and integrated the essential ones you'd need for building a modern Web site.
Without detailing every add-in, I think Acquia made very good choices. For example, Content Construction Kit (CCK) lets me create custom content types using a simple wizard. Image creates picture galleries for your sites. Mollom protects sites from spam. And the VotingAPI gives developers a standard way to let users vote for and rate Drupal content. To add any of these modules to your site, you simply select them from Acquia Drupal's administration menu, which renders drop-down choices at the top of the browser for controlling the site.
So without having to play around installing and configuring any extra modules, I went right to the content section of Acquia Drupal's admin menu. After part of another day, I came away with a polished site that had a custom look, populated articles, a blog, video, discussion forums, and a tag cloud. Based on my earlier test of the community Drupal download, Acquia saved me at least a day of work integrating and preconfiguring the various components.