Nmedia - Fotolia
- Alex Barrett, Modern Infrastructure Editor-in-Chief
Does your IT team spend a good chunk of its day in a chat client, collaborating on projects and troubleshooting issues? If so, check whether your chat platform supports ChatOps, so the team can execute external scripts and commands without ever having to leave the chat room.
ChatOps emerged in the early part of this decade at GitHub, the Web-based code repository service.
"It started out as how to run a handful of commands and execute them from a chat bot," said Brian Doll, GitHub's vice president of strategy. By 2012, the company had open-sourced Hubot, its "customizable, life-embetterment robot," which sits in chat rooms and listens for commands to execute. Today, upwards of 30 chat platforms support Hubot, including HipChat, Yammer, Skype and IRC. GitHub counts about 3,600 Hubot projects on its site.
IT professionals who use ChatOps sing its praises. "When customers are moving very, very quickly, we need an efficient way to communicate about new features and test new code," said Eric Brinkman, senior product manager at managed cloud provider Rackspace, which uses a ChatOps-enabled client from Slack Corp. to support customers of its DevOps service. Through Slack, support personnel can communicate in real time with customers in a dedicated channel, use Slack's ChatOps integrations to look at monitoring data from New Relic or run Chef recipes.
"It's become our preferred way to communicate as a team," Brinkman said.
Some ChatOps clients come with a variety of pre-built integrations. Slack said it has over 70 pre-built integrations, with more on the way. At Rackspace, the DevOps team uses Slack integrations with common DevOps workflows such as continuous integration and continuous deployment, autoscaling, and spinning up staging and production environments -- "the highest use case workflows," Brinkman said. If the integration is unavailable, many modern tools allow users to write their own via APIs.
One of the big benefits of today's ChatOps clients is ubiquity. Slack, for instance, is available on Windows, Mac, Android and iOS operating systems. Users can not only communicate from wherever they may be, but also take action from wherever they may be.
It also records the conversations and actions, creating a de facto audit trail that can be referred to later. "Think of it like a persistent IRC," Brinkman said. That's especially important in 24x7 support environments, where people come on and off-duty. "If you leave for a couple of days, you can easily catch up on everything you've missed," he said.
For teams that make heavy use of ChatOps, it has become the place from which all work is done, said GitHub's Doll. "In the same way that DevOps shops frown on you installing something directly on a server rather than through the configuration management system [e.g., Puppet or Chef], with ChatOps, it'd be very odd to run a terminal command on a server," he said. "It'd be seen as sort of rude -- like, why are you limiting the visibility of that server?"
GitHub, not surprisingly, is far down the ChatOps path. "We use it for assigning pager duty, incident response, load balancing -- literally every operational task that we have we can do via ChatOps," Doll said. Other teams might need to start slow. "If you haven't invested in modular tooling, with good APIs, then it might be more of a ramp."
Alex Barrett is editor in chief of Modern Infrastructure. Email her at firstname.lastname@example.org.