2022年5月2日月曜日

Will AIOps replace DevOps?

Is Artificial Intelligence Taking over DevOps?



This item in japanese 

https://www.infoq.com/articles/ai-devops-takeover/

DISCUSS

Key Takeaways

  • Most companies work with some form of hybrid or cloud infrastructure, but managing this has become almost impossible without some form of AI help
  • For teams that are running several different clouds, AI interfaces have become almost a necessity as they evolve and scale their DevOps program.
  • It’s very apparent that AI is already having a huge impact on speed and quality at which software is being shipped.
  • The AI revolution has had the side-effect of making DevOps teams busier than ever, and with development cycles much faster as well. 
  • Ultimately, development teams still need strategic leadership, and although AIs are now highly capable in many areas, they still lack the ability to respond to user demand in truly creative ways.

For many developers, predicting what’s next in DevOps has become something of a favorite pastime. We’ve seen our industry change rapidly in just the last decade, and in that same period the programmer’s role has also changed fundamentally.

In fact, and particularly among those developers of (shall we say) a particular age, it might seem as though the role of the “traditional” developer no longer exists. Rather than the traditional software development life cycle – in which software is planned, built, and then released – many of us now work in multi-disciplinary teams in which development and operations exist side-by-side, and are increasingly indistinguishable.

That model has become known as DevOps, but only recently. And it only took a few years (or months?) for DevOps itself to start changing and adapting. Now, we are adrift in a sea of acronyms (including the more recent DevSecOps) that denote a slightly different way of working, and each a slightly different view of the future.

Among the most recent of these is AIOps. In this vision, AI tools are slowly replacing the role of the developer – just as DevOps did before – and will eventually supplant DevOps entirely.

Assessing whether that prediction is true is tricky, but in this article we will try nonetheless. We’ll look at what AI promises to do for the development process, assess whether it can really ever take over from human  developers, and then look at what DevOps is likely to look like in a decades’ time.

The Promise of Automation

First, and in order to understand why AI tools have been so rapidly adopted by DevOps teams, it’s useful to understand what they promise they can achieve. This promise can essentially be broken into two parts:

  • On the one hand, the use of AI tools is “merely” a way for over-stretched developers to stay on top of the increasingly complex systems they work with. 
  • On the other, AI tools offer a range of automated code development and deployment techniques that have more fundamentally transformed the way that software is made.

With regard to the former – AI tools that make our lives easier – we only have to look at the proliferation of cloud infrastructure models over the past decade to see why AI has been necessary. Nowadays, most companies work with some form of hybrid\cloud infrastructure, and managing this has become almost impossible without some form of AI help. Indeed, hybrid and multi cloud infrastructures, microservices architectures like containers and hyperscale applications have created an enterprise IT environment that is more complicated than ever to keep track of. 

Then there is the second aspect of AI tool adoption – the fact that some AI tools like GitHub’s AI Coding Assistant or Microsoft’s DeepDev don’t just make our lives easier, they open up new possibilities when it comes to code development and distribution. The speed with which AI systems can assess individual user requirements, for instance, makes it possible to use them to tweak and specify default web browsing behavior for each user individually, reducing their vulnerability to particular types of malware while using our software. 

DevOps, AIOps, and NoOps

As a consequence of the utility of AI tools, they have been widely and rapidly adopted by all but the most stubborn DevOps teams. Indeed, for teams now running several different clouds (and that’s all teams, pretty much) AI interfaces have become almost a necessity as they evolve and scale their DevOps program.

The most obvious and tangible outcome of this shift has been in the data and systems that developers spend their time looking at. It used to be that a major part of the role of the operations team, for instance, was to build and maintain a dashboard that all staff members could consult, and which contained all of the apposite data on a piece of software. 

Today, that central task has become largely obsolete. As software has grown more complex, the idea of a single dashboard containing all the relevant information on a particular piece of software has begun to sound absurd. Instead, most DevOps teams now make use of AI tools that “automatically” monitor the software they are working on, and only present data when it is clear that something has gone wrong.

This is a massive shift in the way that we work as developers and operational staff, and so it’s no surprise that it’s been given its own acronym – AIOps. Some, in fact, have gone even further, and claimed that this reliance on AI tools now means we are entering the age of NoOps. Tellingly, however, opinion is divided about which role has been eliminated – whether NoOps mean “no developers”, or “no operations”.

