Quit Tinkering and Automate Already

thrnio

You’ve probably heard of this “configuration management” thing before. Maybe you’ve even played around with Puppet, Chef, or Ansible. At the end of the day, though, you were probably thinking “Sure, that’s cool, but now I need to write code to manage my deployment? I don’t change that stuff very often, so what’s the point?” Totally reasonable response.

I will show you some of the cool, practical things we at Puppet Labs do to manage our Drupal websites on AWS using Puppet and related tooling, including:

  • managing PHP, nginx, and HAProxy

  • managing Amazon Relational Database Service (RDS)

  • managing shared files directory

  • creating, destroying, and scaling AWS instances

  • automatic service discovery (e.g., connecting webservers to databases and load balancers)

  • performance tuning

  • Puppet-manageable settings.php

  • automatic deploys

  • easy and reproducible staging and dev instances

All these small, individual niceties add up to a world where we don’t have to worry about the details about whether the server is configured properly, if I forgot a step in the deployment, if we can restore the site if something goes wrong, or whether the code we’re writing is going to break the site. Instead, we can stop tinkering, move on, and just do our job.

I will also cover why we made some of the decisions we did and how they keep everything stable, including how we managed to perform an emergency site migration to a completely different hosting provider when ours had a problem… and how we did it in under an hour.

This talk assumes you are familiar with deploying and managing Drupal on Linux. You don’t need any experience with Puppet or other configuration management software.

Session Track

DevOps

Experience Level

Intermediate

Drupal Version