What Is ChatOps?
You’re probably hearing the word ChatOps more and more—at conferences, on Reddit and Hacker News, or around the water cooler (or keg). But what does it actually mean? And why and how would you implement it at your organization?
ChatOps, a term widely credited to GitHub, is all about conversation-driven development.While in a chat room, team members type commands that the chatbot is configured to execute through custom scripts and plugins. These can range from code deployments, to security event responses, to team member notifications. By bringing your tools into your conversations and using a chatbot modified to work with key plugins and scripts, teams can automate tasks and collaborate, working better, cheaper and faster—allowing the entire team to collaborate in real time as commands are executed.
Help Your Teams Communicate and Collaborate Better
Let’s break this down a little more. You probably use a chat client at work. HipChat, Slack, Flowdock, and Campfire are some commonly used tools, and if you already have one in place, then you’re on the right path. Then there are the chatbots—and they’re all open source.
- Hubot: GitHub’s bot written in CoffeeScript and Node.js (docs)
- Lita: Written in Ruby
- Err: Written in Python
Though chatbots do the commanding, you sometimes also have deployment servers listening for these commands and doing the heavy lifting of executing deployments tasks as background jobs. With GitHub’s Hubot, the deployment server is called Heaven. Check out how Flowdock recently implemented ChatOps with those tools in their workflow. Similar to how Hubot tells Heaven what to do, PagerDuty’s bot, Officer URL, tells Igor, our deployment server, what to do.
Visibility Across the Board
Everyone has experienced the pain of figuring out whether a particular command was run by a coworker. ChatOps helps bring that work into the foreground by putting all of it in one place—everyone’s actions, notifications, and diagnoses happen in full view. This encourages teams to be transparent. Different plugins can help expose more information to everyone (replacing opaque IP addresses with DNS names and other metadata, for example). Beyond operating more efficiently right from the get-go, it also helps new hires jump right in and learn by doing, and flattens the typical workflows teams use to deploy and diagnose. (Not to mention it makes remote work a whole lot easier.)
It’s also how we at PagerDuty better onboard talent, improve our infrastructure through automation, and—as Jesse Newland at GitHub says—put tools at the center of the conversation.
Employing ChatOps even benefits non-technical teams. By having a central location for chat-based tools, teams like sales, marketing, and finance can understand what’s going on in your infrastructure—for example, when you will be deploying code or when they want to learn who’s responsible for which systems and what they do—without having to walk over and interrupt. They can learn right from the bot itself.
Automate Manual Tasks
Tasks that used to be done manually (and often involved human error) are now automated through the chatbot. You can reduce tedious and error-prone hand-typed SQL statements or put in place proper tests around often-repeated commands. Once a task is in chat, it’s a fast and easy way for other teams to make requests (no more ticket volleyball!). ChatOps can also improve your continuous delivery process. By easily understanding where a deployment started and who started it, you’re able to cut out extra tasks and manual follow-up, and deploy code continuously throughout the day.
How Do I Get Started?
Want to employ ChatOps at your company? Here are some tips.
Pick Your Bot
The three chatbots we listed above—Lita, Hubot, and Err—provide teams with options to best suit their workflow. Different bots have different plugins and development languages ranging from Ruby to Node to Python, so pick the ecosystem that best fits your shop.
Plug It In
Hubot, Lita, and Err offer tons of scripts and plugins each—and your team can easily use any of them today. Check some examples below:
- Lita plugins
- Hubot scripts: GitHub uses /explain to investigate slow MySQL queries.
- For a simple first step, check out lita-dig– a quick DNS record lookup tool.
Start Small and Iterate
There are a lot of powerful ChatOps tools, plugins, and extras available, so it’s probably a good idea to start simple and get experience to find out what works best for your team. Try various bot integrations and scripts in your team chat room, and then stick with the ones you like best. There may be some trial and error—but that’s ok, it’s a part of the process.
The more you get used to coding, executing commands, etc., with your chatbot, the more efficient you’ll become. As your team reaps the benefits of employing ChatOps, other teams—like Front-End, Mobile, and more—will also catch on and implement it on their side. With the technical and non-technical folks participating, you’re developing not only efficient processes, but also a more development-focused culture in your company.
- Beginning a Journey to ChatOps, Ryan Tomlinson
- How ChatOps is Formed, Carol Nichols
- Tales of an Ops Team: Fire in the Hole, Dave Josephsen
- How We Use GitHub’s Hubot and Chat to Drive AWS Deployments at MarkITx, Dylan Lingelbach