Quick Interview #4: Cog + ChatOps at Kickstarter

3 min read Original article ↗

Press enter or click to view image in full size

Rail bridge in Durham, NC across the street from the OG “Bull Durham” ball park.

Shelton Davis

Engineers were running commands on their laptops, or clicking around a web UI without a lot of transparency or context about who was doing what. Coordinating with the rest of the team was an extra step or afterthought. — Aaron Suggs Operations Engineering Manager at Kickstarter

If uncoordinated action happens within a small team, it can be manageable. Throw in a larger team, remote working, time zones, security needs, and differing experience levels into the mix, and coordination becomes essential, yet extremely difficult to realize. This is where Cog can help — it allows you to start securely coordinating your workflows in chat, providing much-needed transparency to your entire team.

(Operations Engineering Manager at Kickstarter) and Kyle Burckhard (Senior Operations Engineer) are ahead of the DevOps + ChatOps curve. They have lots of custom automation already in place, and were evaluating several different ChatOps platforms when Operable approached them with a proposition: let’s take a look at which of your current workflows are causing you the most pain and see if we can come up with a set of commands for Cog that can help make a better experience for your team.

They were game, and so Aaron and his team worked with

and of Operable to tackle their thorny CloudFormation management workflow with Cog.

How did you interact with CloudFormation / ec2 / AWS prior to Cog?

We have a few homegrown tools like cfn-flow and Hivequeen that were our opinionated way of doing things. I never felt like we got it quite right; and they were kind of stop-gaps until better abstractions and more robust OSS tools came out.

Engineers were running commands on their laptops, or clicking around a web UI without a lot of transparency or context about who was doing what. Coordinating with the rest of the team was an extra step or afterthought.

How has the Cog integration improved that interaction?

Cog is a significant improvement in a couple ways. It gives us transparency and auditability to see who did what when and why. Our chat history became a natural teaching tool to document how we manage our infrastructure day-to-day.

Cog’s composable pipeline architecture is a big improvement over the more imperative, special-purpose scripts I’ve made in the past.

Take the Cog aws-cfn bundle for instance. My colleague Kyle Burckhard was able to implement our custom business logic and workflow as a few lines of Ruby code and Cog aliases. The heavy lifting is done by Cog and the general-purpose aws-cfn bundle. Cog’s composable pipelines let us elegantly encapsulate & easily test our CloudFormation workflow.

Press enter or click to view image in full size

Aaron using Cog to launch a new development server via CloudFormation.

What do you want to do with Cog in the future?

Oh, there are big plans, Shelton. :-) Short term, we’re building out new services as Docker containers in ECS; we’ll use Cog to deploy those services. We’re thinking about how we could use Cog to run arbitrary commands across groups of services with something like Rundeck or AWS SSM Service.

And we think of a new easy-win each week, like using Cog to manage our status page, or let engineers more easily interact with our CI service.

Get Shelton Davis’s stories in your inbox

Join Medium for free to get updates from this writer.

The big picture plan is for Cog to elevate the Kickstarter engineering team’s happiness & productivity by making complex tasks simple, safe, and easy.