The DevOps concept is now more than a decade old, but it continues to evolve. For proof, look no further than AI DevOps, a new subfield of DevOps that offers opportunities to bring a new level of optimization to all stages of the CI/CD pipeline.
What Is AI DevOps?
Simply put, AI DevOps is the application of artificial intelligence (AI) or machine learning to DevOps processes. In other words, it’s the use of AI and machine learning to improve DevOps workflows, including to make them faster, more reliable, or more scalable.
AI DevOps is similar to AIOps in that both methodologies leverage AI and machine learning to improve software deployment and management processes. However, whereas AIOps focuses primarily on IT operations workflows, such as monitoring application performance and security, AI DevOps applies more broadly to all aspects of the CI/CD pipeline.
Four Ways AI DevOps Improves CI/CD
With the help of AI, DevOps teams can improve all facets of the CI/CD process, from initial code design and integration all the way through to post-deployment management and application updates.
Following are examples of different ways AI DevOps can improve CI/CD processes.
Streamlining Continuous Improvement
People in the DevOps world often talk about the importance of continuous improvement, or the idea that you should constantly aim to make your CI/CD processes better.
That’s a noble goal, but how do you pursue it in practice? The answer to that question is tricky, especially if you lack systematic visibility into your CI/CD pipeline. Without a way to connect and correlate data from across the DevOps lifecycle in a consistent manner, continuous improvement efforts can assume an ad hoc form.
With the help of AI, however, the process of continuous improvement can be made more systematic. You can automatically collect data about the performance of different aspects of your CI/CD pipeline, such as how many code commits you achieve per day, how long releases take to get into production, and how often a release is delayed due to a performance or security issue. You can then clearly identify opportunities to make the greatest improvements to your CI/CD process. That certainly beats guessing (or relying on anecdotal feedback alone) to determine what’s working and what’s not.
Intelligent Test Case Prioritization
Another part of the CI/CD pipeline that has traditionally been driven more by qualitative than quantitative assessment is the development of test cases, which are used prior to deployment to check whether a new application release performs as required. Conventionally, developers and QA engineers have created test cases manually, based on what they believe to be the most important application features to test.
With AI DevOps, the development of test cases becomes a data-driven process. You can use AI to determine—systematically and automatically—which application features are most heavily used in production, or which ones trigger the greatest number of alerts or canceled releases. Using this data, you can then determine which features to prioritize when creating test cases. You can also determine which test cases to use and which ones to skip in situations where you don’t have time to run every test.
Automated Test Execution
Test automation, too, can benefit from AI DevOps. Although you may already use test automation frameworks like Selenium to automate some tests, you probably still run others manually—especially those that assess features that are too complex to test automatically, like real user interaction with an application. And if an automated test fails to run as expected, you likely have to use manual processes to figure out what went wrong.
Using AI, you can improve these processes. AI tools can help run all of your tests, even those that test complex features. Real-user test data can be analyzed systematically, for example, providing faster and more meaningful test results than you can obtain through manual testing. AI can also help to restart failed tests or determine why a test failed in order to help your team work through the issues and get your release candidate to pass all tests faster.
Removing Guesswork from Deployment
Application deployment, too, is a CI/CD process that has conventionally been driven in large part by informed guesswork. You decided when the best time to release software was based on information like which times of day saw the heaviest traffic (and therefore were not ideal moments for pushing out a new release). You may also have used blue/green deployment strategies that required guessing which segments of your user base should receive new application versions before others.
With AI, you can take the guesswork out of this planning. Using analytics, you can determine when the ideal moment for pushing out a new release is, even if the traffic patterns that shape that decision change from day to day or season to season. You can also systematically determine which users are the best candidates to receive application updates before others, based on their usage volume and the features they use. Rather than crudely selecting user groups for blue/green deployment based on factors like geography or network topology, AI DevOps allows you to take a scientific approach to deployment management.
In some respects, DevOps in 2020 can feel almost stale, as if the key innovations that DevOps has to offer have already played out. That may be true in many niches of DevOps. But when it comes to AI and DevOps, the story is just beginning. AI is sure to play a more integral role across DevOps software lifecycles in years to come.