An introduction to MLOps with Jenkins X.

Understanding MLOps

When we talk about MLOps, what we are referring to is best defined as the extension of the DevOps methodology to include Machine Learning and Data Science assets as first class citizens within the best known methods of DevOps. The aim is to demystify Machine Learning and re-integrate the delivery of technology solutions as a seamless process of product development and deployment.

The Continuous Delivery Foundation hosts a collaborative Roadmap for MLOps and Jenkins X is committed to implementing features aligned to that model.

Software systems including Machine Learning components tend to be decision-making systems rather than just data processing systems and thus are required to be held accountable to much higher standards than most conventional software projects. As a result, it is especially important that release processes associated with these solutions meet the highest levels of quality.

Machine Learning project teams are however often a relatively new addition to many organisations and are sometimes lacking in experience when it comes to delivering solutions into production. MLOps is an approach designed to help bridge the gap between where teams find themselves today and where they need to reach in terms of quality and maturity.

Organisations pursuing the development of ML products need to be able to manage cost and time to market by optimising the process of taking ML features into production, reducing Lead Time and shortening the feedback loop between production and development for ML assets.

With Jenkins X, we unify the release cycle for ML and conventional software assets, allowing you to manage your whole solution as part of one standard release process. By doing this, you are able to apply conventional automated testing approaches to your ML assets as well as the rest of your codebase, extending security checks, static analysis, dynamic analysis, dependency scanning and integrity checking to your entire application stack.

MLOps is a framework-agnostic methodology and Jenkins X supports the deployment of ML assets based upon a wide range of different ML frameworks and libraries. We currently support training and deployment of models using both CPU and GPU, across a range of Cloud infrastructure, or in-house.

The use of MLOps should teach best known methods of applying MLOps. It should be recognised that many customers will be experts in the field of Data Science but may have had relatively little exposure to DevOps or other SDLC principles. To minimise this learning curve, the MLOps features of Jenkins X provide defaults aligned to best practice in production environments, reducing the amount of effort necessary to get working solutions into production reliably.

What about my Jupyter Notebooks?

It is common to teach the basics of Machine Learning using convenient scratchpad environments such as Jupyter Notebooks that facilitate casual experimentation and ease of learning. Such courses rarely however progress on to teaching more advanced topics regarding the challenges of managing real-life software assets in mission-critical situations. This leaves a significant knowledge gap across data science teams that must be filled before products can be safely delivered to customers.

Jenkins X seeks to minimise the pain of moving teams beyond the ‘training-wheels’ environment of scratch-built models, scripted ad-hoc on uncontrolled laptops.

By providing a consistent, logical and familiar approach to managing all your project assets to the highest standards, it becomes simple to train teams to work collaboratively and effectively at pace.

Simple ‘quickstarts’ allow teams to create working example projects based upon best practice for managing critical IP that can be extended incrementally to deliver desired funtionality in a safe and friendly manner without relying upon everyone involved having in-depth knowledge of all the aspects of a robust software development lifecycle.

When using MLOps features within Jenkins X, ML assets are automatically managed under version control and audit trails maintained such that it is always possible to understand which version of which data set, training script, model or service is deployed in any given production environment and to quickly revert or upgrade to specific versions of assets in the event of a problem.

Jenkins X makes it easy to wrap model instances in service implementations so that they can be securely and robustly deployed into application solutions in a way that is resilient and scalable.

Built-in release governance processes ensure that all ML assets pass through the same rigourous automated testing and QA processes normally applied to conventional software components, ensuring that you never have to worry about someone’s uncontrolled Jupyter Notebook making it into a customer-facing environment.

Breaking down the New Wall

The success of DevOps as an approach is in large part due to the way in which it tore down the wall between software development teams designing new products and operational staff trying to own and run them cost-effectively and safely. Teaching developers to have responsibility for operational concerns and helping operational staff to communicate their requirements to development teams has been instrumental in reducing the time to market for new products.

The introduction of Machine Learning capabilities through dedicated Data Science teams has created a new silo, a new wall to throw things over and a fresh chorus of “Well, it worked on my laptop!” in engineering departments worldwide.

MLOps tears down this new wall to blur the line between Data Scientists, Software Developers, Operational teams and Product Owners, making it faster, safer and cheaper to get AI-driven ideas into the marketplace.

Last modified April 8, 2020: release 0.0.1634 (a950dfc)