Should AI get to choose a topping in a two pizza team?
How DevOps could be about to collide with machine learning
DevOps is finally getting somewhere. This year the term is ten years old and like most ten-year olds, DevOps is starting to show signs of puberty and cognitive maturity. According to analyst Forrester, this is being reflected in industry. In 2017, a Forrester survey found that over 50 per cent of organisations were to implement DevOps in some form or another, enough for the analyst to claim that 2018 is going to be the year of enterprise DevOps.
While this may be typical analyst bluster, what Forrester did hit on is how automation is helping to drive production and delivery within DevOps.
“In our research we found that organizations which have adopted automation across the complete lifecycle including continuous integration, continuous delivery and production deployment have experienced more velocity and quality,” writes Robert Stroud, principal analyst. “Purposeful end-to-end automation is foundational to success especially as DevOps initiatives scale.”
Rival analysts agree although Gartner went one further last August and suggested organisations should integrate AI with DevOps “to accelerate IT solution delivery and business value.” Really? Are we there already? The DevOps paint is still drying and we are already talking about AI? Not everyone is happy.
“I cannot see the relationship. I do not see AI and DevOps working in a ‘symbiotic’ relationship,” says Josh Mayfield, director at FireMon. “The whole concept of DevOps is to bring together human beings for a more integrated approach to delivering technologies and systems.”
I'm only human...
OK that’s true now but we are talking way down the line here, full-on AI, after all, is not really a thing yet. The automation of tasks is not unusual, so surely AI is a logical next step? While DevOps may not have its feet fully under the enterprise table, it’s surely just a matter of time before we start to see more machine learning and eventually AI creep in to help speed up processes?
Guillaume Ayme, IT Operations Evangelist at Splunk sort of agrees. “DevOps has always focused on automating as much as possible, but with the market being so competitive, it’s unsurprising that it’s now starting to evolve and move towards implementing elements of AI,” says Ayme.
He adds that large web and financial services organisations are always looking for the latest innovative way to accelerate, improve and streamline their application delivery, so AI, or at least machine learning makes some sort of sense. “However, there is a long way to go,” he continues. “In fact, many businesses are still focusing on maturing their DevOps practices, and need to ensure this is optimised before they can even start to think about AI.”
That’s a key point. Despite Forrester’s optimism, DevOps is still very much in its infancy and yet there are clearly some synergies with what machine learning and AI promises. Ayme says the potential value is “undeniable”.
“At its most basic level, continuous improvement in DevOps requires instant ‘feedback loops’ at all stages of the delivery process,” says Ayme. “AI is essential in accelerating the ‘time to feed back’ by detecting patterns in the vast volumes of data faster than humans ever could. Such insights ensure maximum productivity of the application delivery process and improved quality of software. We are seeing AI utilised in everything from anomaly detection of failures, to organisations such as LATAM airline which analyses over six thousand human comments in its customer-facing applications everyday with machine learning.”
Ayme also cites the example of US online property firm Zillow, which apparently uses machine learning to analyse if a new software release risks not adding business value to the organisation, or if it’s of inferior quality and doesn’t meet release requirements. If the criteria are not met, then an instant roll-back of the release is triggered, supposedly saving the company time and resources. This makes sense. Why wouldn’t a business want to know whether new code would hurt the company’s bottom line? The question of course is how did it get to that stage in the first place and isn’t that what DevOps is supposed to solve?
Nigel Budd is head of client services at software services company Clearvision, which works with a number of organisations to support their DevOps process. Budd says that the “cumbersome nature of the DevOps movement” is a barrier to implementing AI, with much of the problem being cultural. That said, he does see opportunity for AI despite both DevOps and AI still being in their infancy.
“Early adopters tend to be the more mature DevOps organisations,” he says, “that are using the benefits of AI within their established software engineering culture and organisational feedback loop to not only monitor more data but to gain greater ‘intelligence’ from its analysis. We do expect uptake among smaller-scale DevOps enterprises to increase in the coming year and it’s certainly something that we’re advocating as a beneficial part of the DevOps mindset/toolchain.”
Music to Forrester’s ears. The idea that DevOps will find a stronger foothold in industry in 2018 could pave the way for more experimentation. With greater stability could come increased confidence to trial machine learning. Gathering and reacting to lots of data is at the heart of DevOps so it makes sense to utilise automation and machine learning where possible to improve outcomes, not make consistent mistakes and add business value. Easier said than done of course.
“For us the opportunity is how AI can aid the effectiveness of the overall product,” adds Budd. “At the moment its application is generally very data led focusing on the efficiency of the code but it can go further by looking at the whole customer experience. Given that 70 per cent of features are not delivering any actual value to their organisation, by using AI businesses can ‘intelligently’ focus their DevOps around features that will add more worth as well as help the business to operate more efficiently.”
So how can AI, or at least machine learning, be used in DevOps today?
According to Jitendra Thethi, AVP at global design and engineering company Aricent, AI can be used to determine subsets of test cases that are predicted to run for an incremental commit on the source code. He says this should reduce the overall test cycle time and the speed of deployment. It can also be used to identity code defects and accurately predict troublesome deployments based on historical data such as code coverage, security scans and test runs. AI / Machine Learning (ML) algorithms could also be run on the build and deployment logs to determine root cause issues and manage the of rate of diverting traffic from the old to new versions of services deployed incrementally.
While this all could improve DevOps decision making and speed up problem resolutions, there are undoubtedly weaknesses. A lack of AI standards and an inability to provide retrospect answers if a decision was taken by AI systems could prove tricky. And that’s just for starters.
“Do not assume DevOps and AI is the responsibility of a centralized team,” adds Thethi. “This might work well at the onset or for a start-up, but certainly not on a continuous basis. Also do not ‘silo’ DevOps. It needs to be pervasive so development teams across the enterprise can adopt DevOps by default. This is critical if you want to scale your deployment. Do not take a laid-back approach to quality checks – it needs to have a schedule and be regimented as software release toolchains can be declarative and policy based, so it is important to constantly be aware of quality and the right levels of code in use. And never take security lightly. Conduct robust security checks and tests to automate the releases in a continuous manner so they can be undertaken irrespective of the underlying DevOps tools.”
The overarching feeling is that despite its infancy there is a big future for AI in DevOps, if only to help reduce errors and speed up delivery. Clearly it can go well beyond this but how far can it really go? Miju Han, director of product and data at GitHub says “there’s no doubt that fully ‘autonomous coding’ is a dream far from reality just yet, but there is existing technology that can automate a number of stages in programming.”
She talks about AI making code suggestions for doing things like patching security vulnerabilities, improving code readability and simplicity, creating automatic human readable documentation and automating test coverage. There is more but where are the people in all of this? Was Mayfield at FireMon right to be concerned and see a disconnect between AI and DevOps?
Budd at Clearvision has a word of caution: organisations should not forget the importance of the human element or rely too much on the tech.
“AI still requires governance by ‘experts’ and sense checking – it is software at the end of the day and you could drift away from a normal you actually want when any human element is taken out.”
That of course is the bigger AI question, one not exclusive to DevOps. ®
We'll be covering DevOps at our Continuous Lifecycle London 2018 event. Full details, including early bird tickets, right here.