Meet Hubot: The DevOps chat bot

Register or Login to like
Pull to open here

Have you been told that your company is moving to a more DevOps development culture, but you have no idea what that really means? Hubot and ChatOps are tools that can help you understand more about DevOps and learn to use it in your organization. I'll summarize some clear steps and initiatives to do that.

What is DevOps?

First, let's define what I mean by DevOps. It can mean a lot of things depending on perspective, but what I call it is the process of getting multiple teams who are involved in the software process to talk to each other.

This is one of the reasons why GitHub is so valuable for software projects and teams today; it allows people to collaborate instead of just throwing something over the wall to another team. 

How do you break down the walls? 

What is ChatOps?

Next up, is the idea of ChatOps. A principal engineer at GitHub, Jesse Newland, coined the term ChatOps, which is an approach to managing technical and business operations through a group chat room. Doing these operations in a group chat is helpful because I will not have to wonder if I'm typing in the correct syntax to do a deployment, or why what I typed didn't work in the first place. If I was individually connected into a server, I would not have the benefit of others helping me with syntax errors in my commands or error messages I receive because they would not be able to see them.

Getting started with ChatOps

"By placing the tools directly in the middle of conversation, everyone is pairing on code all of the time. Everyone is always learning and lots of people are always teaching. Teaching by doing."—Jesse Newland

To get started, we'll need to have a company chat client that we'll use as a common interface for typing instructions. I recommend Slack because it's quick and easy to set up, and it integrates well with Hubot.

What is Hubot? Hubot (pronounced hew-bot) runs between the chat client and whatever tool it is you're wanting to interact with. This can be something as serious as finding out the response times of our servers and the status of a continuous integration (CI) build, or something a bit more fun like finding an animated cat GIF on the Internet. Hubot is great for automation, and easy to expand because the commands are in JavaScript.

Now, we have to connect Hubot to the chat service so we can issue commands. There are a lot of options for where Hubot lives that have slightly different details, so I recommend doing this on infrastructure that you are comfortable with. I like Heroku.

Once Hubot is up and running, make sure Hubot is launched with the correct adapter (see Official Adapters) and login credentials. Then, identify a task that is manual for Hubot to complete; a task that may seem easy but involves going to another system to gather information. 

What's next

Experiment. Talk with you team. Come up with a list of priority tasks to automate and have fun with it! DevOps is a great process for teams, and ChatOps helps integrate that process into teams. Leave me a comment if you have questions.

Brent Beer will be speaking at OSCON London about Hubot and ChatOps on October 17.

Brent Beer is a solutions engineer for GitHub in Amsterdam, helping bring Git and GitHub to developers across the world. Brent has used Git and GitHub for over five years in university classes and contributions to open source projects and professionally as a web developer. While working as a trainer for GitHub, he also became a published author for O’Reilly.

Comments are closed.

Creative Commons LicenseThis work is licensed under a Creative Commons Attribution-Share Alike 4.0 International License.