ChatOps in the Software Lifecycle
Chatops is included within DevSevOps circuits as a new element that enables interaction and improves automation, so necessary to have optimal deployment times and improved quality assurance of the delivered software, compared to traditional methods where software is based on a combination of manual and automatic processes, many of them automatable.
The ideal automation cycle passes through the possibility of having the infrastructure generated as code (IaC), and a source code that is hosted on that infrastructure after all the quality standards of testing (unit, functional, integrated…), software quality, cybersecurity, almost all of them automatable in the cycle without human intervention, and deployments have been covered.
However, there are cases in which it is necessary that a human-human or human-machine interaction is performed within the solution life cycle, in which chatops can facilitate by example the Integration of the development, operations and user teams in the face of external validations outside the lifecycle or interactions with automatic systems from a unified interface
Some introductory references to Software development cycle if you want to introduce in this world :
What is ChatOps ?
ChatOps facilitates automation with a collaboration tool through c interactions. This tool allows developers, operations and support teams to interact to solve any kind of issues or plan a code release, where all profiles involved in the software use the same tools.
From Chat to ChatOps
Chat tools are already very popular in development teams, as slack or teams type tools succeed. If you also enrich these tools with the necessary capabilities and integrate them into the software cycle and infrastructure, you get a chatOps solution, so that the simple use of chat to integrate communication to development and operations teams along with the automation of operations launched from the chat console (e.g.: launching pipelines, communication of a deployment ends, starting and shutting down machines, generating support tickets…).
Main capabilities of a ChatOps solution
The main functionality is a chat client, this chat that can start from one used by impacted teams throughout the SDLC and its extension to all the teams involved or the one established within the organization.
The chat client, must allow user profiling, to group them according to their responsibility (software engineer, devops engineer…) with the appropriate permissions, and maintaining the principle of separation of responsibilities, given to a devops engineer different responsibilities of software engineer.
Of course the **double-factor based authentication****r,** must be key in the access to the platform or security in this type of tools, such as encryption of information, Single Sign On (SSO) with SAML or OAuth support.
This chat, to reinforce the principles of a DevSecOps cycle must allow to launch tasks, or an automated and enriched interaction, for this it must be added cognitive systems capabilities based Chatbots virtual assistants that improves the interaction, and managing the automation of tasks and therefore must provide alternatives to the command line to administer applications, manage tasks and perform administrative tasks, and an open architecture that allows connection with other systems of the DevSecOps world, such as integration with the most common deployment platform and the technologies that use it.
All this must be accompanied with an asynchronous **system of notifications**, push type and ability to run on both mobile and web applications to promote the ubiquity of the employee.
Slack and RocketChat or Teams can be tools used within a chatops environment, so we can find ourselves:
Slack (https://slack.com/intl/es-es/) is the solution by reference, being widely used in development teams.
Rockechat (https://rocket.chat/), Slack’s direct competitor.
Teams (https://products.office.com/es-es/microsoft-teams/group-chat-software) is part of Microsoft’s office 365 ecosystem.