Setting up a single website is as easy as pie. But creating
dozens or hundreds of similar websites is more like running
a pie factory. In this session, we’ll talk about techniques for
running multiple, similar websites using the Drupal content
management system.
We’ll walk through the steps for creating a re-usable Drupal
platform for a small university. We’ll also talk about the
challenges and benefits that result from a multi-site setup, and
its impact on content strategy, design, and site architecture.
5. • Design & develop large-scale Drupal websites
• Create flexible search interfaces
• Content import and synchronization
• Integration with external IT systems
• Drupal training for individuals and teams
WHAT WE DO
7. WHY CREATE A RE-USABLE SITE?
• Easier to maintain
• Less work to spin up a new site
• Easier to train everyone
• Best practices are reused by everyone
• Easier to run updates for everyone at once
9. PROCESS TO CREATE A RE-USABLE SITE
• Plan which configuration, themes, and modules will be part of
your standard site
• Plan which parts of the site will be able to change
• Create sample sites with your standard install
• Test & Iterate
• Plan how you’re going to deploy your sites
10. HOW TO RE-USE A DRUPAL SITE
• Copy/paste
• Run a script
• Create an install profile
• Create a distribution
• Set up a multi-site install
11. PLANNING YOUR SITE
• Identify groups of sites (departments,
research groups, administrative groups,
labs, committees)
• Consider making a separate standard
site for each group
• For each group, identify:
• Common look and feel components
(theme)
• Content types and functionality
(configuration)
• Standard modules (modules in sites/
all)
• Identify common deviations:
• Theme variations (theme settings)
• Variable configuration
• Non-standard modules
14. FIXED CONFIGURATION
• Things that are identical for all sites:
• Contexts
• Views
• Content Types
• WYSIWYG profiles
• Permissions
15. FLEXIBLE CONFIGURATION
• Things that admins need to be able to change.
• Set the defaults on install, but then expect them to change
• Block Placement
• Name of the site
• Menu items
• Theme settings
22. CREATING FLEXIBLE CONFIG
• Drupal 7:
• Default config that comes from an install profile, initial
database, or script
• Drupal 8:
• Configuration Management (.yml files)
• Track which configuration should change (modules like
config_split or config_ignore)
23. CREATING FIXED CONFIG
• Drupal 7:
• Features
• Drupal 8:
• Features
• Configuration Management (.yml files)
29. THEME SETTINGS
• You might have some theme settings that you want to set in the install
process:
• Variable colour schemes
• Banner image
• Height of the banner section
• Distinct themes for different use cases
• Background images
• Region placement
30. STYLE GUIDES!
• Style guides for content
• WYSIWYG Editor Format options
• Use the styleguide module to anticipate content needs
33. HOW TO CREATE A BUNCH OF SITES
• Copy/paste
• Run a script (write your own)
• Create an install profile
• Create a distribution (like an install profile)
• Set up a multi-site install
35. INSTALL PROFILE
• Installs modules/themes by default
• Creates sample content
• Set variables
• Allows admins to choose options
• Creates consistent versions of the same site
36. BENEFITS
• Deploying lots of similar websites
• Be able to make changes to them quickly
• Limit the variability between websites
• Make it easier for content editors to get up and running
37. WHERE TO START?
• Look at the minimal/standard install profiles in core
• Your list of modules
• Add custom modules and themes you’ve developed
• Install your theme
• Include the configuration you’ve developed (features or .yml
files)
47. FILE HIERARCHY
/sites/default
The default site that is served if no mapping is
specified
/sites/all
A shared directory that all sites will have access to
/sites/[sitename]
Site-specific files
48. MULTI-SITE PROBLEMS
• Single point-of-failure
• Errors across all sites
• Performance issues across all sites
• Running update.php simultaneously
• Difficult to manage exceptions for unique sites (module and
theme versions)
• Difficult to test prior to upgrading
49. MULTI-SITE BENEFITS
• Easier to upgrade code ONCE
• Don’t have multiple codebases to maintain
• Same documentation for everyone - how to do things
• Easier to share best practices
50. COMPROMISE
• Plan, plan, plan! If everyone is using one base, make it a good
one
• Use multi-site for very similar sites
• Run unique sites separately
• Use a tool to help manage your multi-sites
52. TOOLS FOR SUCCESS
• Gather representative content to test your standard site
• Create a migration to facilitate testing)
• Create a list of sample URLs to test
• Use a tool to track differences between sites when running security updates
• Site Diff: https://github.com/evolvingweb/sitediff
• Create standards
• Content Style Guides
• Design Style Guides
54. UPCOMING DRUPAL TRAININGS
• Content Strategy for Drupal - Online May 3-5
• Drupal 8 Theming - Online - May 8-12
• Introduction to Drupal 8 - Online - May 24-26
• Drupal 8 Module Development - Online - May 29 - June 2
• Drupal Essentials - Atlanta - June 12-13
• Drupal 8 Theming - Atlanta - October 10-11
• Drupal 8 Module Development - Atlanta - October 12-13