Features 101 - A beginners guide to configuration management
11 FebStuart Clark
I’ve been working with Drupal for nearly 8 years now and I’ve worked on a lot of sites over the years. One of the earliest, memorable sites I worked on was a large community content driven site, which introduced me to the issues of “Deployment” and “Configuration Management”, although I didn’t know them by those names at that time, all I knew was this; making configuration changes to a production site without losing data can be a pain in the butt.
And the reason that was was that I, like many others, was up to that point using a simple yet dangerous deployment strategy, I was developing my new functionality/configuration on a local development site and then replacing the production database with the local version. And while that approach may work in a lot of cases, if there is any content being created or important data being collected in the production database, then you’re going to have a bad time.
However, I was thrown into this issue headfirst, and I came up with a better approach that worked for me… running the production and local database throw a diff/merge application.
I never wish that process upon anyone, it was slow and painful. Don’t get me wrong, it worked, and I learnt a lot about the Drupal 6 database structure from that experience… but it’s not an advisable approach.
Later in my Drupal career, during a community driven collaborative site build, while dealing with the similar problem of having multiple developers wanting to make configuration changes without stepping on each others toes, I was introduced to Features. At this time, I was using a hook_update_N() based approach for deployment, and Features didn’t appear to me at first as being all that necessary… how wrong I was.
To this day, I could not consider building a site without Features, and over the years at Drupal meet ups and events I have repeatedly said that someone really needs to do an introductory type talk on Features, it’s always somewhat assumed that people should be used or mentioned as an aside, and yet so often I find that so many out there don’t see the need for it. This year at, Drupal South 2014, I decided to take my own advice.
The presentation
I will be presenting (or have already presented) “Features 101: A beginners guide to Configuration Management” at DrupalSouth 2014 on Saturday the 15th at 12:30pm (room TBA). The talk will be posted (if possible) here (or has already been), but come see me in person if you’re attending.
Following along
The following distribution was made specifically for the talk, so if you’d like to follow along and learn how to use Features yourself you can build your own copy using Drush with the following command:
drush make https://raw.github.com/Realityloop/Features101/7.x-1.x/stub.make features101
Once built, install as per a standard Drupal site.
The tutorial
Time permitting, a tutorial-esque version of the talk will be posted here, but no spoilers up front :)
drupal planetdrupalpresentationfeatures