DevOps Institute

The Role of Bots in DevOps

DevOps Basics

By: Shriniwas Sathe

DevOps has evolved from its infancy into a mainstream focus area for a majority of CIOs and has been shaping the world of software and infrastructure engineering and operations for the last few years.
Some of the key DevOps trends include:

  • DevOps assembly line automation
  • Smart, actionable alerts from monitoring tools
  • Monitor and orchestration infrastructure

Improved Collaboration
With the increase of DevOps adoption, organizations today face many challenges in the end-to-end service delivery life cycle:

  • For applications with complex environment configurations, creating, setting up and deploying a new environment is costly, time-consuming and prone to errors
  • Due to manual interventions, moving/promoting code across environments involves risks and may give rise to outages
  • Development teams are looking to maximize change by writing new code or enhancing existing code, while operations teams are looking to minimize change to keep up with key performance indicators (KPIs) and service level agreements (SLAs). These goals are opposing in nature and create a culture of blame between dev and ops teams
  • Organizations are unable to keep dev, test and production in synchronization due to process and tool gaps. A manual process cannot bridge this gap inconsistency; thus, outages in production are common

Various collaboration mechanisms let teams work and learn together to produce better results. The figure below depicts the end-to-end life cycle of DevOps. Collaboration across the phases is essential to the success of a enterprise DevOps transformation.

What are ChatOps and Bots?
ChatOps is a term coined by GitHub to describe “putting tools in the middle of a conversation.” In a typical CICD pipeline, there are multiple tools that you interact with that have varied functionalities, such as source code management (SCM), defect management, continuous integration, continuous deployment and others. These are all discrete tools, but there is nothing that bridges them together. This is where ChatOps comes into play. A bot is a bridge between the collaboration tool and the DevOps tools. The bot receives a request from the user in the form of a chat command through a collaboration tool, analyzes the request and executes a set of commands on the target DevOps tool.

The main components of ChatOps and bots are:

  • Chat app/collaboration tool: This is the front-end chat system that connects the various stakeholders and enables them to interact between themselves and the systems around them
  • The bot: This is the core of ChatOps. A bot is the glue between your collaboration tool and your systems. It facilitates a two-way communication channel where you can fetch relevant information from the systems and act on the information received. A bot fits in between your collaboration tool and the DevOps tools, e.g. Hubot, Lita, ErrBot or AWS Lex
  • Target platform/infrastructure: Integration with the target platforms/DevOps tools is a key ingredient to a successful implementation of bots. These are the target tools and platforms on which the bot will execute the required commands. The tools integration allows your bot to communicate with tools and execute actions such as build, deploy, test, provision and scale infrastructure directly from the chat window

Where Bots Fit in the DevOps Pipeline

Bots can prove to be an accelerator in various stages of the CI/CD pipeline. Below are the details of the integration with various DevOps tools in each phase of the life cycle:

  • Proactive planning – JIRA
  • Requirements management – JIRA
  • Continuous integration – Jenkins
  • Continuous deployment – Ansible, Chef
  • Continuous monitoring – Nagios, Grafana, Splunk
  • Continuous feedback – JIRA

A chatbot plays a major role in bringing the different teams together into a single, persistent chat room to triage and resolve the issue at hand. In addition to just troubleshooting and triaging issues, bots can be used for various other business-as-usual jobs including:

  • Cleaning up servers
  • Kicking off build and deployment jobs
  • Rotating server logs
  • On-boarding application on the monitoring tools
  • Collecting metrics from tools such as Nagios or AppDynamics

Bot Technical Blueprint

To achieve the aforesaid targets, we need to have a supportive bot platform in place. How closely the tools integrate with the bot ensures the quality of the implementation and opens new opportunities of automation.

SKILup IT Learning blog side bar ad

Community at DevOps Institute

related posts

Architect, Implement and Scale Kubernetes in Enterprise Environments

Architect, Implement and Scale Kubernetes in Enterprise Environments

Image source gyn9038 via Getty Images A SKILup Day Event Recap  At Enterprise Kubernetes SKILup Day on March 15, 2023, leading experts and practitioners shared their stories of architecting, implementing and scaling Enterprise Kubernetes. They gave valuable insights...

[EP98] Cybersecurity: What You Should Know with Dr. Nikki Robinson

[EP98] Cybersecurity: What You Should Know with Dr. Nikki Robinson

This episode dives into the crucial topic of Cybersecurity as Eveline Oehrlich and Dr. Nikki Robinson provide key insights about what we should be aware of in this ever-evolving digital world. Dr. Nikki Robinson is an experienced Security Architect with a demonstrated...

A Great Partnership: Site Reliability Engineering (SRE) and DevOps

A Great Partnership: Site Reliability Engineering (SRE) and DevOps

Image source Yuri_Arcurs via Getty Images Achieving Speed, Quality and Reliability All at Once By Eveline Oehrlich, DevOps Institute and Andreas Prins, StackState DevOps is not a prescriptive methodology but was born out of the need to improve the software development...