ChatOps: Let bots do (part of) your job
Can bots do your job?
“Will bots take over your job?” This is one of the most important questions of the century. Automation is becoming an essential part of working life. What remains to be seen is which parts of our jobs bots can carry out, and how this can be leveraged to improve our workflows.
A concise history of chatbots
Chatbots are increasingly ubiquitous, but they are not a new concept. The first chatbot, Eliza, was created at MIT in 1966. Designed to simulate conversation, Eliza was the first example of what’s called Natural Language Processing (NLP). All of the chatbots created between until IBM’s Watson in 2006 were NLPs. Then, with the invention of Siri in 2010, a new type of chatbot emerged: the Virtual Assistant (VA). Whilst both groups share a common goal - to communicate with and understand humans - the key difference between them is the interface.
A new type of chatbot?
In 2016, Microsoft attempted to deliver a new type of chatbot, Tay. By processing interactions on Twitter, Tay soon gained intelligence, continuously learning about human communication. But the problem was that Twitter users decided to play with Tay, skewing the algorithms towards funny or offensive content. Thus, in the first 16 hours, Tay tweeted “I just hate everybody,” made references to recreational drug use, and posted a tweet that would not pass the test of our core values. After 16 hours, Microsoft opted to disable Tay.
At Netcentric, we believe there is scope, not for a new type of chatbot, but rather for a new model of human-bot interactions, designed to implement automation wherever possible, improve efficiency and increase innovation.
ChatOps: a connective automation model
ChatOps is a new model for operations. Within this framework, chatbots communicate with DevOps (and/or marketing teams, or project managers), automating as much of the workflow as possible. By framing humans and chatbots as chat clients, ChatOps offers a collaborative model that connects people, tools, process, and automation into a transparent workflow.
Advantages of ChatOps
The ChatOps model is designed to automate any procedures that can be automated, in order to streamline the workflow. For example, chatbots can be used to collect tickets for a specific release; as soon as the tickets are closed, the bot will automatically close, build and deploy the release. By increasing automation, we enable human workers to focus on interpersonal interactions and innovations, rather than routine tasks.
By communicating with a chatbot, any team member can interact with a platform from any device, anywhere in the world. For example, you could ask your chatbot how much disk space is being used on a particular server. Or, you could ask them how many tickets are left in your backlog. The bot will immediately respond with the relevant data, and help you focus on the real task.
3. Incident Management
Anyone working on a 24/7 team can take full advantage of a ChatOps model. For example, they can instruct a chatbot to trigger health checks on an AEM server if a problem arises, collecting metrics and providing a first diagnosis, making the entire process far more efficient.
4. Granular Permissions
ChatOps interactions are based on granular permissions. It’s not like entering a chat room, in which any user is able to run any command they want. With granular permissions, System and Operations Engineers can decide which user can do what.
Users can ask questions and the chatbot will answer them in a conversational style. This means that anyone can easily interact with and understand the chatbot, even if they aren’t versed in the technical content being discussed.
Case Study 1: Response to an incident without ChatOps
Imagine it’s 10pm on a Saturday evening. A System Engineer in a 24/7 team is relaxing at home. Suddenly, they receive a phone alert informing them that something is going wrong on a production server.
Typically, one might respond by opening one’s laptop, ensuring that Wi-Fi is enabled, connecting to a VPN, and checking the logs. In this case, they discover that the AEM repository is corrupted and cannot be repaired. It will need to be restored from snapshot, and must be taken out of the load balancer to ensure there’s no traffic reaching the corrupted instance. The System Engineer will have to stop AEM, and restore the snapshot. Once AEM is running again, they will carry out the necessary checks, and restore all the content to ensure it’s up to date. Having done this, the System Engineer can finally put it back into the load balancer, create a ticket, and go back to their evening.
Case Study 2: Response to an incident using ChatOps
First, the chatbot will create an overview of the environment, and assist the System Engineer in identifying the problem. The chatbot suggests next actions, offers a solution, and follows instructions to carry out the repairs. Taking the aforementioned example, the System Engineer would simply ask the chatbot to “check Publish-1”. The bot would then check the logs, and quickly respond: “Unfortunately the repository is broken. Do you want me to remove it from the load balancer?” The System Engineer would then reply, “Yes. Restore snapshot Publish-1”, and the chatbot would automatically restore from snapshot, before restarting the AEM. Once instructed to “check PROD”, the chatbot will run the final checks, before putting everything back in the load balancer. When this has been done, the bot can turn the conversation itself into a Jira ticket, and automatically close it on the System Engineer’s behalf.
Should we be concerned about automation?
Many people have concerns about the impact of automation on human labor; there is fear that bots will replace human workers, putting people out of jobs.
However, studies into everyday workflows have shown that most working processes are split into three groups: human interaction, routine, and creativity. The vast majority of our time is taken up with implementing routine tasks, leaving little time for the important work: human interaction and creativity.
By leveraging the ChatOps model, we drastically reduce the amount of time that human workers are required to spend on mundane jobs. Simple technical tasks become automated, leaving more space within workflows for human creativity. Chatbots therefore pose little risk in terms of displacing labor. Rather, they serve to increase the scope for developers to interact with one another, and bring innovation to their projects. Whilst chatbots complete routine tasks efficiently, developers are free to focus on the more complex tasks that require a distinctly human touch.