AI DevOps

The next big thing

At keynote address at Red Hat Summit, Microsoft CEO emphasizes that the use of machine learning for DevOps could be the next big thing. There is lot of enthusiasm in the IT Ops and DevOps community around using Machine Learning & Artificial Intelligence for solving operations issues across the board.

For some, it may sound that two buzzwords are put into a single sentence, but in reality, the use of AI or Machine Learning for DevOps is the next true innovation which is going to increase productivity dramatically. It will be wrong to assume that none of these principals have already been applied elsewhere, in fact, all of these principles are very much in use but only in very specific environments in big tech companies.

The era of using static tooling for deployments, provisioning, packaging, monitoring, APM and log management will be over. With adoption of Docker, micro-services, cloud and API driven approach to deploying applications at scale, and ensuring high reliability, requires a different take. So it’s important to use the intelligent tools for cloud management instead of trying to reinvent the wheel every time. With the rise of ML and AI, we will see more DevOps tooling vendors incorporating intelligence into their offerings for further simplifying the work of engineers.

 When Microsoft CEO Satya Nadella talked about the use of Machine Learning for DevOps, he implied on the democratize these practices across different industries in order to maximize the technology adaption and hence increase productivity. 

Before we jump into the topic of productivity and DevOps let’s have some little background about it.  

 What is DevOps?

 DevOps is a set of software development practices that combines software development (Dev) and information technology operations (Ops) to shorten the systems development life cycle while delivering features, fixes, and updates frequently in close alignment with business objectives. Different disciplines collaborate, ensuring enhanced quality and increased speed.

 DevOps and productivity  

 Software development life cycle has seen dramatic productivity improvement in past decades, thanks to widespread adoption of Agile based software delivery methodologies. At the very beginning when agile methodology was implemented across many enterprise environments, the implementations ran into some form of friction while following the agile principles.  

 The key difference between agile based software delivery and traditional waterfall based software delivery is that Agile demands more frequent and incremental changes rather than big bang changes, which in turn puts tremendous pressure into the Application delivery pipeline. The traditional application delivery pipeline was not capable enough to handle such demand and that lead to the evolution and development of DevOps philosophy and practices. And since then we all know that Agile driven DevOps has brought dramatic productivity improvement in the majority of the cases.  

 And if you’re talking about today’s hybrid cloud environment it is almost impossible to even imagine any software delivery pipeline without DevOps. The whole premise of cloud environment is based on the ability to scale up quickly and replicate multiple no of times. Without DevOps the whole USP of cloud offerings simply vanish.

What is Machine Learning? 

 As per wikipedia, Machine learning is the scientific study of algorithms and statistical models that computer systems use to effectively perform a specific task without using explicit instructions, relying on patterns and inference instead. It is seen as the building block of artificial intelligence as it enables machines to learn to do tasks without explicitly training them to do so.

Machine learning and productivity  

 The popularity of Machine learning algorithms and widespread availability of easy to use libraries has made very complex and difficult use cases of ML functions relatively easy to use. On the one hand, these tools give you tremendous power to use these libraries but on the other hand, they also demand clean Data. Anyone who is working in the data field or planning to get into data field knows this very well that 80% of the job is always about getting the data ready for the algorithm, which includes data ingestion, data wrangling or cleaning. 

The challenges faced by modern data pipelines were solved mostly by carefully crafted data pipelines using DevOps methodologies and practices, popularly also known as DataOps.  

DataOps and Machine Learning for DevOps 

Whenever there is a discussion about DevOps and machine learning in the same context people often confuse it with DataOps. Both of these concepts are two sides of the same coin. On one hand, DevOps practice helps to better manage data pipeline while at the same time machine learning principles and algorithms help better optimize the DevOps pipeline. In other words, while DataOps is a concept in which leverages DevOps practices to improve the efficiency and accuracy of the data pipeline, Machine learning driven DevOps or AI- DevOps leverages machine learning techniques to improve the DevOps pipeline. 

Machine Learning for DevOps – implementation use cases 

There are many areas of modern DevOps practices that could see dramatic improvement even with the simplest form of machine learning algorithm implementation.  For example, time based predictions can be now be managed much more accurately using neural networks - especially using RNN(Recurrent neural Networks) and LSTM(Long Short Term Memory). Whereas natural Language Processing has enabled so many chat bots and devices like Alexa, SIri, Cortana etc that the virtualization of services can still be more humane with actual consumers. Also when it comes to image processing using CNN (Convoluted Neural Networks)l; the whole premise is dependent on the tagging of the images and their recognition/ validation by automated systems. The strength of such models completely depends on the variety and the volume of these tagged images. AI DevOps can streamline this process and actually enrich the algorithm without imparting bias by itself. Following are some of the areas where AI DevOps can dramatically improve development and operational productivity:

Source code management  

We all know that the bugs are written whenever a piece of code is touched, in other words, the developer writes bug with the same hand while he or she is writing or developing a feature. Having the data of past developer habits could be used to predict the next set of bugs. Such data could be used to enhance and improve test-driven development methodologies and tools to improve the code coverage. Moreover, similar features are already available in code coverage tools such as Sonarqube or coding frameworks such as swagger. 

Monitoring and alerting  

While most of the modern monitoring platforms already implement some or other form of anomaly detection in order to catch unusual behavior in the monitoring data to generate alerts. To my understanding, I will call all these machine learning based monitoring and alerting systems are still at their first generation. The true power of artificial intelligence and machine learning would be to give end-user it the choice of running a customized model on the monitoring data to get the desired outcome rather than settling with pre-existing one size fits all models.  

 Resource utilization  

 In current cloud-based environment resource management and cost optimization is one of the big challenges faced by cloud users. Most cloud resource optimization solutions involve cleaning up the resources after use our using lazy creation mechanics in order to the minimum amount of resources as possible. Although all these mechanics work pretty well, however, a data-driven approach could provide even greater flexibility and cost optimization. Infrastructure utilization prediction could be a classic used case for ARIMA & LSTM and CNN.

 Predictive Model Development & Management:

 It is one thing to develop a model one time but it is completely different ball game to develop a platform which can handle changes in the data sets over time arising out of business changes, customer taste changes and regulatory requirements. All the models become stale after a period of time and it takes huge resources and time to redevelop and validate the models. AI DevOps has the capability to enable this cycle of data changes and model tuning and validation in a more manageable and automated manner enabling the development and deployment of Machine learning and AI to multiple use case with ease. AI DevOps can handle the data flow in a manner that it can detect and flag off any anomalies in the data and also tune a model accordingly. AT the same time, it can decide what actions to be taken depending on the policy objective of the businesses to be maximized. The stream of Reinforcement Machine learning is completely dedicated to such effect.

 Aforesaid mentioned approach and methodology are no strangers to the people who are already practicing it on a day to day basis, but the key here is that the next big thing that is going to improve the productivity of technology solutions will be machine learning based DevOps solution and we call it AI DevOps. 

Thanks Chandan Kumar for his contribution in this article.

 #DevOpsformachinelearning #DevOps #AIDevOps #artificialintelligence #AI #machinelearning #nextbigthing #DataOps #redhatsummit #redhat

Its great Article Shailendra 👍

Like
Reply

Great Article !! you have indeed covered lot of details crisply . For sure AI Devops is new demanding cross functional topic

Like
Reply

To view or add a comment, sign in

More articles by Shailendra Pathak

Others also viewed

Explore content categories