Find the Perfect Kubernetes Distribution

16 Nov 2017 2:00am, by , and

Krishnan Subramanian, Rishidot Research.
Krish Subramanian is the founder of Rishidot Research, a research and advisory firm focussed on Modern Enterprise, application platforms and intelligent platforms. He advises CIOs and enterprise decision makers on their modernization strategy and is an advisor to many startups. Previously, he was VP of Strategy at CloudMunch and Director of Strategy, OpenShift, Red Hat.

There are many different types of Kubernetes distributions in the container orchestration realm. They range from fully community produced to fully commercial and vary according to the tools and features they offer, as well as the levels of abstraction and control the provide. So which Kubernetes distribution is right for your organization?

Your needs as a user — including the working environment, the availability of expertise, and the specific use case you’re dealing with — determine whether Containers as a Service (CaaS) or an abstracted platform is the right choice. No single, straightforward framework exists to guarantee a perfect decision. Still, the two charts we present below may be a start.

A CaaS platform includes the Kubernetes project, and also packages additional tooling needed for its deployment and management. An abstracted platform, on the other end of the scale, goes well beyond the operational efficiencies offered by CaaS, focusing on increased developer productivity.

Janakiram MSV
Janakiram MSV is the Principal Analyst at Janakiram & Associates and an adjunct faculty member at the International Institute of Information Technology. He is a Google Qualified Cloud Developer, Amazon Certified Solution Architect, Amazon Certified Developer, Amazon Certified SysOps Administrator, and a Microsoft Certified Azure Professional. Janakiram is an Ambassador for the Cloud Native Computing Foundation, and also one of the first Certified Kubernetes Administrators. His previous experience includes Microsoft, AWS, Gigaom Research, and Alcatel-Lucent.

With CaaS, developers are required to package their own code in a container so that it may be deployed in a cluster. Even though Docker-based containers address this packaging problem on developers’ behalf, the abstracted application platforms can completely encapsulate the process of building container images internally — automating the process, as opposed to hand-holding the developer along the way. The developer’s task stops once she has pushed her code to a source control tool like GitHub, or to a continuous integration / continuous delivery (CI/ CD) system like Jenkins, and the platform does the rest.

By design, CaaS is closely aligned with the Kubernetes open source project, helping IT to run and manage containers at scale. But a CaaS model expects developers to take care of all of their applications’ dependencies. From a cultural perspective, the DevOps model follows a culture of Dev and Ops working together with cross-functional knowledge. One of the things both teams have knowledge of, in this scenario, is the long list of dependencies.

Abstracted application platforms use Kubernetes as the core component, helping IT run containers at scale with less overhead than CaaS. Developers need not worry about managing runtimes or any application dependencies. Instead, they can focus on writing application code and pushing it to a source control repository or CI/CD system.

Abstracted platforms enhance developer productivity, while taking away control over the underlying components. You can say DevOps is still at the center of this model. But with abstractions, there is no need for this cross-functional knowledge — it becomes redundant busy work. Developers need not understand the underpinnings of Kubernetes or how to manage it.

As we mentioned earlier, there is no straightforward framework for selecting between CaaS and abstracted platforms. Your choice depends on what your organization wants to achieve for developer productivity and the specific use cases you foresee for your organization.

Kubernetes Distributions

Once you have a good idea about which end of the spectrum between CaaS and abstracted platforms your needs fall, you can start to compare offerings.

Scott Fulton III
Scott M. Fulton, III has been a contributor to The New Stack since 2014. Scott edited The State of the Kubernetes Ecosystem for The New Stack, and has also produced and edited countless others for the technical publishing industry on more than a dozen titles. He is also currently the author of Scale: A Journey Beyond the Edge of Conventional Technology, a blog published by ZDNet.

We divide the available Kubernetes distributions into four classes. These are the packages and services through which you are able to obtain, or purchase, or purchase support for Kubernetes:

  • Community-supported distributions are the free and open source packages with which you can deploy the platform yourself and give it a go. Minikube is a genuine Kubernetes environment for local, experimental deployments on a single computer.
  • Vendor distro (no value-add) shows companies that deliver so ware solutions, or cloud-based platforms, that include pure Kubernetes plus vendor-backed support.
  • Vendor distro (with value-add) shows companies that offer more complete environments, including scheduling, development, and lifecycle management, featuring Kubernetes at the core of their systems.
  • App Platforms / PaaS shows full-scale Platforms as a Service, including Red Hat OpenShift, that actively abstract away the management and maintenance of Kubernetes behind end-to-end, automated development and deployment environments.

For those interested in an even more detailed collection, take a look at this frequently updated, community-managed list of Kubernetes distributions:

 

Red Hat’s product manager for Kubernetes and OpenShift, Brian Gracely, told us he expects customers’ recognition of Kubernetes to actually subside, as momentum for the platforms that contain it (such as his own, naturally) continue to rise.

“Ultimately, it kind of comes down to, are you building a business model around the idea that eventually, it does become boring?” asked Gracely. “You have a choice of then building some differentiation on top of that, or around that. What we see right now is a very, very healthy ecosystem around a lot of companies that want to be part of this digital transformation age — cloud-native applications — and that’s fantastic.”

The Cloud Native Computing Foundation, which manages Kubernetes, and Red Hat are sponsors of The New Stack.

Feature image via PXHere.

This post is part of a larger story we're telling about the Kubernetes ecosystem.

Get the Full Story in the Ebook

Get the Full Story in the Ebook

View / Add Comments

Please stay on topic and be respectful of others. Review our Terms of Use.