When people talk about DevOps, terms like “automation,” “collaboration,” and “tools” always seem to dominate the discussion. So it should be no surprise that a paradigm combining all of these traits into a single concept has surfaced as a new-and-better way for modern teams to communicate and collaborate. Think real-time collaborative group chat powered by bots that help with sharing information, plus integrated notifications from other tools. Put it all together and innovative teams are now doing conversation-driven development and operations—this is the way of ChatOps.
By creating a new communication channel that automates common tasks and makes it easy to distribute real-time information, ChatOps can improve collaboration to help teams shorten feedback loops, enabling them move faster and be more productive.
A brief history of chat
Real-time collaboration via group chat is hardly new. This type of interaction dates back to the early days of the Internet and online BBSs (Bulletin Board Systems). Users would connect to remote computers via dial-up modems and request real-time chats with the operator of the system. They could communicate remotely and exchange information in real-time via text, a novel concept at the time.
Later, a protocol specific to chat called IRC (Internet Relay Chat) emerged, enabling groups of people to chat in real-time via a network of connected chat servers. The IRC network is where early sysadmins, DevOps practitioners, and ops managers learned many of the technical skills their disciplines still depend on today. They figured out how to connect computers via IP networking, hardened new-fangled Linux systems by hacking on them, and scripted Eggdrop bots to automate tasks, kept each other informed via automatic notifications, and even played casual games. All these things are still being done by modern DevOps teams, but are now powered by new tools like Slack and HipChat that offer universal support on mobile devices and built-in integrations with common DevOps tools.
Old skool, new school
Even as the tools facilitating real-time chat have changed, the primary reasons for using them have not:
- A communication channel that can be both synchronous and asynchronous; great for distributed people and groups.
- Automation of tasks such as sending reminders, providing updates and notifications; common workflow tools can be easily integrated with webhooks.
- A recorded, time-stamped log of conversations, events, and notifications; helpful for root cause analysis and historical learning.
- Easy distribution of information to groups—links, screenshots, or the newest cat meme; real-time chat typically provides the most current information.
Important as they are, though, those benefits are tangential to the real value of ChatOps, which is to help shorten feedback loops through collaboration. DevOps is all about moving quickly and learning, and ChatOps helps create a paradigm that brings this notion into everyday practice.
Picture this: An app crashes and causes an alert, and notifies the on-call engineer responsible for support. That engineer replies to the chatroom that she is addressing it, and asks for assistance or other information if needed. Along with other members of the chatroom, the team identifies the bug, creates a fix, tests it, and then pushes it to production. That resolves the issue and the alert is closed. Every step of this scenario can be captured via chat, with most of it automated. See this internal example of a similar scenario at New Relic:
The screenshot shows the team has integrated notifications from New Relic Alerts into the HipChat room. We try to make integrations like this as simple as possible, because they are important and can trigger both action and discussion. New Relic uses HipChat, and most teams have their own room where they talk about their area of focus and field requests from other teams. Again, the idea here is that groups of people gather in a location where they can discuss and collaborate, and others can easily find them if there are issues or questions. With highly distributed teams, it’s important to be able to get answers to questions quickly when needed.
The rise of ChatOps is largely attributed to recent work and advocacy by GitHub, but other leading tech brands have also shown support. Blog posts describing how ChatOps is used at companies like Box (Securing ChatOps to Enable DevOps), PagerDuty (What Is ChatOps and How Do I Get Started?) and VividCortex (ChatOps at VividCortex) provide both validation and visibility into how ChatOps is used.
Integrations are a big part of the new ChatOps story. The major chat platforms like HipChat and Slack help make it easy to integrate notifications, triggers, and events from other tools, such as Jira, PagerDuty, GitHub and, of course, New Relic. That’s critical: the last thing DevOps teams need is yet another “virtual collaboration” tool that silos conversations and information into yet another place to look for relevant information. The goal is to centralize the information coming out of those tools into a common place where it can be consumed by all.
Bots have feelings, too!
Once a chat integration is set up, a “chatbot” can be configured to assist the team, particularly with repetitive tasks or notification duties. The bot can be part of the conversation, providing helpful context to the situation at hand. The most famous of these bots is Hubot by GitHub, which comes with a number of preconfigured actions and commands to help with common DevOps tasks.
The chatbot appears as another user in the chat room, but can respond to commands with an @mention to the bot. This can be used to have the bot do tasks for teams such as start a deploy, provide the status of something being monitored, or execute a remote command. This type of interaction brings the DevOps processes and tools right into the conversation where everyone can see and discuss.
Chatbots can even help cut the tension during stressful times. For example, a chatbot can generate some welcome laughs by counting how often people swear, fetching a random gif based on a search term (be careful!), or orchestrating a simple game of trivia. Almost anything is possible, and over time these behaviors can define a unique personality for each chatbot.
ChatOps: So easy, anyone can do it
If you haven’t had a chance to play around with these tools yet, it’s easy to get up and running with both Slack and HipChat. They both have free offerings that may be enough for some teams. Also check out Hubot from GitHub, which is pioneering the new age of chat automation via bots and makes getting set up very simple.
Not only can ChatOps get your team collaborating in a fun new way and improve overall situational awareness, it can also level-up your typing skills, too. Just make sure to use your new powers for good—and not to unleash a Botnet army on your enemies.
For more information, see these New Relic documents: