Multi-site Publishing, Management and Hosting with Drupal
Manage all your organisation's websites on one central code base with distributions
Many large organisations have the problem of wanting to have consistent look and feel and a common code base, while giving some level of autonomy to multiple independent business units or organisational groups.
Doesn’t Drupal Already Support Multi-site?
Although Drupal has had built in support for multi-site since version 4.6, it was always intended to provide a solution for low cost hosting, where you can manage lots of very different sites from a single installation. This reduces the costs of hosting small traffic sites, but it does have significant drawbacks when trying to scale out to highly available large scale sites.
The main issue is that deployments of all sites need to occur at the same time in “big bang” deployments. Consider the scenario where a simple theme change to one site requires a full deployment across all sites, or a failed deployment in one site requires the whole platform to be rolled back. This is not a scenario any large organisation wants to deal with!
Fortunately, there is an alternative approach that provides the best of both worlds. Drupal supports the concepts of different installation profiles which package up Drupal core, contributed and custom modules, base themes, as well as common configuration into a pre-packaged distribution.
While there are many freely available distributions on Drupal.org to cover general use cases (Including our own for Australian Government organisations, aGov) the real power is when you create a custom distribution specific to your organisation.
With your own custom distribution, you can package up:
- A common theme for consistent branding across all sites
- Standard contributed modules to ensure consistent site-building tools across sites
- Custom modules that integrate with your back end services that can be re-used across all sites, e.g. Single sign-on, shared content repositories, federated search, media asset management.
- Common configuration, such as content types, views, user roles & permissions, publishing workflows
What appears to be a single site hosted under a single domain, can infact be multiple sub-sites. We introduce a routing service to manage directing traffic between the sub-sites based on the incoming request path.
One of the real benefits to using distributions is the flexibility it gives you when hosting. You can easily scale out the various sub-sites independently of each other, allocating more resources to the sites that receive more traffic, or a missing critical such as user registration, or shopping cart checkouts. The sub-sites that don’t require many resources can be grouped together reducing the cost of hosting.
A simplified high-availability architecture for looks like the following:
Using custom distributions, we are able to avoid a single monolithic application architecture, and provide a flexible auto-scaling hosting infrastructure, that still has a common shared code base. This is a direct alternative to proprietary products like Acquia Site Factory.
Before you spend hundreds of thousands of dollars on a hosted multi-site service for your Drupal site, we’d recommend you start by looking at what you can do with custom Drupal distributions and cutting edge cloud services.