Home | drupal-aegir-higher-education

Aegir in Academia - The Solution for "Too Much Drupal"

The Drupal content management system (CMS) has become a campus favorite over the last decade for many universities across the world. From the Ivy Leagues of YaleHarvard, and Princeton, to the public universities of ASU and Oregon State, and across the waters to the Hebrew University of Jerusalem and the University of Athens, Drupal is everywhere. And why wouldn’t it be? Drupal is an ideal platform to help higher education institutions organize, manage, and publish content, as well as providing the framework for building custom web applications.

 

 

THE PROBLEM

This article isn’t meant to convince you that you need to be using Drupal at your institution. Since you’re reading this article we can assume we’d be preaching to the choir. The problem that so many campuses are facing now is: how do we control the explosion of Drupal popularity at the institution? With Drupal often being adopted as the go-to web development solution for colleges, departments, student groups, research labs, and more, the campus IT group can quickly find themselves providing support for dozens, even hundreds, of Drupal websites. Or worse, there is no central IT group providing support, and the English, Biology, and Music departments are responsible for maintaining their own Drupal instances. As vulnerabilities are discovered and security updates are released, how can an institution possibly hope to update all their sites and keep their users, content, and networks safe?

 

THE SOLUTION

We won’t claim that there is one silver bullet to solve the problem of “too much Drupal”. However, there are a couple great options to make the management of so many sites, well, manageable. First, you can look to one of the many competent Drupal hosting companies, like Pantheon or Acquia, to host all of your Drupal sites. Or... you can turn to the Drupal community to solve the problem for you. Our focus in this article is the latter, a set of Drupal modules called Aegir, although we’ll address the externally hosted option as well.  

 

Aegir is a powerful open source hosting system that creates, deploys, and manages Drupal sites. Essentially, Aegir works as one Drupal site to manage all others. Once Aegir is installed, you can set up a new Drupal site in just a few clicks. Aegir creates the web server's site configuration files, the site's database, runs the Drupal installation process, and reloads the relevant services, all automatically.  

 

THE BENEFITS OF AEGIR

Platforms

Perhaps the greatest benefit from Aegir is a centralized location for managing your Drupal code. Aegir allows you to define platforms, then create your sites within those platforms. Each platform represents a Drupal code base. For example, you may create a platform called Drupal 7 - student groups. For this platform you would most likely run Drupal 7, based on the name. And since the sites on this platform will be for students, you may install many of Drupal’s community-building modules, like forums, calendar, user points, share, etc. Each site now created within the Drupal 7 - student groups platform will have these features available to them.  And each site within the platform will be built on our single Drupal 7 instance using a feature commonly referred to as multi-site, which is not unique to Aegir.

Next you may create a platform called Drupal 7 - departments. Since this platform will likely be used for department websites, again based on the name, we may choose to install the OpenAcademy distribution rather than the vanilla Drupal installation. And again, each site created on this platform will run from a single Drupal codebase, and will share modules, themes, and libraries.

 

The Migration Automated Tasks

  • The site is placed into maintenance or 'site offline mode' as a precaution. Safety first!

  • A 'backup' task is implied silently. Still safety first!

  • Various metadata regarding the site is updated

  • If we are moving to a new platform, the backup that was made earlier is used in a silent 'provision-deploy' command, which essentially unpacks the tarball into the target platform and creates a new database and database user for the site, importing the database dump that was made in the backup

  • The deploy task above invokes drush updatedb, effectively upgrading the site by calling all hook_update() functions

  • Various bits and pieces are fixed up, such as paths to files in the 'files' table of the database

  • Caches are cleared

  • A verify task is ran, settings.php and apache vhost are updated to reflect the new path (new platform) and new database credentials, site gets brought back out of maintenance mode

  • If all went well and nothing has fatally errored here, we remove the old copy of the site from the previous platform

Upgrades & Updates

A central location for all websites is great, but it doesn’t really address many of the challenges of supporting a plethora of Drupal sites. So let’s look at some of the workflows using Aegir that can truly help.  First, let’s assume we have Aegir set up with the two platforms mentioned above, and we’ve created 50 sites per platform. Since each platform is running on a single Drupal codebase, you’ve already managed to simplify your life considerably, since you now only have two Drupal instances to manage, rather than 100.

Now let’s say a serious security flaw was found in Drupal yesterday, and today the security fix is released. With Aegir this upgrade process is a simple click of the button, and is called migration. Migration is the process of moving a site from one platform to another. So to upgrade our 100 sites to the latest secure version of Drupal we will want to first create new platforms for the new Drupal release. We’ll call these Drupal 7 - departments - latest and Drupal 7 - student groups - latest.

The next step in migration involves getting the latest Drupal code for our new platforms.  We will do this using Drush, often described as the Drupal Swiss Army Knife. If you aren’t familiar with Drush yet, STOP READING and install it NOW! Okay, that might be a little brash, but Aegir relies heavily on Drush, and so should you. With that said, let’s get back to our migration. Once you’ve created a platform with the latest Drupal code, the next step is simply to click the Migrate Run button for each site, and the migration process will be queued in Aegir’s task queue. Aegir will let you know if any errors occurred in the migration, and will automatically roll back if errors did occur. And with that, your security patching and upgrading just got a whole lot easier.

 

Other Development Tools

