September 29, 2022
Artificial Intelligence (AI), Machine Learning (ML), AI for IT Operations (AIOPS), and ML for IT Operations (MLOPS) are the latest buzzwords trending in the DevOps world. AI & ML is changing the fundamental way we think about DevOps, leading to various industries seeking to integrate AI & ML into their existing processes and workflows. According to a Stanford study, the private investment in AI in 2021 totalled approximately $93.5 billion—more than double the total private investment in 2020. Moreover, Gartner predicts that by 2023, at least 40% of the DevOps teams will be using applications and infrastructure monitoring apps that have integrated artificial intelligence for IT operations platforms
So, how can AI benefit DevOps?
Let us explore this further.
DevOps defines a set of philosophies, practices and tools that blends Development and Operations, increasing efficiency and improving delivery time for an organization. It is how both teams work with each other right from the conception and execution of the delivery and support instead of working in silos and being divided by an imaginary wall.
Wikipedia describes DevOps as: “a set of practices that combines software development (Dev) and IT operations (Ops). It aims to shorten the software development life cycle and provide continuous delivery with high software quality.”
There are various benefits of the DevOps methodology, such as:
Since the first DevOps conference held in 2010 at Mountain View, California, DevOps has evolved, involving high complexity. With the sheer magnitude of data in the application environment being generated, the future of DevOps will be AI-driven.
Simply put, Artificial Intelligence or AI enables computer systems or machines to mimic human intelligence. It empowers machines to perform tasks on their own that are generally associated with human cognitive behaviour, such as the ability to perceive, learn, reason and act.
Here are a few examples from our daily lives where AI is used:
Unfortunately, at one end, where AI is seen as a tremendous transformative technology, there are a few concerns around it as well.
Many surveys and researchers predict that AI-enabled systems will replace the workforce across a wide range of industries. However, according to the Harvard Business Review, the role of AI has been completely blown out of proportion. The current use of AI depicts that it is more frequently used in computer-to-computer activities rather than to automate human tasks.
It is no surprise that the IT industry is the primary adopter of AI. Even in India, IT services and Technology sectors contribute to more than 60% of the Artificial Intelligence Market. Within it, AI is majorly used in data science, detecting and fending off computer security intrusions. AI is not merely automating the jobs of IT professionals out of work but is helping already overburdened IT professionals. A paper by MIT titled Artificial Intelligence and the Future of Work concludes that it is unlikely that AI will take over human tasks. Instead, it will enable new industries to emerge and provide more jobs. Thus, as we witness businesses becoming digitized and automated, it is believed that the demand for new AI-capable technology talent across all industry verticals will rise.
DevOps methodology takes continuous feedback at each step, generating a lot of data which is then used to streamline and monitor work processes. Moreover, it is also accompanied by the high complexity of monitoring the DevOps environment; hence AI can be a great addition that pairs with DevOps to automat repetitive tasks. Nowadays, various applications that involve software development for IT operations have integrated AI & ML capabilities.
Let us look at some examples of how AI/ML benefits DevOps:
AI-Ops and ML-Ops:
Both AI-Ops and ML-Ops are used interchangeably to depict the use of AI & ML in IT operational tasks. Operational tasks in DevOps create many datasets, and AI algorithms can be used to investigate and analyze them. Analysis of these large datasets helps DevOps and IT Ops teams to pre-emptively detect and resolve issues. In essence, the AI algorithms make sense of all the unstructured data gathered from various sources by deleting redundant data and clearing the data noise. This filtering helps reduce the false alerts that an Ops team receives, reducing the numerous unnecessary tickets that may arise otherwise. When combined with relevant information, this filtered data can be used to discover patterns and infer causes and events. This analysis can then be used by various stakeholders involved in the incident to resolve the issue and future-proof the system.
Better Development:
Arguably the most important use of AI & ML in DevOps is the autosuggest of code snippets. Various development tools use AI to autosuggest code segments in real time. This helps in efficient coding and accelerates the development process. AI also aids in Quality Assurance (QA) processes to handle bugs, logical errors, and insecure code snippets. Some AI tools can create and automate numerous test cases required for QA, thus minimizing code review and rewrite cycles.
Recently, many Low Code and No-Code tools have thronged the market. These tools use artificial intelligence, which helps minimize the amount of code that needs to be written and reduces various functionalities like intuitive drag & drop functions. It helps in efficient development as it requires writing less code. Therefore, there is a positive push to move toward these tools as they increase the software building and deployment quality.
Testing:
The DevOps process involves various types of testing, such as unit, functional, regression etc. Under these testing processes, AI helps categorize and cluster the data by finding patterns. In addition, AI tools narrow down on sub-par coding practices and errors, which can then be easily resolved. Also, algorithms can be trained to understand the difference between the seriousness of various vulnerabilities. As a result, this automation testing process can help teams optimize their efforts.
Quality:
By helping suggest code snippets, AI not only helps with efficient development but also contributes to producing better quality software. Various AI tools can predict deployment failures based on test data and logs from previous instances of failures. AI Algorithms can help find issues such as resource leaks, wasted CPU cycles, unstable code etc. It provides DevOps teams with relevant insights, which in turn helps them optimize their code better. The best part about AI is the more test data it is fed, the better it becomes. Thus, it points to an important insight that indicates the reliability of any AI tool depends on the amount of test data it has been trained against.
Security:
DevSecOps, or simply SecOps, incorporates security into the DevOps workflow and automates the security tasks using AI & ML. Algorithms are trained to detect system anomalies, helping DevOps teams to be notified as soon as a vulnerability arises. AI can also help set up and monitor security compliances within the enterprise. This can help take preventive measures, such as shutting down a device in case of a security threat. Various Mobile-Device-Management (MDM) tools use AI to compare the behaviour of the devices to a set standard of prescribed usage, thus helping detect anomalies. Additionally, based on the learning from previous data points, appropriate actions can be taken to uphold the enterprise’s security. This allows DevOps teams to maintain security and company compliance. Moreover, AI & ML algorithms can help detect incomplete project requirements and manage alerts. It can also prioritize the severity of the alerts and can help detect the root causes of the issues, including false positives.
AI & ML is expected to play significant roles in almost all technical fields in the future. They are already deployed in numerous areas, and DevOps is no exception. The plethora of advantages it adds to the DevOps processes by automating monotonous manual tasks helps streamline workflows and better systems and services management. AI can help in various areas, including testing, security, automation, anomaly detection, etc. Operations is another area where AI can help immensely with security tasks and alerts.