The AI Revolution

All these reflections on the philosophical background to software development might sound a little abstract. Until, that is, you look at the numbers, from which it is strikingly apparent that AI is already having a huge impact on speed (if not the quality) at which software is being shipped.

GitLab's most recent survey of over four thousand developers puts some hard figures on this. This research finds that some companies are releasing new code up to ten times more quickly than previously. Tellingly, 75% utilize AI and ML for testing and reviewing code pre-release. This is up from just over 40% only a year ago.

Image Source

This is great news for developers, or at least those who want to produce lots of code quickly. Unfortunately, that’s not always the same as producing great code. It’s clear, for instance, from ransomware attack trends that poorly tested code is quickly becoming a notable source of vulnerability for many organizations, and that the advent of AI-driven testing systems has done little to reduce this.

Nonetheless, the direction of travel is strikingly apparent. Within a few more years, it seems, the vast majority of DevOps teams will be reliant on AI tools, and software will be released at many times the velocity that it was previously. And that returns us to the question we started with – given that AI tools are now doing so much DevOps work, do we still need human DevOps staff at all?

Well, yes and no. Here’s why.

The Challenges

At the most superficial level, it’s possible to answer this question in reference to a very simple test. As AI tools have been adopted across the development sector, have developers seen their workloads decrease? Ask that question of the average developer, and you’ll be met with a laugh. The answer is no.

That’s because, as DevOps teams spend less time on the day-to-day management of their software, the time they used to spend on this is now taken up with arguably more valuable tasks – strategic planning, meta-analyses, and making sure that their development goals are in line with those of management. In fact, the AI “revolution”, which many imagined would make DevOps obsolete, appears to have made teams larger than ever, and busier than ever. This is because it has had the side-effect of making development cycles much faster. 

This is well understood by managers in the industry. In a recent interview with ZDNet, Matthew Tiani, the executive vice president at iTech AG, noted that DevOps is now "enhanced by, among other things, an enhanced technical toolset -- source code management, CI/CD, orchestration.” 

He also added that successful DevOps implementation makes use of "a compatible development methodology such as agile and scrum, and an organization commitment to foster and encourage collaboration between development and operational staff."

Learning to Live Together

In practice, these factors and trends mean that DevOps teams are increasingly focused on business objectives, rather than technical challenges. This is certainly a change, but it might not be a negative one when it comes to the quality of software we produce. Arguably, in fact, AI tools have given teams the ability to focus their human resources where they work best – in creative, holistic, strategic tasks

You don’t have to look far for evidence of this. Just consider, for instance, that Vue JS is now the fastest growing dev framework in the world, with more than 240,000 websites built with the system now live. Before the advent of AI tools, the idea that a new and complex dev framework could be so quickly rolled out across the world would be laughable. Now, backed by AI tools, DevOps teams have a lot more freedom to be brave in their decisions, and trust that their tools are advanced enough to meet technical challenges.

This means that it’s very unlikely that AI tools are going to replace DevOps, or at least anytime soon. Just as we saw with previous trends in the adoption of DevOps, development teams still need strategic leadership, no matter how advanced their technical tools. And, though AIs are now highly capable in many areas, they still lack the ability to respond to user demand in truly creative ways.

The Bottom Line

In short, we are likely to need human developers for quite a while yet. And though their role might be radically different from how it was ten years ago, that’s the price (and the joy) of working in such a dynamic industry. 

About the Author

Sam Bocetta is a former security analyst, having spent the bulk of his as a network engineer for the Navy. He is now semi-retired, and educates the public about security and privacy technology. Much of Sam’s work involved penetration testing ballistic systems. He analyzed our networks looking for entry points, then created security-vulnerability assessments based on my findings. Further, he helped plan, manage, and execute sophisticated "ethical" hacking exercises to identify vulnerabilities and reduce the risk posture of enterprise systems used by the Navy (both on land and at sea). The bulk of his work focused on identifying and preventing application and network threats, lowering attack vector areas, removing vulnerabilities and general reporting. He was able to identify weak points and create new strategies which bolstered our networks against a range of cyber threats. Sam worked in close partnership with architects and developers to identify mitigating controls for vulnerabilities identified across applications and performed security assessments to emulate the tactics, techniques, and procedures of a variety of threats.

0 コメント:

コメントを投稿