I wrote A First Timer's Guide to DrupalCon two years ago, and 99% of the advice in that post is still relevant. I've been preparing my presentation DevOps for Humans: Ansible for Drupal Deployment Victory! for a few months now, and since DrupalCon is less than a week away, I thought I'd take a few minutes to supplement the earlier post:
Jeff Geerling's blog
Ansible is used to manage most of Midwestern Mac's infrastructure and deployments, and while it's extremely easy to use, there are a couple situations where a project just needs a little code to be updated across two or more servers, from a central Git repository, or from one master application server.
All Git repositories include a
hooks folder, which contains sample git hook scripts. Inside this folder are a series of sample hook files like
pre-rebase.sample. If you add a shell script of the same name as any of these files (excluding the
.sample) to this folder, Git will run the script when the particular action runs (e.g. git will run a
post-commit script after a commit).
Instead of deploying a codebase to multiple servers by copying it manually via SFTP or rsync, or by logging into the servers and pulling down changes from a remote Git server, you can add a
post-receive script in the hooks folder of your main git remote repository, and have it synchronize the codebase with one or more remote servers:
In the presentation, I'll basically be covering how Server Check.in uses Drupal and Node.js to deliver a simple, fast, and stable server monitoring service. During the course of the presentation, I'll touch on why and how Server Check.in was built, how Ansible is used to maintain the infrastructure, and the effectiveness of lightweight marketing, blogging, and 'low end box' servers.
Join me and many JS developers in St. Louis on May 15, and after the presentation, we'll hack on some of the things mentioned in the presentation!
I'm also hard at work on my DevOps for Humans: Ansible for Drupal Deployment Victory! presentation, which I'll be giving at DrupalCon Austin 2014. I hope to see you there! (Slides from both presentations will be posted online after the respective events).
One one small LEMP VPS I manage, I noticed munin graphs that showed anywhere between 5-50 MB/second of disk IO. Since the VM has an SSD instead of traditional spinning hard drive, performance wasn't too bad, but all that disk I/O definitely slowed things down.
I wanted to figure out what was the source of all the disk I/O, so I used the following techniques to narrow down the culprit (spoilers: it was MySQL, which was using some swap space because it was tuned to use a little too much memory).
First up was
iotop, a handy top-like utility for monitoring disk IO in real-time. Install it via yum or apt, then run it with the command
sudo iotop -ao to see an aggregated summary of disk IO over the course of the utility's run. I let it sit for a few minutes, then checked back in to find:
Drupal 8 brings a lot of changes. Many standby contributed modules are now included with Drupal Core, and many small changes add up to the most exciting Drupal release yet! This presentation guides you through many of the biggest changes, highlighting how Drupal 8 will accelerate your web development and provide tools to make Drupal the best content management platform on any device.
View the slideshow below, or follow the links at the bottom of the post to view the full presentation and video.
Links for full slideshow/video:
This week, the DrupalCon Austin sessions have been posted, and I'm thrilled to have one of my session submissions (in the DevOps track) selected: DevOps for Humans: Ansible for Drupal Deployment Victory!.
The session will go over how Ansible can be used to realize faster, easier, and more successful Drupal deployments, as well as Ansible's ability to make sure that every environment is 'like production', so you don't ever have surprises when you deploy code to its final destination.
If you're interested in building a DevOps culture for your company or consultancy, or if you're already using tools like Puppet or Chef, and want to see what Ansible might offer (YAML and Twig-like template syntax (Jinja2), for starters—just like Drupal 8!), please join me for the session at DrupalCon. The session will cover some of the material I'm writing about in my book-in-progress, Ansible for DevOps.