Managing Drupal as a Service - 800 Sites and Growing
At DrupalCon Denver, several members of the University of Colorado Boulder web team presented about CU-Boulder's Journey into Drupal. In the years that followed Drupal use grew from building and hosting a few dozen custom sites, to developing an install profile we used to start every site, to launching more than 800 sites as a free service we host ourselves and offer to any college, department, or student group.
We do this with a staff of 6. The ratio of over 100 sites per staff member isn't unheard of, but we continue to offer custom development, training, and support... while still finding the time to share code, volunteer in various Drupal related activities.
We are on track to scale to 1200 sites by the end of 2016, and start the D8 migration in June working closely with the other web teams working within the University of Colorado system.
This presentation will provide an overview of the tools and approach to Drupal we use to run Drupal as a service for the University of Colorado Boulder.
-
Atlas - Our site manager. Atlas is a lightweight Python Eve/Celery/Fabric based solution. At the most basic level, Atlas provides a list of sites we can loop through to execute Drush commands when applying updates. It also tracks the status of a site from creation to deletion and monitors site stats and health.
-
DSLM - Our answer to Drupal's Multisite... single code base with benefits like rolling updates and improved security over traditional Drupal Multisites.
-
Express Install Profile - We attribute our success to a combination of our approach to Drupal, the contrib code we've used, the contrib code we've avoided, and what we've written ourselves.
-
Profile Tools - Profile Status Check, Profile Module Manager to migrate, maintain and manage sites
-
Our Staff - 2 senior devs, 1 senior ui/ux/themer, 1 jr. dev, 1 support, and 1 trainer (+1 manager, 2 information architects, and network and stack support from OIT).
-
Our Approach - Walking the line between permissions and problems. More permission = more problems. Too little permission and groups used a different solution.
-
Our Sites - This is where it all comes together. The Express install profile is used for everything from http://www.colorado.edu/ to a student group. Every site starts as Express Core. Additional modules are enabled by the site owners in Module Bundles. For "special snowflakes", Poros defines additional packages DSLM adds for just that site as Express+.