Using Drupal as an enterprise platform for supporting multiple content managed web sites

Posted Oct 22, 2010 // 4 comments
Mike:

 As I said in a post from last year, nobody wants just one website anymore.  I'm increasingly faced with questions about how organizations can use Drupal to build and deploy a whole family of content managed websites.  Here, I attempt to partially answer that question by outlining 5 different techniques for using Drupal within your enterprise.

 

Common Drupal Environments

What?  Multiple Drupal sites are deployed in the same or similar environments, presumably by the same organization or organizations that are related.  The sites are completely separate, but benefit from a common technology platform and organizational familiarity.  The sites must be maintained separately and do not share any components.

 

 

 

 

 

 

 

 

 

 

When? Good for organizations looking to deploy multiple sites that are not tied to one another.  For example, two sibling organizations with unrelated objectives and separate budgets and timelines might find this solution appealing, even though no economies of scale are gained by it.

 

Drupal Multi-Site Installation

What? Multiple sites are deployed in a Drupal environment that allows sharing of core and modules, but also allows for maintaining each site individually.  Officially, this technique is called multi-site in Drupal.  Functionality and design can be shared by using common modules and a parent theme, but can be overridden on each site as needed.  Content is generally completely separate and in individual databases.

 

 

 

 

 

 

 

 

 

 

When? Perfect in the situation where you have a couple sites that share functionality and some design elements, but need to flex on their own product cycles.  Good for, say, a publisher with several web properties that need to run on the same platform, but have owners and stakeholders with their own ideas about the specifics of the site.

 

Virtual Site Implementation

What? An increasingly popular site deployment model with Drupal, virtual sites (not a Drupal-specific term or concept) come in many different forms and can be implemented with several different techniques.  Essentially, virtual sites are perceived as different web sites to end users, but are actually running inside a single Drupal instance.  This model simplifies even further the maintainability of the sites, while bringing them closer together in terms of functionality and design.  It is generally assumed that content can be both unique or shared between the sites.  This model allows for design variations using sub themes.  Virtual sites have the advantage of being very easy to deploy and maintain because 95% of their make-up is shared across the platform. 

 

 

 

 

 

 

 

 

 

 

When? Good for a large organization that has several (or maybe even hundreds) of sub-organizations that need their own web properties, but are not given much functional or design control over those properties.  This model would work well for, say, a record label that has many artist websites that they want to maintain as single functional unit.  Browsers of an individual artist site may have no idea that a larger platform is being used or that there is a relationship between any of the other artist sites.  

 

Microsite Implementation

What? Similar to the virtual site implementation above most site components are shared, but content can be different on microsites (also not a Drupal-specific term or concept).  There may also be a more obvious relationship to a main parent site, like a common header or some shared navigation.  There could even be relationships between the microsites so that readers are encouraged to move between them.  From a design standpoint, microsites aren't allowed to vary much due to their very tight integration with the main parent site.

 

 

 

 

 

 

 

 

 

 

When? A common need in large organizations, microsites are great for big, content-rich web sites that need to be segmented across organization or informational lines.  Microsites are inherently easy to deploy and maintain, so proliferating them according to your content needs is a low-risk, low-effort endeavor.  An example usage scenario might be a newspaper site that wants to build geographically localized content sections for "Neighborhood News."

 

Drupal Installation Profile

What? Perhaps the most misunderstood (and difficult to pull off) model for platformization is a Drupal installation profile.  A very powerful feature, installation profiles can be used for stamping out identical clones of a standard Drupal site template.  Building an installation profile takes a deep understanding into the concept of exporting configurations from Drupal, a topic of which is way deeper than I'm able to go into here.

 

 

 

 

 

 

 

 

 

 

When?  Installation profiles are a large effort, so the decision to use them should not be one that is taken lightly.  There is a large investment up front, but it can pay off dividends if the economies of scale is proportioned correctly - we're talking about a lot of sites here!  They are appropriate for an organization looking to standardize the deployment of sites that need to operate on an individual basis and may all move off in wildly differing directions.  In other words, think of installation profiles as giving you a head start, but once you install one, it's up to you to make it the web site you want it to be.  One architectural note: If you are managing an installation profile within an organization, it would generally make the most sense to deploy the sites in a Drupal multi-site environment (described above).  This would give you the versatility of stamping out individual sites with a template, without the burden of having to maintain them separately. 

 

