Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

Stories from KubeCon - Carmine Rimi of Canonical

DZone 's Guide to

Stories from KubeCon - Carmine Rimi of Canonical

We're bringing you more from KubeCon with the Product Manager of Kubernetes and AI from Canonical.

· DevOps Zone ·
Free Resource

holographic cubes

At the intersection of Kubernetes, AI, and a world of possibilities.

Another installment of my interviews from this year's KubeCon, this time with Carmine Rimi, Product Manager of Kubernetes and artificial intelligence.

You may also enjoy:  Stories From KubeCon With Jason McGee, CTO, IBM Cloud Platform

That’s an interesting mix of portfolios. How do they cross over?

In the AI space, we offer and package Kubeflow. Kubeflow is open-sourced by Google, and is a Kubernetes-native application. It bundles a lot of popular frameworks like TensorFlow, PyTorch, and others, as well as pipelines for workflow creation and GPU awareness.

What have people been building with Kubeflow over the past 18 months with Canonical?

It’s still in the early stages, so people are developing and training their models using Kubeflow. During development, we recommend people use MicroK8, our single-node cluster that developers can install with packaging tools such as Snap. Then you can do your training locally, and in the end, you have a model you can export to production, and start your next training.

Why are you here?

Primarily Kubernetes and Kubeflow, but also because of Ubuntu. It’s not just our offering of Kubernetes, but we also support many other public cloud offerings for Kubernetes. Under the covers, they all operate on Ubuntu, which means we are also here to support our customers and other customers in that space.

With our own hosted distribution, we have a multi-cloud offering and using automation tools you can deploy clusters of 1,000-5,000 nodes in any of those public clouds. I think we have the widest spectrum of deployment targets at a low cost compared to our competitors.

How much has the container trend changed the general path of Ubuntu development?

I think a big way. We have our Kubernetes team, but we also do invest in the entire operating system landscape itself. As you said, we have a lot of support for containers now, but we still have support for virtual machines, too. These are different form factors for the actual operating system, and whether you want a fully-fledged operating system, or you want a minimal version. We cover the whole spectrum.

Before containers were so widely adopted, the space was slightly different in terms of creating virtual machines. The Hypervisor is still a big deal for a lot of companies, and I think we’re still in the early part of the adoption curve for Kubernetes, there’s a lot of exciting projects, and a lot of things happening.

What surprises me is how many organizations don’t do DevOps yet. Sure, you can do containers, but somebody is manually pushing the button to build and deploy. I think Kubernetes and containers shine when you start thinking about CI/CD pipelines.

I’ve got a friend who’s working for a company here in Europe, and this company is a conglomerate. They’ve acquired a lot of other separate companies, with hundreds of technology products. Within that company, these CI/CD and microservices practices still aren’t native.

There is still a difference between building on the cloud and cloud-native. There are early-adopter traditional companies now starting to convince others to adopt.

You bring up a good point. You find that a lot. If you are an early adopter, then you might have adopted something two, three years ago, and you kind of forget. You forget the joy that other people experience when they first discover new practices and all the headaches that they solve.

I was in the cloud team at Workday and one of the things that we tried to do there, one of my missions, was to have a software-defined data center. Up until that time, the data center itself and how servers get created, racks, and virtual machines, was a manual process. It involved tickets that took two weeks, and you know all those classic things that are still true in a lot of different places.

With Kubernetes, a lot of that process goes away, and with MicroK8, developers can take advantage of this latest stuff directly on their laptop. These tools help some of these organizations that haven’t adopted yet start to get a sense for what is possible.

In terms of those early adopters or innovators, which I think is one of the things that we target as a company, is asking what are some of the friction points that they experience in their consumption of open source, and how can we eliminate that?

A lot of the tools we create go a long way towards making it easy for innovators to consume open source. We also help solve some of the boring complex things that have nothing to do with your business.

How much of your team’s time is spent between making your offering as good as it can be versus helping those vendors make their offerings as good as they can be?

We try to ensure our offering offers something over people just using Ubuntu on another platform, and I think what we focus on the operational primitives, so, for example, we have the same APIs between offerings. This means you can deploy a Kubernetes cluster of any size on any of these different substrates and Ubuntu can handle it. You can upgrade when you want to, and when you need to.

If you’ve used some of the public clouds, you know that they have their own cadence for when they upgrade. I don’t think any of the public clouds are on the latest versions of Kubernetes. We were on 1.14 within two weeks and so if that’s important to you, then that’s one of the ways that we ensure that our offering is compelling. We can have a cluster of Microk8s. When you think of IoT devices, edge clouds, then those are areas where Ubuntu is dominant.

What’s on the Roadmap?

We see a massive and to some degree, a surprising level of adoption for MicroK8. It is infiltrating many areas, and so on the back of that, we are looking at additional innovations and use cases.

With snaps, they are kind of like the applications on your phone that automatically upgrade and update if they’re within the same major or minor release. When there’s a security exploit, these snaps automatically update. Of course, MicroK8 is a snap, so also easy to upgrade.

Now if you’re not on Ubuntu, we also have a technology called multipass in beta on all the different operating systems. You can download an application for Windows, for the Mac, for Linux. With that, you can run something like mulitpass launch bionic, and you’ll get a virtual machine that is Ubuntu.

It’s similar to vagrant, but not using Docker. It uses the native Hypervisor for the operating system, but with our cloud images. You can use the same images used in the public clouds locally, so you can almost think of this as creating your private cloud on your laptop or workstation. You can then install tools like Kubeflow, and you’re off to the races.

With Multipass, you can spin up as many of these as you want and from there do what you need to do. Once we add clustering, you could create three different VMs on MicroK8 and each one of them clustered together.

In terms of workflow, is the Windows Subsystem for Linux (WSL) supplemental to this?

Yes, I think you’ll find WSL great for certain use cases and you’ll find that Multipass is great for other use cases

I think having multiple versions of the actual operating system that you want to run, plus also WSL. It is an Ubuntu kernel, but it’s different from what runs in the cloud. If you’re looking for essentially an Ubuntu shell then that a more natural place if you’re looking for more of your private cloud option than I think Multipass is much better for you.

Further Reading

Kubernetes Is Boring; Let's Talk Serverless

Evolvement of Kubernetes to Manage Diverse IT Workload

Topics:
canonical ,ubuntu ,kubeflow ,micropass ,microk8 ,kubernetes ,dzone ,ai ,interview

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}