Sorry, you need to enable JavaScript to visit this website.
Image of UCL
Photo of Reece

Articles Drupal

By Reece Marsland

4min read

Our recent work with UCL (you can check out an overview here) presented an opportunity to reimagine multisite management at scale, transitioning their complex ecosystem of hundreds Drupal 7 sites to a unified Drupal 10 framework.

A multisite approach was selected in order to accommodate the unique requirements of each UCL department, as well as mitigate the risk of an unwieldy and difficult to maintain single instance that increases the risk of performance bottlenecks.

This article dives into the nitty gritty of how we provided UCL with enhanced control, flexibility and governance over a sprawling Drupal multisite system.

 

Reimagining Multi-Site Management for Scalability and Efficiency

The existing setup featured hundreds of independently managed Drupal 7 sites, each with its own database and deployment processes. This naturally caused inefficiencies, inconsistencies and blockers to the UCL team in achieving the content control they needed. We tackled this through three main innovations:

  • Unified Dashboard: We developed a centralised Drupal 10 dashboard, allowing the team at UCL to manage multiple sites from a single interface. This dashboard facilitates updates, configurations, and site provisioning without requiring additional DevOps resource from our team.
  • Global Taxonomy and Menu Management: By introducing globally managed taxonomies and menus, we eliminated duplication and enhanced consistency across sites. This approach streamlined content tagging and ensured that site navigation was intuitive and cohesive.
  • Entity Share Integration: Using the Entity Share module, we created a seamless content-sharing system between sites, ensuring taxonomy, menus, and alerts would be synchronised effortlessly. This has dramatically simplified the management of shared content, such as university-wide announcements and events.

The Entity Share module was really crucial to this work, allowing us to configure sites as both servers of content and clients consuming the content, enabling content syncing both ways. This flexibility, coupled with REST and JSON API integration, ensured complex dependencies were handled smoothly, streamlining multi-site coordination.

 

Design Systems: Elevating Consistency Across Sites

Design had to be consistent, whilst ensuring flexibility at a department level for unique look and feel. The implementation of a robust design system serves as both a best-practice repository and a centralised template management tool.

Key features include:

  • Template Locking and Cloning: Leveraging the Content Lock module, templates can be cloned but not directly edited, ensuring consistency while allowing localised changes.
  • Storybook Integration: The ‘do’s’ and ‘do not’s’ of design components are embedded directly into the system. Storybook ensures that design intentions are faithfully and accurately represented in the final product.
  • Component-Based Architecture: By adopting a modular approach to design, we created reusable components that are then easily adaptable to different contexts. 

     

     

Modern DevOops practices and enhanced automation

Transitioning to Drupal 10 gave us an opportunity to integrate modern DevOps practices and automation, significantly reducing manual interventions and freeing up UCL time to focus on strategic priorities rather than routine tasks.

  • Automated Site Provisioning: Using JSON-based configurations, our dashboard integrates with AWS to handle site provisioning, database connections, and directory setups with minimal effort. This automation dramatically reduces the time required to launch new sites.
  • Continuous Integration and Deployment (CI/CD): We implemented a robust CI/CD pipeline to streamline development and deployment processes.

     

Conclusion 

Our work with UCL really highlights the potential of Drupal 10 to transform complex digital ecosystems into streamlined, efficient, and user-friendly solutions. Through automating provisioning, migrations, and content sync, our team and UCL were jointly able to prioritise innovation. 

At the heart of this project was providing the UCL team with maximum independence over their solution, building an architecture that would be futureproofed to accommodate further growth at the University. We’re continuing to work with the UCL team in ongoing refinement and development of the estate, and look forward to seeing where this project takes us next.