University of Kentucky College of Agriculture

Blog

  • Understanding the Platform Stack

    The goal of this project is to build a useful platform for the College's websites, but that term itself is not really self explanatory. In this post, I'm going to break down the layers of what will make up our Drupal platform, from the ground up.

    Hardware

    Rack Server

    The physical machine running our platform is a rack server located in Ag Comm IT's data center.

    Operating Systems

    Host OS: Linux

    The server runs a version of Linux.

    Virtualization Software

    All individual web servers run inside virtual machines.

    Virtual Servers

    Production, Staging, testing, and Aegir all run in their own virtual machines, which run on a LAMP stack (Linux, Apache, MySQL, PHP).

    Drupal Core Layer

    Drupal Core

    Running within php on each VM is one or more versions of the Drupal 7 core, as well as some necessary contrib Drupal modules.

    Drush

    Drush is a command-line php extension to Drupal. It has many uses, and is necessary for the Aegir platform management system.

    Aegir = Provision + Hostmaster

    The Aegir platform management system runs throughout our VMs. Most of its processes happen on the dedicated Aegir 'hub' VM, which runs the Aegir frontend, called Hostmaster. Each web server (production, staging, development, testing) operate as an Aegir 'spoke', and include only Provision, the backend component of Aegir. As you may guess, Provision's primary task is to provision sites from the hub to the individual spokes.

    Drupal Implementation

    Base Drupal Distribution

    This is a common set of additional modules, features, and other resources (beyond the Drupal core) developed externally. Choosing a good base distribution is important, because it will save a significant amount of development time, but also commits the platform to an external team's development path.

    We have tentatively selected the Panopoly base distribution for the CoA platform. Panopoly focuses on using Drupal Panels for layout, which will give us alot of flexibility to allow customization while still enforcing some layout standards. It also provides a very cool drag and drop interface for placing widgets or 'panes' into each page's layout.

    Base Drupal Theme

    Similar to the distribution, a base theme will save considerable time in development, and provide us with updates from an externally managed development path. Our priority in selecting a base theme is responsive design: the theme must use modern CSS & other browser capabilities to adapt site content for a range of devices.

    Panopoly comes with some responsive design, but we are also considering using the Omega theme, since it is a dedicated responsive theme. That choice will be determined by Omega's compatibility with Panopoly.

     

    College-Specific Development

    College Features

    Drupal Features allow us to bundle related sets of configuration, content types, and resources into modules. These standard feature modules will be deployed with every site on the platform.

    College Installation Profiles

    Drupal features let us pre-configure a site as it is created. This will include settings like LDAP (LinkBlue) authentication, and potentially user access. Different types of sites may use different installation profiles.

    Individual Drupal Sites