This is a guest post written and contributed by Josh Koenig, co-founder and evangelist for Pantheon, an all-in-one Drupal platform and a Rackspace partner.
The following is based on a true story. All names have been changed to protect the innocent.
We were hanging out one evening with some friends who work at a start-up in the Bay Area. They were baby-sitting a deployment - a new section of their website was going live, and it was a big deal for their particular efforts at the start-up. They run an open source CMS, and for infrastructure they manage a collection of their own cloud instances by hand. Not an uncommon combination.
You can probably guess what happened. Everything was going along swimmingly until suddenly it wasn't. The deployment script stopped cold and the whole site went down. Something was wrong.
Confusion reigned for over an hour until the CTO got into the company's IRC channel and the sysadmin was alerted. The problem was eventually resolved, but only after close to two hours and with a lot of stressed out team members.
This is an all-too-common and unfortunate story. There are two big-picture problems here, leading to one extremely negative outcome.
- Problem 1: You probably don’t deploy all that often. It’s hard to be very good at something you don’t do frequently.
- Problem 2: Expertise is at a premium in your organization, you can’t have your DevOps resources on standby every time you want to push a change to the website.
So what's the outcome of this? Deployment becomes stressful and scary.
Of all the expertise you could nurture, build, grow or hire in-house, it's unlikely that web CMS infrastructure/DevOps is very high on the list. But if you're not set up to deploy frequently, and without the help of automation, you're going to eventually face some ugly challenges when something goes sideways.
The real tragedy here isn’t that you might end up offline for a few minutes. Downtime is a tactical problem that usually has a quick solution, but when organizations become gun-shy about pushing changes, then that constitutes an existential risk. There are all kinds of anti-patterns that develop around this (“We deploy at 2 a.m. on Sundays!”), but the worst outcome from these white-knuckle experiences is that people stop wanting to improve the website.
Once you're afraid and stressed about your ability to deploy updates and changes, your site is going to start feeling dried out, stale. It's going to fall behind. You'll end up frozen in time, unresponsive, lagging your competition. You're going to lose customers, miss opportunities and your online value is going to evaporate.
At Pantheon, a Rackspace partner, we deploy several times a day — that’s how nimble we need to be in order to deliver our value to customers. Developers on the Pantheon platform deploy thousands of times per week to their sites. We’re constantly deploying, and we’re very, very good at it.
We're proud of our infrastructure, and we're excited to be able to pass along this kind of world-class DevOps capability as part of our software to our customers. Deploying on Pantheon is safe and easy to do, and we're happy to see developers embracing the agility of a next-generation platform.
As the web continues to evolve, that's the kind of quickness, confidence and courage you need to stay on the cutting edge. Homebrew scripts and FTP can only get you so far. At some point, you have to level up.