Artificial intelligence is now omnipresent in IT. Its annual growth rate is expected to reach 17.5% until 2024. Machine learning (ML), test automation and workflows have completely transformed development methods and tools, starting with the DevOps approach. The terms DevOps and AI have become almost indistinguishable today. For the better? Not so sure... What is sure is that artificial intelligence has many impacts on DevOps, discover them in this article.
AI as a support for DevOps
The reason DevOps and AI are intrinsically linked is because they share the same goals. DevOps is an approach focused on productivity. The term represents the union of developers (dev') and operational staff (ops') in order to design, develop, release and modify services and software needed by the company more quickly.
AI is a set of technologies that can be integrated into an enterprise to accelerate and automate production cycles. With AI, DevOps teams can test, code, release and monitor software even faster and more efficiently.
AI will therefore facilitate the DevOps approach throughout the software or application lifecycle.
Automated code reviews and tests thanks to AI
The major contribution of AI in the DevOps approach concerns the development and testing phases. Intelligent" technologies powered by AI and machine learning can learn repositories with millions of lines of code. They are then able to understand the purpose of a program, evaluate changes made by developers and even offer suggestions. AI tools can also perform automated code reviews (based, for example, on machine learning algorithms). These reviews can include:
- semantic analysis ;
- a detection of vulnerabilities ;
- code quality auditing;
- performance tests.
When it comes to testing, AI will simplify acceptance with :
- autonomous generation of data sets;
- optimization of cases, especially for non-regression tests;
- reduction of execution time;
- creation of predictive models.
The major contribution of AI in these steps of the workflow is to lighten the workload and the involvement of the developer and tester for the current tasks.
This allows them to focus on their core business.
Better resource and performance management
Outside the testing phase, artificial intelligence can automate routine and repetitive tasks throughout the DevOps lifecycle, including requirements analysis and solution design. With deep learning, for example, computers try to look at problems from different angles, just like a human brain, to identify areas for resolution. Does this sound like science fiction? Not really, neural networks are already well established in IT. The most striking example is probably that of autonomous cars...
For programming, this decision-making capacity of AI will be especially useful for resource management. One of the fundamental principles of the DevOps approach is to test and collect results at each step of the workflow. Performance monitoring tools are often used to collect this feedback. By linking them to ML, these tools become capable of collecting information to then prevent problems from occurring or make necessary adjustments. Thanks to the computational power of AI, data access times and performance are also more accurate and are taken into account during execution cycles.
Because of all its advantages, AI is commonly used in DevOps. However, some organizations are already starting to worry about the excesses of AI and in particular the risk of over-automation.
Artificial intelligence, a danger for DevOps?
A risk of over-automation of processes
Automated systems driven by powerful computers, multi-channel data and intelligent algorithms have invaded the IT sector and many other areas. The world of work and today's society are naturally evolving with chatbots, intelligent assistants, autonomous cars, etc.
This evolution is supported by the productivity and efficiency gains that automation brings. But it also brings risks.
According to the business journal Forbes, in its report "Artificial Intelligence: Key Challenges and Opportunities," the implementation of AI solutions leads to:
- data governance and privacy issues ;
- Limitations to automated AI decision-making. For DevOps, AI-generated unit tests cannot yet guess the intended functionality of the code, so they may break or contradict functional tests;
- Security risks. The power of AI is also of interest to cybercriminals. Hackers can attempt to manipulate the algorithms into making bad decisions or corrupt the models and their predictions with data poisoning.
A disappearance of DevOps functions with AI
AI and ML are continuously advancing. Some technologies are already able to update existing code with new processes, automatically resolve bugs and conflicts and optimize algorithms.
According to the latest GitLab survey, 75% of companies are using or have plans to use AI, ML and automation for their testing and code reviews. 84% of them say they are releasing their applications faster than before.
However, this acceleration also remains strongly linked to DevOps, as only 10% of the speed gains would be related to the addition of automated tests. On the other hand, 57% of IT developers consider that they publish their code twice as fast thanks to the DevOps approach. The process of turning an idea and business logic into an algorithm and then code still requires human ingenuity.
It is therefore highly unlikely that AI and ML will replace DevOps. What is certain, however, is that the interdependence between these terms will increase further. DevOps will be able to drive AI forward, and AI is still likely to completely reshape this approach in the coming years.
Source & useful links:
Forbes report "Artificial Intelligence: Key Challenges and Opportunities": https://www.forbesindia.com/blog/technology/artificial-intelligence-key-challenges-and-opportunities/
GitLab survey on DevOps and DevSecOps: https://about.gitlab.com/developer-survey/