BOA Server

From TransitionWiki
Jump to: navigation, search

The Transition Network new server uses BOA to host, serve and manage its Drupal websites.

Background

About BOA (Barracuda, Octopus, Aegir)

  • Barracuda is a NginX, MySQL and Redis based Debian/Ubuntu Linux congfiguration focused on delivering fast Drupal web serving using Aegir -- http://drupal.org/project/barracuda
  • Octopus helps manage Drupal sites of clients and their users by sharing resources, but maintains secure and clean management of platforms (see below) -- http://drupal.org/project/barracuda
  • Aegir is a Drupal-based management system for deploying, maintaining, cloning and managing Drupal websites -- http://www.aegirproject.org/

Key features of Aegir

For full documentation for Aegir, please review the Aegir Project Community Documentation.

  • A Platform is the codebase of a Drupal site, sites. Drupal has a 'multisite' feature so multiple web sites can share a common platform of modules, themes and other code used to manage content and appearance. If you make a change to the platform (e.g. update a module, change a theme etc.) all sites based on the platform are immediately updated. Each site has its own database and file system that can be tailored to the specific needs of the site.
  • An installation Profile allows a site to be set up on a platform quickly and in a certain way. Platforms can have one or more profiles which allows you create different sites based on your choice of platform and profile.
  • A Makefile tells the Drush Make command what version of Drupal core, modules, themes, libraries to download (or get from version control), patch, and combine to build a platform.

The Transition Network Aegir platform

Where is all our Drupal code?

All our Drupal code lives on GitHub, and is generally from one of 3 sources:

  • The Transition Network account contains the bulk of the custom themes and modules used by the Transition Network websites.
  • Omega8cc has a customised version of Pressflow (a performance-enhanced version of Drupal 6) for use with BOA. It also brings some extra modules that are added to each platform and auto-enabled on each site. See http://omega8.cc/supported-enabled-disabled-a-complete-list-150 for the full list.
  • i-JK is Jim Kirkpatrick's GitHub account, and it contains a few exta modules plus the obsolete old repository.
  • YOUR GITHUB ACCOUNT HERE! If you're developing for Transition Network and you include your own code then add your details here. Normally though, work is done for Transition Network, and therefore code belongs in the main TN.org repostiories.

The sites running on the Transition Network's platform

Drupal 6

The makefile and related code is available in the Transition Network Drupal 6 repository.

Developing & maintaining Drupal websites for Transition Network

Transition Network uses the standard Development -> Staging -> Production environments. It should be noted that you should develop your code locally ideally, and only commit the changes to the repository when you are happy they are ready for testing or Drupal UI-based configuration.

Platform environments

Production (PROD)

This platform is for tested, signed off code only. All 'live' sites run on this platform, and all module updates must be done by using the Aegir 'Migrate' command to a new version of the platform that is built and tested, not by manually downloading individual files/modules.

It is possible that urgent fixes from STG or patches might need to be applied in PROD without needing a new platform to be created. This is fine provided the codebase and makefile is updated accordingly -- AND the changes are tested first!

Staging (STG)

All testing done in here prior to going to PROD, as are the tests of module and Drupal core updates.

This platform will have a recent-ish copy of the Production sites and a complete set of the files for those sites from PROD at the time it was cloned. Updates to this platform can be done directly in code, provided they are feature complete and ready for testing. All in-Drupal configuration that will go to PROD one day should be packaged and exported via Features to the codebase, ready to go to PROD.

It is quite possible to have multiple copies of the same sites on this platform, if several things are being worked on at once, or a major change is underway. This allows several types of development to be tested and reviewed simultaneously.

Development (DEV, optional)

NOTE: There is not presently a need for the Development environment on the server, since it is much preferred that all work is done on a developer's machine and committed to the appropriate GitHub

This platform can have code in any state on it, and the sites here can be created and dropped as needed. These sites should not have the full set of files from PROD, nor do they need the full set of data and content.

Further information, workflows and how-tos