Imagine the following situation: Alice and Bob are developers, they are also responsible for the operation of their own applications. Alice and Bob are in a chat room having the following conversation:
Alice and Bob are happy with their coffee at the end of their work. They were overwhelmed by the difficulty of the problem. Apart from their professionalism and expertise, their secret is that they are working in a ChatOps environment: the source code manager, installer, and monitoring software have all been linked to the chat platform.
What is ChatOps? It is a method of collaborative communication in software development and operation which works alongside the implementation of relevant activities for chat clients and chatbots.
In a ChatOps setup, the primary communication channel is like an instant messaging app, commonly known as a chat program. These platforms have been used by developers and operators for quite a long time. What might seem novel is the fact that these chat platforms are used for professional activities and the automated, artificial chatbots are involved in the party.
With the popularity of this kind of platform, companies have made it possible for these chat applications to be programmed. Some of such platforms include, but are not limited to:
This opened up the opportunity for software tools that support development and operation to send messages to the chat program or to receive messages from them and thus to execute the received instructions.
This means, more or less, that people can discuss work related issues with their colleagues on the same platform as their development and operational activities that are taking place.
ChatOps can be done in many ways. Any connection of “bots” that can be seen in the example can be used to automate regularly repetitive workflows, thus reducing the faults and time shortages due to human execution. The fact that things are done on the same communication platform greatly increases the transparency of workflows and leads to a kind of self-documenting feature. If all aspects of the operation can be integrated into the chat platform, chat history could serve as a data source for audits
This is a modern approach that can help the users of the platform, but at the same time it has its disadvantages.
It should not be ignored that there is a certain amount of time and work that is needed for the integration of chatbots, and we should not dismiss the fact that such integration needs not only to be developed but also to be maintained. As always, a healthy balance must be sought between collaborative integration and manual work, but its extent is determined by the project and its environment. Nevertheless, it is worth exploring open-source solutions and reusing community-developed and maintained software.
Furthermore, security is an important aspect. At first, it seems great that everyone is able to see everything and everyone knows how to give commands to all kinds of bots, but this might not always be desirable. Are you sure you want to allow all chat participants to give instructions to those bots that have access to production systems? Must a bot have access to all systems? The answer is not definitely yes. Security as a system design aspect needs to be a priority when developing the ChatOps concept.