ChatOps is an accelerator for the implementation of DevOps. DevOps is all about enabling the team to get feature s into production quickly. This is done by unifying Dev and Ops and advocate automation and monitoring at all steps of software construction. ChatOps is a way of combining and centralizing all the tooling for your team into one shared messaging tool. By centralizing access to your systems to one central messaging tool, you increase transparency, collaboration and productivity of you team.
Most teams do have a central collaboration tool where they chat about what work must be done, requirements, testing and more in the devops process. Many tools like work item tracking, build and release pipelines are already integrated into this environment. However, you can do so much more from your collaboration tool than just monitoring. You can actively get information and send commands to your systems. When doing this, you are centralizing all interaction into you messaging system. By centralizing all interaction with your systems to one central place, there will be benefits like:
- Increased collaboration
- Faster decisions
- Support for distributed teams
- Improved engagement
- Automated logging
- Accelerated onboarding and training
A ChatOps architecture exists of a central messaging application where the people interact with bots, plugins and integrations from chat rooms. By integrating all commanding into your conversations, the benefits reinforce each other. There is one central place where everyone can see the system status, do analysis and send commands to the system. All team members can see what is happening and join into the conversation. You can look back what is done earlier, so you can learn from others and have documentation. For distributed teams, these benefits are even bigger. The responses will be faster and more efficient.
“Bringing in the work you already doing in line with the conversations you already having” James Fryman
There are many things you can integrate into your ChatOps environment. For each team the integrations are different because each team has their own challengesSome examples are: application monitoring, database queries for problem analysis, wrapper around your own custom project tools, send commands to your application to correct errors, integrate into your event sourcing architecture, manage your migrations, integrate your Docker house keeping, run the testing framework or create views on your application outputs (blobs, event bus, etc).
Building a ChatOps environment starts with identifying small functions that can be performed from chat. For example, it can be as easy as restarting a web server. Build a prove of concept bot in a short time period. You can build your first bot probably in a few hours. It should just do a task that is useful and had to be done by hand. Everything is about automating to save time and get work done from a central location.
The key to the success of ChatOps are the people in your DevOps teams. They have to experience the value of automation. If the process is not repeatable by anyone in the team, they instinctively go and automate it. Sometimes they will add a bot. ChatOps adds extra possibilities to their tools set. Keep you bots small and replaceable. Just make it happen.