By: Jayati
June 12 2019

Applying Machine Learning to Continuous Delivery

In the realm of technology, we are making progress towards a better tomorrow. As Machine Learning/artificial intelligence has taken us one step closer to the dreams of automation, the progress in the last one decade has truly been phenomenal for the IT. Adopting measures has helped frameworks deploy processes, but failure of systems has made a mark too. However, automation is still a boon for the delivery of products to the end user. It adds up the saved time that can be better put to use for progressive innovations. 

In this blog, we will unleash how organisations are integrating ML with Continuous Delivery for sheer benefits of automating operations. 

text 'Data has a better idea' in blue neon lights

Defining Machine Learning in context to Continuous Delivery

When a system possesses the ability to release continuous production without involving traditional servers, it is termed as Continuous Delivery (CD). Changing the deployment in a safe and sustainable way, the distributed system of a complex production is converted into a routine affair. This is achieved by strengthening the code and ensuring that it is always deployed. 

Among thousands of changes made by developers on a daily basis, the organisation employ cloud environments that run independent of manually updating servers for continuous development, testing, and delivery of new code. Companies like Facebook and Netflix are believed to be delivering on a large scale, upto 10 releases per week. 

Machine Learning (ML) on the other hand is an advanced system focused on the development of programs that can access data and learn automatically. Without human assistance, the system becomes capable of taking actions. Thus, Machine learning is commissioned for continuous delivery to enhance its power and ability to release. 

Machine learning can be of two types:

  • Supervised: This requires a push from the human end for algorithms and models. They need parameters and feedback for making better decisions and getting accurate over time. 
  • Unsupervised: Here the ML algorithms can deduce meaning from the available data without human intervention. 

Since AI is still in the adoption phase, supervised ML is considered as the most accurate for the fact that it gets double checked by human knowledge too. 

With minimum human intervention you can supervise machine learning to become a more smarter and accurate tool

How can AI help in avoiding Continuous Delivery errors?

Now that we have understood how the two systems can work, the next step is to integrate AI and improve the processes and performance with reduced errors. Here’s how you can ensure it: 

Regressive Performance

Testing the performance of your application is the first step after the deployment without any doubts. According to Build.com, 60 minutes per deployment are spent while manually verifying the app. Which adds up to 21 hours for 3 production releases a week. Now, if ML is brought in and applied to this process, the effort will reduce by 85%, i.e., only 3 hours per week. 

Regressive Quality

Delivery of an application in time isn’t the only box to check. Quality maintenance is an equally important measure, especially when the post-deployment errors have the ability to become critical. Here, Machine Learning can be relied upon for the new and unique events of the application to pick on the errors.

Necessary Supervision 

As discussed above, with minimum human intervention you can supervise machine learning to become a more smarter and accurate tool. The outcomes will only get better with feedback on the algorithms and models of ML. Therefore, unsupervised ML can be kept aside for now. 

Let’s understand these better with an example:

HARNESS is employing AI/ML for Assistance

Harness is a software delivery company that is bringing the industry’s first Continuous Delivery-as-a-Service platform to the market.

Primarily using unsupervised machine learning, Harness provides its DevOps teams with visual tools that can be accessed via a cloud service and enable them to build pipelines within minutes. The IT operations of the team are streamlined without any extensive programming expertise. 

Steve Burton, a CI/CD and DevOps Evangelist at Harness says, we don’t just automate the deployment of software artifacts to production; we also automate health checks using AI and ML. We call this Continuous Verification. 

Harness Business transaction analysis
Source: Harness

This image clearly shows how Harness was able to flag three business transactions that didn’t perform post-deployment and are regressing. The output of applying unsupervised machine learning (SAX & Markov) to an AppDynamics data set that’s monitoring an application is showcased. 

Next Step: Automated Rollback

Once Machine learning is integrated for the release of continuous delivery, the next obvious step is taking it one level up. For instance, automating entire pipelines. Instead of just one part of the process, ML should be able to automate the entire process: deploy, verify and also recover from the failures, if any. Such auto-generated rollbacks might take some time to manifest, but it’s a near future possibility. 

Wrapping Up

With continuous learning and improvement, Machine Learning can build better tools of Utopia. Along with DevOps and Agile, sustainable deliveries can also be achieved by shortening feedback loops and continuous testing. 

Share your thoughts on the topic at our social platforms: Twitter, Facebook and LinkedIn

To ask our experts for more interesting articles like these, contact us [email protected]