Synergy between DevOps and Machine Learning
Arti Venkatesh??
Technology and Business Leader | Digital Transformation | Security Expert
There is a powerful synergy between DevOps and Machine Learning
Machine Learning is the next generation of automation. With automation, DevOps enables a much faster SDLC that is opaque, distributed and dynamic. Machine Learning uniquely handles the velocity, volume, and variety of data generated by new delivery processes
Successful DevOps practices generate large amounts of data that can be used for streamlining workflows, orchestration, monitoring in production, and diagnosis of faults.
The problem is too much data and too much data has a predictable result: Teams don’t look directly at the data, but rather set thresholds. Even mature DevOps teams are looking for exceptions, rather than diving deeply into the data they’ve collected.
The only reasonable way to analyze this data and come to conclusions in real-time is through the help of machine learning.
Few key examples where Machine Learning can help DevOps Teams
Tracking application delivery: Activity data from ‘DevOps tools’ (like Jira, Git, Jenkins, SonarQube, Puppet, Ansible, etc.) provides visibility into the delivery process. Applying Machine Learning can uncover anomalies in that data (large code volumes, long build times and slow release rates)
Managing alert storms: Another high-value use of Machine Learning is in managing the massive flood of alerts that occur in production systems. This can be as simple as Machine Learning grouping related alerts or it can be more complex, such as ‘training’ systems over time to recognize ‘known good’ and ‘known bad’ alerts.
Analyzing business impact: Understanding the impact of code release on business goals is critical to success in DevOps. By synthesizing and analyzing real user metrics, Machine Learning systems can detect good and bad patterns to provide an ‘early warning system’ to coders and business teams.
Root cause Analysis: Root cause is the Holy Grail of application quality, letting teams fix an availability or performance issue once and for all. Machine Learning will allow them to root cause the issue versus just rebooting the server to remove it
Correlate across different monitoring tools: If you have mature DevOps practice, you are likely using multiple tools to view and act upon data, each monitors the application's health and performance in different ways. Machine learning will offer the ability to find relationships between this wealth of data from different tools. Machine Learning systems can take all of these disparate data streams as inputs, and produce a more robust picture of application health than is available today.