Modern applications are now often comprised of multiple services which are characteristically distributed in nature.

Among the many advantages of distributed systems; faster deployment, failure tolerance etc., specialized teams often handling one or a few services, have been one of the most welcoming work-culture evolution.

Smaller teams often mean better collaboration. But as the number of teams increases across the organization, effective communication suffers.

Pioneered by Github as a way to automate operations-related tasks, Chatops is a collaborative model that connects people, tools, processes and automation to a transparent workflow.

Chatops provide a persistent or central environment for people and teams, their tools, services and processes to collaborate. This conversation-driven development style allows actions — such as deploying code, resolving incidences, onboarding new employees etc. be carried out by bots or customized scripts responding to messages, commands and other triggers.

E.g of Chatops tools are Wiki pages, automated notifications, chatbots, etc.

Chatbots for Chatops

The earliest example of a chatbot was in 1966. Operating with basic scripts, ELIZA used natural language processing to emulate a psychotherapist.

Bots use for operations emerged in the 80s when IRC chatrooms began using them to avoid sleeping servers by making sure there was always activity in the chat. Since then, Chatbots have been used by businesses to support communications with their customer care, handle queries etc.

In 2011, Github released their internal communication and operations bot, Hubot, and the way we use and thought about chatbots evolved. Hubot could ship code, restart servers and make API calls. She challenged how we managed our workflow — automating more, and how we communicated within and across teams — more transparency through timestamps and threading.

Other chatbots have since gained popularity e.g. Lita written in Ruby, and Errbot written in Python.

Hubot

Hubot is written in CoffeeScript on Node.js. She is open source and shipped with a variety of scripts that support tasks such as posting images, translation, integrating with google maps etc. She is very malleable and supports customized scripts. Mostly, she provides a standardized way to share scripts among everyone's bots.

Getting started with Hubot.

To get started with Hubot, you need a version higher than v10 of Node.js, and NPM installed.

We kickstart our bot by installing Yeoman, a generator that provides app scaffolding, and Hubot. Both can be done with one command.

sudo npm install -g yo generator-hubot