Initial Thoughts on AWS OpsWorks: DevOps Automation from Amazon

It seems that every week or so I wake up and scan my inbox from my phone to find an email that starts, “Announcing AWS…” and then read about something new from Amazon that is going to change the way we do our work. This morning that email was about AWS OpsWorks.

The service was only released a few hours ago, so I don’t have much direct experience with it (yet), but Jeff Barr and Werner Vogels do a great job of covering what it is, how it works, and where it fits for AWS customers. Briefly, it allows you to create stacks of applications, described with some Amazon mojo and Chef recipes. You can use this to create application environments with AWS components. It handles a lot of things for you such as making sure Elastic IPs and EBS volumes stick with the instances you launch and handles automated deployment from source code repositories like Git or SVN. All in all, pretty cool stuff.

I’m especially excited about it’s ability to allow SSH logins via IAM users and the flexibility it adds over CloudFormation by allowing you to customize instances with Chef.

I like Werner’s picture of where OpsWorks fits, I’ll steal it and post it here:

AWS App Services Comparison

At Control Group, we try to deploy applications using tools as far to the left on this graph as possible. After all, our clients are paying for us to solve the hard problems, not recreate functionality that you can get off the shelf. When we get to something that requires a bit more finesse, we implement solutions on the “Do it yourself” side of the spectrum where we have a proven combination of tools (CloudFormation, Puppet, Python, Chef, etc), DevOps practices (test driven development, continuous integration, etc), and a talented team of DevOps engineers.

OpsWorks is a great addition to the AWS portfolio, and I can’t wait to use it. Amazon releases features early, before all the functionality is built out. That’s okay because they listen to their customers and implement features that people ask for. So if someone from AWS is reading,┬áhere’s the things I’d like to see in it in the future:

  • Support for Elastic Load Balancing in addition to HAProxy based load balancing
  • A clearer path to RDS integration (seems possible, but it’d be nice if OpsWorks could manage my RDS instances for me)
  • VPC support
  • Windows support
  • Multi-region support

I’m sure those things are going to happen and in the meantime I know we will launch a few OpsWorks stacks. We’ve been using AWS since the beginning, and it’s amazing to see how far it’s come. AWS has transformed our practice and I can’t wait to see what they release next!