University CLS School of Research Divisions / Centres / Units (x13) Labs (~85) School of Teaching Support Services Specialised Scientific Services (~ 16) Administrative & Technical Support Affiliated Sites (e.g. Postdoc, PiCLS, Impact, etc) CASE CASS CMDN
University CLS School of Research Divisions / Centres / Units (x13) Labs (~85) School of Teaching Support Services Specialised Scientific Services (~ 16) Administrative & Technical Support Affiliated Sites (e.g. Postdoc, PiCLS, Impact, etc) CASE CASS CMDN 130+ DISTINCT SECTIONS
Central Content Store CLS Site School Site Div Site Lab Site Content Repos Events News Publications (Managed in Pure) Profiles (via Staff DB) Vacancies Awards Other (Contact Info, Directions, Dundee Uni / City info) Taxonomy Unit Subject
Our Approach • The problem • 1 size doesn’t fit all • Best tool doesn’t necessarily scale • Our solution • Standardise on a versatile platform (Drupal) • Instance per project • The Benefits • No danger of new functionality or upgrades breaking existing sites • Users can have as much freedom or restriction as they wish. • Agility • Drawbacks • Lots of individual sites to maintain • Content Sharing
Streamline Your Workflow – Drush Make • Build Drupal sites on the fly • From predefined list of modules, themes, libraries • Patches Too! Create Site drush make mysite.make Create Make File from existing site drush make-generate mysite.make
1. Detect When Upgrades are Available • Core Update module • Checks status of Core/Modules/Themes • Custom module – Update Trigger Build • http://drupal.org/project/update_trigger_build • Detects when updates are available • Tells Jenkins to build a new Drupal platform
2. Build a New Drupal Platform • Continuous Integration Build Server • Listen for build requests • Initiate the build • Allows us to automate building Drupal platforms • Can detect build success/failures
2. Build a New Drupal Platform • XML based build scripting language • Build Drupal platform on the fly • Runs Aegir Drush commands to create a Platform • Phing Drush Task (https://www.drupal.org/project/phingdrushtask)