Uncharted Waters

Jun 16 2017   11:23AM GMT

Thinking About ChatOps

Justin Rohrman Justin Rohrman Profile: Justin Rohrman

Agile development

Nashville is a meetup town, there is a meet up for just about anything you have an interest in. Have a thing for mechanical keyboards? Wt got you covered. Yesterday, I went to a combo meet up that covers testing, automation, and development all together. The theme was something I had heard of once or twice, but didn’t really know anything about, ChatOps.

My initial reaction to the term was “great, more fluff”. But, I kept my word. I attended the meetup, sat quietly and listened, asked a couple of questions, and learned something new.

This will be a lite into to ChatOps for people that were like me and had just heard the term once or twice.

The *Ops suffix seems to be a catch all bucket for automating something. ChatOps is the integration of ops systems like AWS, continuous integration, different shells, docker, and so on into a chat tool, usually Slack. Hubot  (built on Node) and Lita (built in Ruby) seem to be the most popular plugins to create a link between the development team and your infrastructure.

A couple of examples were given during the meetup of how ChatOps is useful — new hire orientation, and interacting with infrastructure.

Wikis are traditionally used in technology companies as a documentation repository. They will store information about how to build and tear down environments, coding standards, and how to authenticate to certain the source code repository. ChatOps tools can act as a sort of question answerer in these cases. Instead of spending an hour searching a wiki, a new employee could invoke the  chatbot help to see possible commands, and then run the command that displays the information they are hunting for. In this case, the information is probably stored and maintained in a code repository like GitHub.


The other example was interacting with infrastructure. One person at the meetup had load testing running nightly in CI, but they also wanted to run it sometimes on demand. Running their load testing on demand required creating a new database and loading data, spinning up a new container, and installing the latest build. No one wanted to perform all of these steps, so load testing never happened outside of the CI schedule. This team created a Lita script that would take care of environment creating, starting the load testing, and when tests were complete the logs were sent back to chat and email. This all happened by running one chat bot command in Slack. This also had a side affect of socializing that information a little. Everyone in that Slack channel could see and act on the results of that test.

ChatOps seems to be a combination information hub, and technology console. Instead of reaching out to continuous integration to check build logs, the wiki for information on creating a database, and the command line for spinning up a new container, everything can be done from Slack.

I have two small concerns about this right now. The first is that it gets harder to find the information you care about when the chat bot is constantly spitting something out. Text is a lossy format, it is easy to lose meaning, to misinterpret something, or to not read it all. I wonder about the ratio of helps communication to causes problems. My other concern is about the slow stealing of skill. If people never SSH into a shell, or log into AWS through a console, or spin up a docker container because the bot always handles that work, then eventually the skill will be lost. This might be OK, maybe people don’t need manual dealings with infrastructure, but it is on my mind.

I am looking forward to seeing how this idea develops over time and how people integrate it into their work life.

 Comment on this Post

There was an error processing your information. Please try again later.
Thanks. We'll let you know when a new response is added.
Send me notifications when other members comment.

Forgot Password

No problem! Submit your e-mail address below. We'll send you an e-mail containing your password.

Your password has been sent to:

Share this item with your network: