Continuing on from Part One, where I discuss the far-ranging benefits of continuous deployment, today I'll cover off another large part of the 'what do I do as a sysadmin' question: that being, config management.
I hear this question a lot - both from non-technical folk, as well as agencies who know they are 'missing something' in their approach to deploying, securing and scaling applications, but aren't sure if a sysadmin will solve it. 'What is it that you (a sysadmin) actually does (e.g the day-to-day, or in general)?'
This time two years ago, I wrote an article called Drupal deployment and workflows with version control, Drush Make and Aegir. It remains my most popular article on my site, according to my stats.
During a rather boring conference a few weeks back, I decided to convert my own infrastructure from 'standalone puppet' (that is, a set of standalone puppet manifests that were executed by a basic shell script on each server I managed) to the 'client -> server' or 'puppetmaster' model (whereby a central puppet daemon controls the manifests, and servers connect to it for updates as 'clients'.)
You can read more about the different models here.
I've recently been doing some very innovative work for the very clever gents at Code Enigma, where I've been working on some interesting projects:
1. an automated 'zero-touch' dev/stage/live deployment system for their enterprise Drupal applications (developers no longer need to ssh in to servers to do deployments)
2. automatic 'one-touch' provisioning and configuration of new hosting cloud services.
(More on the dev/stage/live zero-touch deployment soon :) )
In the long term, what we have in mind is providing a proper testing suite for the developers and testers in the company to use. But to get to grips with the software and what it's capable of doing, he came up with a great idea: transition our routine cron tasks into Jenkins 'builds'.
Aegir is a pretty powerful tool that allows you to very quickly provision new Drupal sites out of the box and manage them throughout their lifespan through a variety of tasks.
Its ability to understand different install profiles and thus 'distributions' shoots the awesome factor through the roof once you can deploy instances of OpenAtrium, Pressflow, ManagingNews or your own custom distro in just a couple of clicks.
I did a screencast on how you can use Drush Make to generate 'builds' based on Drupal core, with optional components such as install profiles + module/theme/library dependencies. The example given is the Managing News news aggregation system.
I then show how you can add the build as a Platform in Aegir, and rapidly provision sites on it in a multisite structure.