I stopped short of name-checking actual Drupal modules in this post.  That was intentional.  There are many great (and some not-so-great) modules out there that can help you achieve these solutions, or variations of them.  I encourage you to do your own research and join the debate - there are many different discussions on Drupal.org about this subject.  I would love to hear about your success or failure with any of these techniques, so leave a comment!

 

 

 

About Mike

As Vice President, Solutions, Mike Morris works pragmatically (and tirelessly) to identify and oversee implementation of effective, scalable technologies that ultimately result in happier clients.

With more than 16 years of software ...

more >

Read Mike's Blog

Comments

by steinmb (not verified) on Thu, 10/28/2010 - 11:01

Virtual Site Implementations

Virtual Site Implementations is what I think suits most of my clients though I have never found the time of looking into how to set it up. But since most of the settings are common and only things like blocks are defined pr. theme. Do you care do enlighten me on prons & cons of this config when it comes to things like panels, views, context etc that are building blocks we all use rolling out Drupal site.

Cheers

by Tobby on Fri, 12/10/2010 - 12:56

Modules that help with virtual site implementations

There are a lot of modules that can help set up a virtual site implementation. Many (but not all) of these use Drupal's node access, which essentially allows a developer to limit access to certain content based on a variety of conditions.

One such condition might be "does this node belong to the virtual site the user is currently on?" If "yes", display the content, if "no" then deny access. Given the way Drupal automatically handles node_access, you can use a single View to display content, and it will automatically display only the content appropriate to that virtual site.

  • Domain Access - Creates virtual sites using node_access based on the domain or subdomain used to visit the site. A very mature project, it allows for a high degree of customization. Definitely the one to use if all of your virtual sites will use different domains or subdomains. Practically every aspect of Drupal settings can be configured for each site.
  • Subsites - Uses the Context 2 module to determine which site a user is on. It allows admins to set content up in silos, and treats each subsite like a mini-site.
  • Sections - A basic approach to setting up a standalone section within your main site. This is useful for special sections (such as a special event or holiday section). It doesn't allow for content to be viewed only from the intended section, like node_access modules do.
  • Sites - Similar to Domain Access, this module uses PURL to differentiate between virtual sites. However, it has a very limited set of options.
  • Spaces - For developers familiar with CTools and Features, this module will function as an API to allow for custom virtual site development. It has a lot pre-built functionality for integrating Context and Strongarm modules, but it is not a complete implementation by itself. Still, very useful for custom development.
  • Virtual Site - This module has yet to be released, but uses a combination of PURL module and node_access to allow admins to quickly stand up a virtual site. It is similar to Domain Access, but allows for the use of paths as well as domains for virtual sites.
  • Organic Groups - This module uses node_access and allows users to create their own group-based virtual site within the main site. Very useful, but can be cumbersome at times.

For a more technical look at how node access works, see Drupal's API entry on node access rights.

by Tanout (not verified) on Tue, 10/25/2011 - 16:15

Modules liste

Dear Tobby

Thanks for adding this modules list to the excellent Mike article. However most of the modules that you have mentioned and not fully implemented in 7 . For example, I am interested in Virtual Site module because (paths features). But this module development stopped.

Can you please provide us with an updated list of modules for Drupal 7 ?

Regards

by Michael Guild (not verified) on Fri, 10/29/2010 - 09:39

Domain name module

In the past I've used the domain name module for a multi-sites off of one instance. It's worked out great. Nadcp.org and all of their child sites.

Post new comment

The content of this field is kept private and will not be shown publicly.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.
  • Allowed HTML tags: <a> <strong> <code> <p> <img> <ul> <ol> <li> <h2> <h3> <h4> <b> <u> <i>
  • You may insert videos with [video:URL]

More information about formatting options

CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.