ChatOps helps to connect people, bots, and tools in an automated and transparent workflow, allowing them to see the complete status of their work and systems. The transparency strengthens the feedback loop and enhances collaboration. Some say it is "IM-enabled devops."
These solutions give users access to important information directly from the chat window, drastically reducing context switching. If you already have a chat window open in listening mode, then it will help to connect it with the other tools and platforms with which you have already been working. In addition, ChatOps provides user-specific commands that feel intuitive because people can send commands to the chat robots just as they would to any of their human colleagues.
As Amazon Web Services chief evangelist Jeff Barr wrote in his blog post announcing Slack integration with AWS Lambda:
Because you have the ability to give the bots access to any desired AWS APIs, you can interact with your AWS resources in any desired way. You can query their status, look for error conditions, change settings, or even create new resources.
The services that allow for ChatOps functionalities already have bots that connect to several apps and within infrastructure platforms like AWS. You can do any type of work inside the chat, including server deployment, maintenance tasks, and simple reboots. As long as the API of a platform is available, ChatOps services will allow the functionality of the desired application.
Today, advanced R&D and IT operations teams use comprehensive sets of online chat rooms and bots to drive organizational activity without having to (manually) ask for help or even have a meeting to plan for it. These organizations put the chats at the center of their teamwork, essentially making it the real-time operations center.
The new communication methods makes it easy to share and collaborate in real-time, and the result is devops on steroids. ChatOps increases transparency to shorten feedback loops, enabling R&D and operations teams to move together more quickly.
Initially, a few ChatOps bots, including Hubot, Lita, and Err, allowed developers to run code directly from their chat windows, but today there are many more options. Since launching in 2013, Slack now has millions of daily active users -- and it's likely that you might be one of them.
Slack provides its own built-in Slackbot, but there are several other third-party solutions as well, such as StackStorm, Deploybot, and Blockspring, that can work with other chat products like Atlassian's HipChat and IRC. You should think carefully when selecting your bot because your choice will define the language that you'll use for the ChatOps framework in every aspect of implementation and integration. Check out this Product Hunt list of Slack chatbots.
Another option people use is HipChat, which is considered the leading ChatOps solution for enterprises and is competing directly with Slack. You can access HipChat through Hipchat Connect, an app store of ready-made apps that is currently in beta.
At Logz.io, we're using Slack with Hubot, and it has proved to be extremely valuable. It started as a hack that one of the operations engineers did, and it became not only an ops tool, but also a tool that fundamentally helps developers to perform tasks alone for which they had previously needed an ops engineer's help.
ChatOps is mission critical
As our ChatOps project grew and became one of the main tools used by our team, new ideas popped up that led to the creation of custom code to facilitate code deployments straight from the chat window. Today, we can't live without it.
The evolution of our ChatOps system from a cool individual initiative to a mission-critical service is a common occurrence that should be treated as an important development in any devops environment.
Just look at is Box.com, which needed to comply with strict compliance rules and hence needed to make its ChatOps system robust and secure. The most important consideration is to be able and control which commands are restricted and by whom. So, the company built several tools that serve as middleware within Hubot. The open source repositories include security tools like RBAC, rate limiting, and second-person confirmation (on specific commands). You should apply the same parameters, including user authentication to control reads and writes, to your code repositories.
Another management aspect is availability. What if Slack, HipChat, or your dedicated ChatOps host are unavailable? Implement monitoring, backup, and disaster recovery just as you would do for any other service in your environment. In addition, take advantage of the testing capabilities enabled by your bots to ensure that plugins are tested and are functioning as expected, with your CI tests run against them just as with any other application. (In case you didn't know, Lita and Err have out-of-the-box testing for your custom plugins.)
ChatOps is not just a temporary side project. It can be a powerful tool that needs to be handled and maintained carefully. Obviously, ChatOps is a code like product code. It should go through a pull-request, be saved on source control, and undergo the relevant tests.
Bots for everyone
Back in November, Slack made some changes and unveiled a new and advanced capability: Users could use its chat to call a Lyft ride. Using the "/Lyft" command, Slack communicates with the Lyft's APIs, allowing you to use the service via Slack. Cool, isn't it?
Although bots are not a new concept, Facebook's recent announcement that it's beginning to integrate AI services within its array of applications brought attention to them again. With the integration of bots within Facebook's Messenger app, its 900 million users will be able to receive more efficient customer service and avoid the annoyance of waiting for assistance on the phone. Facebook has also publicly announced that brands and developers will be able to build their chatbots for Facebook Messenger, following in the footsteps of Slack and Hipchat. Although the development of bots will take some time, this will make a tremendous difference in online communication.
This is a very interesting opportunity for startups to improve and commercialize ChatOps further to become more secure, reliable, and feature-rich. I'm sure some new companies are already launching in this domain.
This article is published as part of the IDG Contributor Network. Want to Join?