Along with the migration feature, Aegir also comes with a handful of other tools to simplify the more menial tasks of development. Rather than diving into each feature, a simple list with a brief description will have to do:

  • Site Clone: Cloning a site is identical to migration, except that we keep the original intact and copy the site with a new name. This can be very helpful for testing how a new module will work on an existing site, or perhaps how a theme change will look without affecting the live site.

  • Scheduled Tasks: Aegir also offers scheduled tasks for backups, cleaning up logs, or any other tasks you might need done on a regular basis.

  • Git Integration: With the use of Git, Drush and Drush Make files, Aegir can simplify your Drupal deployment workflow. (see this article for more detail)

  • Multiple Servers: Aegir allows for multiple web and database servers to be managed all within the Aegir interface. This gives you the latitude to tailor your hosting architecture to your own needs.

 

Access Levels

One challenge faced by many campus IT groups is the difficulty of providing enough access, but not too much access, to varying roles across the institution. A department webmaster may want complete control over the management of their department website, or student groups may need the ability to provision their own websites on demand. This can be handled in Aegir through the Clients functionality. Clients can be created with a list of allowed users, then the client is granted access to specific sites or platforms. Additionally, Aegir comes with different roles for different types of users: Aegir administrator, Aegir platform manager, Aegir Account Manager, or Aegir Client.

 

Flexibility

Finally, perhaps the greatest benefit of using Aegir to manage your Drupal hosting is that it’s all written in Drupal, so you have complete flexibility to customize and extend the existing Aegir functionality to behave exactly as you’d like it to. With dozens of contributed modules on Drupal.org already out there for Aegir, it’s easy to add e-commerce, Varnish controls, site expiration, and more.

 

CHALLENGES

As I mentioned earlier, Aegir isn’t the silver bullet for Drupal hosting. So in an effort to be fair, let’s cover some of the challenges of using Aegir.

 

Setup

While the Aegir community has done its best to make installation and setup as easy as possible with an automated script, Aegir setup is still definitely a barrier for many who may not be comfortable around the Linux command line. Aegir requires a high level of control over your server to modify Apache files, create databases, and manage domains. It will conflict with any third party control panels, such as Plesk or cPanel.

 

Server Maintenance

This may be stating the obvious, but to use Aegir you to have your own Linux servers. For most campuses this is not a big deal, as most have dedicated sys admins who already support Linux.  But there may be a few who would prefer to leave the server administration to someone else. If the thought of configuring and maintaining a Linux web server with a LAMP or LEMP stack is frightening, Aegir may not be for you. (see alternatives listed below)  

 

Platform Fragmentation

One of the biggest complaints of Aegir is an intrinsic limitation of the platform model: fragmentation.  If your sites all vary significantly in code or configuration, you may end up with a different platform for every site.  And while that will still work with Aegir, the overhead of Aegir may no longer make sense.

 

ALTERNATIVES

If any of these limitations of Aegir are enough to keep you away, it’s time to consider your alternatives.

 

Pantheon One

Perhaps the best answer to alleviate the stresses of Drupal overload is just letting someone else host your Drupal sites for you. And while there are plenty of Drupal hosting providers, we at Unicon turn to Pantheon for hosting most of the sites we develop (Disclosure: we are a Pantheon Agency Partner). If you have the budget and ability to use a third-party hosting platform, this is an excellent option. Pantheon runs each site individually, without the use of multi-site. But the Pantheon One workflow uses Git upstream to allow for any number of sites to run off a common codebase, which solves many of the issues being solved by Aegir(see this case study with Arizona State University).  However, one drawback of Pantheon, or any hosted provider, is the lack of flexibility. As slick as the Pantheon tools and workflow are, you are stuck with them exactly as they are, for better or for worse.

 

Hybrid

If you like the idea of the Aegir system, but the thought of a script rewriting your Apache files makes you break out into hives, you may be best off rolling your own hosting system. In most circumstances this option doesn’t make sense, but there may be limitations at your institution that give you no choice (Windows servers, for example). The key to building your own is utilizing the common tools that make Aegir work, like Drush, Drupal core’s multi-site, and the backup and migrate module.

 

HIGHER EDUCATION INSTITUTIONS USING AEGIR

Here are just a few universities using Aegir on their campus:

  • Ohio State University

  • George Washington University

  • College of Life Sciences, University of Dundee, Dundee, Scotland

  • University of Science and Arts of Oklahoma

  • University of Oregon

  • SHANTI, University of Virginia

  • Oregon State University

  • Aix-Marseille Université

  • Washington State University Vancouver

  • Western Washington University

  • University of British Columbia - UBC Web Services

 

HOW UNICON CAN HELP

Over the past 20+ years Unicon has positioned itself as an expert in higher education software.  Unicon provides Aegir and Drupal consulting services focused around helping organizations and institutions define, design, develop, deploy, and support their Drupal-based initiatives.

 

Unicon helps organizations and institutions:

  • Define the requirements, strategy, architecture, design, user experience, and approach for building and supporting a large number of Drupal sites

  • Build a new site or enterprise application on Drupal using Drupal best practices

  • Migrate existing websites (and content) or enterprise application into Aegir

  • Create custom modules to deliver the functionality required by the organization or institution, including integrating Drupal with existing legacy applications and content

  • Deploy, host, and support enterprise-class Drupal websites and enterprise applications

  • Train internal staff on Drupal and Aegir

Tags: 
Drupal
Aegir
higher education
multi-site
Return to the blog listing page