As you probably know, Kubernetes has become the default container cloud orchestration system. What you may not know is that developers have been using Kubernetes as the foundation for other software stacks. With the newest of these, Kubeflow, machine learning (ML) has come to Kubernetes.

David Aronchick and Jeremy Lewi, engineers on the Kubeflow project, explain:

Building any production-ready machine learning system involves various components, often mixing vendors and hand-rolled solutions. Connecting and managing these services for even moderately sophisticated setups introduces huge barriers of complexity in adopting machine learning. Infrastructure engineers will often spend a significant amount of time manually tweaking deployments and hand rolling solutions before a single model can be tested. Worse, these deployments are so tied to the clusters they have been deployed to that these stacks are immobile, meaning that moving a model from a laptop to a highly scalable cloud cluster is effectively impossible without significant re-architecture. All these differences add up to wasted effort and create opportunities to introduce bugs at each transition.

If you know Kubernetes, you can see where this is going. By building ML stacks on Kubernetes, an ML cluster can run on any Kubernetes instance. This makes ML programs far more portable.

As Reza Shafii, CoreOS VP of product, remarks “The Kubeflow project was a needed advancement to make it significantly easier to set up and productionize machine learning workloads on Kubernetes, and we anticipate that it will greatly expand the opportunity for even more enterprises to embrace the platform.”

Today the Kubeflow project comprises an open-source Github repository. It contains:

JupyterHub to create and manage interactive Jupyter Notebooks

A Tensorflow Custom Resource (CRD) that can be configured to use CPUs or GPUs, and adjusted to the size of a cluster with a single setting

A Tensorflow Serving container

Jupyter Notebooks, Container Solutions software engineer Philip Winder remarks, have “taken the data science world by storm by providing a document-style format that allows you to embed both code and markdown in the same file.”

“Kubeflow is a mashup of Jupyter Hub and Tensorflow,” Winder says. Tensorflow, a general purpose graph-based computation engine, abstracts hardware concerns; so you use the same code irrespective of whether you are running on a CPU or GPU. It’s most often used for implementing deep learning models.

Kubeflow is a game-changer, Winder explains, because it:

allows engineers to investigate, develop, train and deploy deep learning-focused models on a single scalable platform. Best of all, because Kubernetes and Docker abstracts the underlying resources, the same deployment works on your laptop, your on-premise hardware, and your cloud cluster. Make no mistake, this is remarkable. For decades data scientists have developed their algorithms in complete isolation. They used esoteric, proprietary systems and languages (Matlab, Mathematica, SAS, SPSS, et al.). It was (and still is in many businesses) a wall. This project marks the beginning of the end of the data scientist and/or software engineer as disparate roles. Like DevOps has merged operations and development, DataDevOps will consume data science.

Kubeflow also takes advantage of the Ksonnet project, which is a configuring application running on Kubernetes. For Kubeflow, Ksonnet enables the movement of workloads between development, test, and production environments.

Like Kubernetes, Kubeflow is governed by The Linux Foundation‘s Cloud Native Computing Foundation (CNCF). It’s already attracted a lot of industry support from such companies as CaiCloud, Red Hat, Canonical, Weaveworks, and Container Solutions.

Want to give Kubeflow a try? Canonical, creators of Ubuntu Linux, have set up an excellent how-to set up Kuberflow guide using Amazon Web Services (AWS). If you’re at all interested in ML or data science, you must check Kubeflow out. It really does have the potential to change everything.

RELATED LINKS

Amazon joins the rush to Kubernetes

Microsoft doubles down on Kubernetes for Azure

For cloud container orchestration, it’s all Kubernetes, all the time