sommai - Fotolia
Chat applications, or ChatOps, have been used widely in software development to improve communication between developers. Now DevOps vendors and organizations -- including VictorOps and Box.com -- are using ChatOps that combine modern chat clients, API integration and automation to improve software workflow and other business processes.
ChatOps, a term widely credited to GitHub, is a practice that focuses on conversation-driven development. By bringing tools into conversations and using a chat bot modified to work with key plugins and scripts, development teams can automate tasks and collaborate to work better, faster and cheaper. For example, while in a chat room, developers type commands that a chat bot is configured to execute through custom scripts and plugins, then they collaborate in real time as commands are executed.
Moving activities into a chat client
Essentially, a modern chat client becomes an interface to a shared conversation. This can replace email for many kinds of workflow and business processes. The chat backend is also directly integrated into cloud services, development tools and reporting tools to automate many processes. But organizations need to come up with a plan for bridging the cultural shift. It is also a good practice to start small because the combination of chat and automation can lead to unwanted application and infrastructure changes.
Many organizations are finding they can leverage chat principles to improve other processes within the enterprise, including sales and marketing, business development, workflow and enterprise-wide coordination of major projects. That said, opening up a new channel for accessing sensitive corporate information and for automatically spinning up and changing operational infrastructure requires forethought to ensure that governance, risk and compliance needs are being met.
At Box, ChatOps have been built into the company culture and is a primary tool for collaborating with distributed teams. Michael Ansel, site reliability engineer at Box, said, "We're using ChatOps to move toward a DevOps model that allows developers to manage their services in production and frees up our technical operations team to focus on the supporting infrastructure." With ChatOps, Box is processing metric data in new ways, interacting with system APIs, automatically bringing relevant information into conversations and automating pre-existing chat conversations.
VictorOps' Hand said that ChatOps brings the benefits of a command-line interface used for pushing new code, provisioning infrastructure and configuring services for development teams into a shared chat room. "Not only am I obtaining some information, I am also sharing that with anyone else that might be hanging out in the chat client." This practice saves time, creates a better level of transparency and provides situational awareness.
For example, with a single chat command developers can kick off an incident response process and send out relevant communication -- much faster than the old model of a human manually creating a ticket, updating the status page, sending an email and posting on Twitter.
What are ChatOps tools?
Typically, ChatOps is used with more modern chat clients like HipChat, Slack, Flowdock, and Campfire. These clients enable organizations to create shared channels across multiple teams and projects. The chat backend use bots to connect to APIs for Jira, Rally, or whatever project management tool is being used and echo this information into chat.
The bots can automate command entry, reports and tasks into chat. Hubot, developed by GitHub, has been around the longest; others are Lita and Err. The ideal choice depends on the underlying framework that fits with a team's process. Hubot is built on Node.js, Lita on Ruby, and Err on Python. Hubot has the largest library of scripts, so the barrier to entry can be lower, Hand said.
Keeping security and compliance in mind
For Box, the biggest security challenge in using ChatOps has been maintaining clear isolation of the production environment while still permitting end-user access from rich chat-client software. To meet security requirements, Box has written secure middleware that sits between the bot and chat clients. The ChatOps infrastructure can hook up to the LDAP store to authenticate users to make sure a user belongs in the environment. There can also be other layers for doing two-factor authentication. One approach is to require two users to confirm bot requests like server updates for safety.
In the past, employees had to fill out paper as part of a change request; now compliance can be built right into chat. This also makes it easier to document what is in place. "You are creating a live compliance form that shows who did it, what they did and at what time. It is a workflow that happens much quicker," Hand said.
Bringing the C-Suite into the conversation
ChatOps can give C-level execs and departmental staffs better visibility into what engineers are doing. Approved staff can do queries on financial databases or spreadsheets, for example. And what might start with a few developers can be shared with others in the company who might need the same information and provide input.
"Once you find a few things you know you can do, the adoption rate spins out of control, Hand said. For example, the VictorOps team likes to keep an eye on how many signups per day are occurring. This requires running commands into the data store. Now they can just ask the bot the last 20 signups on a regular basis. Moving workflow into chat created traction for other teams, who only need to check in when they are curious about the progress of a particular team or project.
Bridging the culture gap
The culture shift involved in moving workflow from email to chat is one of the biggest challenges, said James Fryman, infrastructure automation specialist at StackStorm, which provides an event-driven automation tool. "Many folks are concerned about automation as a general concept, and what it will mean to their jobs if something like ChatOps comes in."
Organizations getting into ChatOps should start small and be responsive, Fryman explained. "Starting small gets folks used to the idea of ChatOps, and also gives your team a smaller domain to fix when things go wrong (because they will)," he said. "Being ultra-responsive also helps remove the lack of trust around automation, because if things are broken and fixed very quickly, then it gives users less opportunity to be upset about the implementation."
How DevOps works
DevOps in the cloud
How IT automation could improve the ops team
Facebook seeks to disrupt the mobile experience with chatbots