By combining the roles of software development and IT operations, DevOps often encompasses so many tools and skills that too many of us get stuck working in a complex and time-consuming environment. Time that could be spent solving problems gets wasted on mundane tasks. By using artificial intelligence (AI), DevOps can automate complicated tasks that are easy for computers but hard (or boring) for humans. AI can also help streamline processes across the software development lifecycle (SDLC), allowing DevOps to focus on the work itself. In this guide, we cover how AI can be used throughout the DevOps cycle to improve productivity and security.
What is artificial intelligence?
AI is the theory and method of creating computer systems that can automatically perform tasks normally requiring human, or greater, levels of intelligence. Computers rely on complex algorithms to perform these tasks, sometimes through explicit rules being provided to them, but more commonly through what is known as machine learning (ML).
ML is a subset of AI, where the system uses statistical methods to learn without explicit directions from a human operator. This requires sets of training data to teach the system desired outcomes. From there, ML can infer things about new data.
You may be using AI in your DevOps practices already—for example, tools that make automatic code suggestions when writing software. The range and scope of DevOps tools available are growing, and AI is predicted to be a big part of automation in the coming year.
Smarter automation
Using automation to manage processes is a vital part of the DevOps approach. However, without AI, automation only executes actions based on explicit instructions provided by a person. AI uses a broader ruleset and a capacity to learn to improve performance over time. This allows AI—and most commonly, ML—to automatically perform complex tasks and eliminate the need for human intervention. These tasks include:
- Requirements analysis—Natural language processing (NLP) is a type of ML that understands the written word. This ensures that the scope of a project can be explicitly defined.
- Software testing—ML can make sense of the data produced during regression, functional, and user-acceptance testing. It can even be used to automate the creation of tests in the first place. This makes it easier to discover poorly written code and other issues, automating a critical part of the software development cycle.
- Problem-solving—AI can trace the root cause of a problem, while an overworked developer may fix an issue without investigating and solving a deeper underlying problem.
- Security—AI can be used to differentiate between normal and abnormal conditions. This could include spotting unusual activity on a network that may be indicative of unauthorized users gaining access to the network.
- Monitoring and alerts—Dealing with the noise of thousands of emails, Slack notifications, and other alerts each day makes it easy to miss important issues. AI can make the DevOps process less noisy by determining which alerts require human intervention and prioritizing issues accordingly. This could entail raising the issue with the correct person, automatically addressing the problem without human intervention, or, in cases where no action needs to be taken, simply ignoring the notification.
In each of these cases, AI is used to perform actions automatically that can reduce the workload of DevOps. This is great in theory, but how does it shape up in practice?
Intelligent DevOps tools
The most mature AI uses in DevOps are in applications that help programmers write code more effectively, those which manage monitoring and alerting, and those concerned with cybersecurity.
Are you a pro? Subscribe to our newsletter
Sign up to the TechRadar Pro newsletter to get all the top news, opinion, features and guidance your business needs to succeed!
GitHub Copilot and Amazon CodeWhisperer are ML-powered tools that make relevant code suggestions to speed up programming. Both GitHub and Amazon integrate additional tools for testing within their environments.
Not every notification is important, and PagerDuty is an incident response platform that uses ML to minimize interruptions by improving the signal-to-noise ratio of important events to routine ones. As a basic example, instead of receiving alerts each time a service has successfully shut down and restarted, you might only receive an email if the service fails to restart. PagerDuty claims to provide up to 98% alert reduction.
Both Fortinet and Perimeter 81 provide high-performance network security tools that leverage AI. Fortinet provides resources for DevOps professionals, including GitHub repositories of tools and scripts to make setup and management of the software easier.
For those managing larger numbers of microservices or containers, especially in a multi-cloud or hybrid-cloud environment, Dynatrace uses AI to map, simplify, and manage the DevOps processes and delivery pipeline.
If you’re interested in adding AI to your DevOps workflow, you probably already recognize many of the best DevOps tools available. Many of the tools that you already use are either adopting AI, or some, such as Selenium, have additional software or plugins that allow AI to be integrated into them. Keeping on top of developments with the software you already use, and searching for tools that integrate with them, is a great way to get started with AI.
Conclusion
The DevOps culture has become an integral part of software development precisely because it allows projects to scale easily: spinning up 1,000 web servers is now as simple as creating one. Artificial intelligence takes the process one step further, allowing ever more complicated tasks to be left under the control of computer systems that learn and improve.
By using tools such as GitHub Copilot, Fortinet, and PagerDuty, DevOps professionals can harness the power of AI to produce a more efficient and secure SDLC. While there are many myths around DevOps trends, there is no doubt AI will continue to transform DevOps practices over the next couple of years.