GUEST OPINION: Cloud computing has brought countless benefits to organisations of all kinds, but it is not without its challenges. The cloud resources required to support a large organisation can be extremely complex and difficult to manage.
DevOps and site reliability engineering (SRE) teams face challenges in trying to manage people, processes, and data so they can simultaneously meet internal business goals and customer expectations: all while producing software in a scaleable and efficient manner.
Many solutions have emerged that employ artificial intelligence to assist with this task, but they fall short of delivering what those charged with developing software applications for cloud environments need.
The generic name for such solutions is artificial intelligence for IT operations (AIOps), a term coined by Gartner in 2017. In its blog, Gartner defined AIOps as follows:
“AIOps platforms utilise big data, modern machine learning and other advanced analytics technologies to directly and indirectly enhance IT operations (monitoring, automation and service desk) functions with proactive, personal and dynamic insight. AIOps platforms enable the concurrent use of multiple data sources, data collection methods, analytical (real-time and deep) technologies, and presentation technologies.”
Modern v traditional AIOps
Traditional AIOps approaches use machine-learning (ML) models to reduce alerts and create dashboards designed to enable issues to be correlated. However, traditional AIOps can be difficult to scale because the underlying ML is unable to determine the root cause of problems. These ML approaches are also not autonomous: they do not train themselves. They require analysts to refine them by filtering out false positives.
These shortcomings have led to the emergence of a new generation of modern AIOps platforms that better support today’s cloud environments and automated software development. They combine full-stack observability with a deterministic AI engine that can yield precise, continuous and actionable insights in real time. They support fully automated cloud operations across the entire software development lifecycle.
Modern AIOps solutions can support DevOps-driven software development from inception to deployment, through automated testing and release validation. They eliminate many manual tasks, enabling developers to move at a faster pace. Rather than relying on the standard dashboards provided by their AIOps solution, developers can customise their own dashboards, to surface the precise answers they need to perform their role and collaborate with other teams.
Once software has been deployed in production, Modern AIOps platforms can help ensure applications are reliable and continue to deliver seamless user experiences. They can even make their applications self-healing, so problems are automatically resolved without human intervention from DevOps teams.
Boosting developer efficiency
All these attributes increase developer efficiency by automating the more mundane tasks of software deployment and operation. This frees up developers—a valuable resource—to focus on the more creative aspects of software development.
DevOps is greatly accelerated by combining multiple open source solutions into a unified toolchain to solve a specific problem. But even though these solutions are all designed to facilitate and accelerate software development, assembling them into a functional whole can consume a substantial amount of a developer’s time. Modern AIOps solutions can facilitate this process, in addition to increasing the speed of software delivery and improving code quality.
AIOps platforms can enable developers to optimise their software more effectively and determine the root cause of any problems faster, in some cases before those issues manifest themselves in a production environment.
Many organisations use a range of IT service management platforms to manage their modern cloud environments, such as ServiceNow, Ansible and PagerDuty. Modern AIOps platforms that support the integration of these solutions can greatly enhance the efficiency and automation of continuous delivery processes.
Application software development is rarely set-and-forget. New functions are constantly needed to meet changing business needs. Sometimes the required changes can degrade performance. Modern AIOps can immediately detect this, roll back to the previous version if necessary and often identify the root cause of the problem.
In summary, the differences between traditional and modern AIOps are that newer approaches are dynamic and able to produce actionable information in real time. They can be customised with user-created dashboards, enabling teams to operate more independently and collaborate more effectively. Ultimately, modern AIOps empowers developers to innovate rather than spending time reacting and fixing problems.