Starting heavily from the end of 2018 to now, new applications and platforms have been integrating AI-driven toolsets. When you learn about new tools in the SRE and DevOps realm, you may be hearing a lot about:
Predictable outcomes
System improved functionality
Automated resolutions in monitoring tools
Automated code testing
In a way, a lot of that is AI and ML-driven. Vendors want to find a way to take software development and automation to the next level, and many believe that AI is the way.
In this blog post, you'll learn about what AI and ML are used for in DevOps and a couple of areas to keep a close eye on.
Before understanding why AI and ML are important for DevOps, you must first understand what they are.
Artificial Intelligence (AI) is a piece of tech that allows a machine to simulate human behavior. A lot of people's minds go straight to robots and Skynet, but it's a bit more in-depth than that. The idea behind AI is to simulate what a human can do, which spans a lot of areas. Anything from self-driving cars to automatically scanning a bag at an airport. It's the ability for a computer program to think and learn, much like our brains.
Machine Learning (ML) is a subset of AI (think parent/child relationship). It allows one machine or many machines to learn from past experiences (data). ML can then take the past experiences (the data) and perform an action without anyone telling it what to do (without someone writing a program to perform an action). The machines can learn how to do a "thing" without anyone needing to write a program to do the "thing".
Now that you know what AI and ML are, let's think about a few examples of how this could help us.
Imagine never having to wake up at 2:00 AM again for an on-call issue (do I have your attention now?). Instead, the monitoring platform (the AI-driven engine) can connect to the system (Docker, Kubernetes, serverless, a virtual machine.. wherever your code is running) and automatically fix the issue for you. The system can then learn from the monitoring platform (the system is now using ML) so it can automatically fix the issue next time without triggering an alert.
Engineers can now focus on big picture stuff (architecture, planning, building) instead of having to worry about a system or a piece of software crashing.
How about another example?
Unit tests - let's be honest, none of us like writing tests. No one wakes up in the morning and says "oh boy, I get to write tests today". However, it is something that we know we need to do. It's even more important than the actual application code itself (Test-Driven Development for the win). Imagine if instead of having to write a test yourself, AI can handle it for you? It would be amazing if a platform could look at functions and logic in code and create production-level tests automatically. You could then take those tests and put them in your build pipelines to ensure code is performing as expected before it's even built.
There are several different ways that AI-Driven automation can help CICD pipelines, orchestrating containers, and much more.
In this section, I'll list a few platforms and tools to keep an eye on in the AI/ML-driven space for DevOps, software development, and SRE.
Here's a question that I'm sure is on everyone's mind.
Will AI and ML take over Site Reliability Engineering, DevOps, and software development? The answer when it comes to monitoring and testing, yes. Since 2019, almost all popular monitoring and alerting tools have implemented some sort of AI. It typically comes in the form of predictable outcomes for an environment or automates what you can do with the data.
Most applications in today's world for a lot of organizations are in constant flux. New features added to an app and being deployed one, two, or even ten times per day. Hybrid cloud and multi-cloud models mean the data is constantly moving. That means there's a lot of engineering time involved with each and every environment. Without predictable outcomes and AI-driven monitoring, there will need to be engineers sitting there starring at a screen waiting for the next on-call issue to happen so they can automate it. We're at a critical point in the DevOps and development space today because everything is moving so fast. Because of that, we need automation for our automation.
Machine Learning will allow engineers to cover more ground.
When it comes to software and application testing, it's a no-brainer that AI should be involved. At the end of the day, a software engineer’s job isn't to write code for 10 hours per day. It's to architect, build, and create applications. Typically, only a quarter of the day actually goes into writing code. With AI-Driven software and code testing, developers can spend less time saying oh, I missed a semi-colon on line 250 and say more of the system is handling the bug fixes so I can handle the architecture.
AI won't take away jobs, it'll just change the way we do them.
Also published on: https://dev.to/thenjdevopsguy/ai-and-ml-the-future-of-devops-3bck