We see a lot of bots around us, such as Apple’s Siri, Amazon’s Alexa, Google Home, etc. These bots are not only responsive but are also intelligent enough to help us in doing some of the basic activities of our everyday life—playing songs, giving weather updates, set reminders, etc.
However, these bots have different challenges when it comes to industry implementations. Industry use cases require bots that can resolve specific problems in the most efficient ways. In this article, we present various uses of bots in DevOps that can help teams save a huge amount of effort, resources, and time.
Chatbots, or “conversational agents”, are hosted applications that can not only understand human requests but also reply or act based on the requests. It is not necessary for the requests to be specific commands, which makes these bots flexible for a layman to place a request without necessarily having any domain knowledge.
There are generally two types of bot implementations:
Domain-specific bots are trained for a particular domain; they are smart, they can understand human requirements, and can be “stateful” while being “contextual.” They understand the context in the series of commands, they respond to the user to get specific information related to the command required to complete the action.
Generative bots, on the other hand, generate answers instead of asking for more information or replying from the set of answers. They take the query word-by-word and generate responses on the fly. They can handle complex and unseen queries and respond accordingly. However, it is complicated to train a generative bot as it requires various deep learning models.
Bot Architecture:
We use domain-specific bots for highly defined industrial use cases. Here are some use cases in DevOps that can ease and expedite the processes by implementing bots.
Log Retrieval:
Generally, when a support team is required to understand the reason for the failure of jobs, they need to fetch the logs from multiple machines that are running different services. To fetch these logs, they need to log in or SSH to respective machines and run some Unix/Linux commands. While the task may be easy for an expert, but it is repetitive. In this scenario, soon after you enter the IP and Service Name in your machine, the bot can do all backend jobs for you and fetch you the appropriate log file, just the way it is shown in the chat screen below.
Health Check-ups:
In a Hadoop cluster environment, where multiple services and daemons are running on multiple machines, it is required to check the health of all services that are running on a cluster. In this case, instead of running some commands on a terminal, you can command the bot in human language and he will provide the status for you. For example, you can command “Report status of all services running on XYZ cluster”, or “What is the running status of ABC service running on XYZ environment,” etc.
Run Test Cases:
A bot can invoke automated test cases to check the status for success, failure, or need fixing. For example, to check account management, the bot can test the success of Account Creation, add shipping or billing address, add payment information, and add loyalty points to the account’s test cases. These cases can be tested multiple times by multiple users in different environments.
To implement the above use cases, it is necessary that the bot is hosted in a machine that has access to a cluster running environment.
Authorization of DevOps Bot:
While the bot’s responses may seem highly intuitive, these responses are completely authorized. There are two ways the users are authorized in a bot environment.
Asking Authorization Code: Here, your bot should ask the user their password (note that the bot can access user id from the screen directly) to get the authorization. The password should be masked to adhere to the password compliances. But if you’re using a third-party chat service provider, you may need to develop your own Chat UI, if it is not provided already.
Handle Authorization at the Backend: In this case, the authorization is set up in the bot at the back-end. The bot will dynamically check if a certain user is allowed to run the query they are asking. The bot notifies the user accordingly. This looks like an easy and viable option for third-party chat tools.
Benefits of using DevOps bots:
Although domain-specific bots are not a solution for everything, they can surely be a great help in multiple industries, such as banking, healthcare, e-commerce, engineering, etc. A careful implementation will surely improve the processes and help the teams to focus on more attention-demanding tasks while a bot can take care of routine tasks. Similarly, the use of machine learning, natural language processing (NLP), and smart programming can also enhance the bot’s intelligence.