Accelerating DevOps – ChatOps is the new Cool
“In a relationship, communication is the most important thing” – Anonymous
(1) DevOps Trends from World Quality Report
DevOps is still a hot trend and organizations are adopting it at a very fast pace. As referenced in the World Quality report, 2016-17, only 12% of CIO respondents said that they are not using DevOps in their projects. The report also talks about new approaches to increase the quality of DevOps, which includes leveraging predictive analytics, use of a cloud based testing environment with virtualization, combining shift left and shift right, and a focus on the mixed skill set of DevOps and Agile development.
From past few years ChatOps is also emerging as one of the promising accelerators for DevOps.
(2) ChatOps - Background and Need
In past few years DevOps has evolved at a very fast pace and whole IT industry is confidently banking on it as it provides a unique combination of people, process, tools, and automation. Continuous integration, continuous deployment and continuous testing have become the new mantras.
Recently ChatOps has emerged as one of the most effective techniques to implement DevOps. It accelerates the DevOps culture, which provides better collaboration among people and automation though bots, which finally results in greater efficiencies.
The spirit of DevOps lies in CAMS (culture of automation, measurement and sharing). ChatOps focuses on the CAMS spirit through automation of common and repeatable tasks, effective collaboration among different teams and distributing real time information. This benefits in terms of shortening of feedback loop and lowering the response time. Through ChatOps we can do many things like deploying code from Chat, viewing graphs from a logging tool, or creating new Jira tickets, etc.
(3) How ChatOps Works
Below is the basic structure of ChatOps and Mapping of Testing Steps -
In DevOps environment, teams use Chat Clients like HipChat, Slak, or Flowdock for their regular communication. This is integrated with bots like Hubot, Lita or Err. A chat client manages a group of people who are responsible to address issues and incidents. A user can give command to bots via a chat window to perform basic tasks such as server reset, ticket creation, deploying the code etc. Bots in the background are connected with an API of any incident management or Application Lifecycle Management (ALM) tool from where they fetch required information. When an issue is generated, everyone who is part of the chat knows it. This helps to identify the correct person for issue resolution. ChatOps as a concept can be applied to various types of services such as application management services, testing services etc.
(4) Application of ChatOps as a Collaboration Platform
In application maintenance services, ticket handling teams are organized from L1 to L4 based on the skills required for ticket resolution. When there is an application outage, a ticket flows from L1 to L4, but there is always an ambiguity in terms of single point of ownership. "Who is the ticket escalated to" is a major challenge for the earlier lines of defense. A ChatOps approach works well here, where a ticket is escalated to a group of people having a different type of skill sets and experiences. Anyone who identifies the problem can take ownership and solve itimmediately. Integrated bots allow teams to perform some automated tasks trough commands.
Early involvement of the testing team has always been a challenge for projects. There are many situations, from requirement gathering to implementation of code and finally test. A group of cross-skilled testers in collaboration with development team can help identify defects early. ChatOps provides that collaboration platform where testers and developers can experience the true DevOps culture and its bots feature works as an accelerator. Tasks such as deployment of code and running test scripts, etc., can be executed through a chat window.
This type of conversion-driven development provides IT professionals, testers, engineers, and customers a better approach to communicate between themselves..
(5) Benefits of ChatOps
The concept of ChatOps provides several benefits:
- Everybody is aligned on an Issue: It is difficult to manage a large volume of e-mail and track it until they are resolved.
- Improved time to resolution: Agility of cross-functional teams improves through communications and deploying bots for automated tasks, resulting in lower resolution time.
- Offers Virtual Organizations without need for changing Organization Structures: Through ChatOps we can virtually combine skilled people from various fields into a team regardless of their location.
- Automation: One of the most important achievements is the integration of bots. They are our helpers who perform tasks as directed via programmed commands. This dramatically decreases time spent on an issue because functions such as content search, code deployment, and server reset can be easily assigned to bots.
Based on the latest WQR, DevOps is implemented by organizations in 20%-70% of their projects. It has become a necessity for almost every organization. Customers wants time-to-market and issue resolution times to be as low as possible. ChatOps is a means for vendors to accelerate their projects and provide better efficiencies to customers.
Capgemini Sogeti HP World Quality Report - http://www.worldqualityreport.com
For an in-depth look at the key trends in Testing and QA, download the World Quality Report 2016 http://ow.ly/UjI9304DK8c
Main Author: Renu Rajani, firstname.lastname@example.org, Vice President, Testing Global Service Line, Capgemini India
Contributing Author: Pulkit Matur, email@example.com, Solutioning Consultant, Testing Global Service Line, Capgemini India.