If you are small and/or fully OpenSource oriented and you are also deploying your infrastructure with container-based resilient, highly available and horizontally scalable systems, then we can say almost for sure you are using Google Kubernetes (or K8S for short) for your container-based apps.

Like many complex things on the OpenSource world, deploying a K8S cluster is not an easy or trivial task especially if you are doing it from scratch. In actual production conditions, we can use automation tools that let us to create a k8s cluster more easily. Those include: magnum (from the OpenStack guys), kops (from the Kubernetes techies) and also some other offerings from the commercial public clouds (like Azure and Google cloud engine, both giving k8s clusters for their users).

Pause.

Let's talk about PaaS (platform as a service) for a moment.

If you're deploying services in a big enterprise, and your enterprise is using any form of private cloud, you need to automate not only the deploying processes but also the continuous integration tasks along different environments or even different clouds. That’s where Cloud Foundry enters the show.

Exposition: know your players

Cloud foundry is PaaS solution that can manage your applications throughout their lifecycle (from development, testing and finally production). Also, Cloud Foundry is multi-cloud by nature (it can deploy apps on both private and public clouds like OpenStack, AWS, Google Cloud Engine, vSphere, Microsoft azure… you name it, they support it).

As many similar projects, you can use the fully OpenSource version, or, pay extra for features using “Pivotal Cloud Foundry” or PCF for short. To sum up, Cloud foundry is a multi-cloud Cloud Application Platform that can manage applications in their complete life cycle and if you are already wondering… yes… it can do containers too (docker/docker-registry fully supported).

And, finally, our final actor: BOSH (https://bosh.io/), an OpenSource tool for release engineering, deployment, lifecycle management and monitoring of distribution systems. Bosh is also the beating heart of the Cloud Foundry. It's also the central tool (and the first component to install) in any Cloud Foundry platform. Below we'll examine the importance of Bosh in the k8s/cloud-foundry combo.

And one small remark

In an old sci-fi movie Mr. Spock said: “Nature abhors a vacuum”.

Well… the IT world as we know it is nothing like mother nature per se, but sometimes things happen by themselves in an almost-natural way when there is a vacuum that needs filling and somehow somewhere somebody creates a project that fills that void.

That’s exactly what just happened recently. First, we have K8S as the leading container-cluster technology (yes, we can dare to say now that k8s is winning the race, if not already won). Secondly, we have a big PaaS project that allows companies and large-scale technology users to fully control their apps on cloud environments (even mixed ones) and it also does containers (Cloud Foundry of course).

Then, it just was a matter of time: Cloud Foundry needed to do K8S.

First act: The KUBO projectLike many other things in the IT industry, the first step is to gain some space in the OpenSource world before thinking of providing an enterprise offering. This is where steps in . KUBO and pivotal were launched by Google and Pivotal during February 2017, and then fully contributed to the Cloud Foundry foundation few months later (June 2017). KUBO uses the same engine that Cloud Foundry uses: BOSH. As a matter of fact, KUBO literally means BOSH on Kubernetes. KUBO can deploy K8S clusters on different clouds too (Google, AWS, OpenStack and vSphere) and make use of Cloud Foundry's TCP router component for the load balancing tasks. For other non-cloud foundry solutions, KUBO uses the already-available load balancer service of the cloud (AWS ELB, Google Load Balancers) and HAProxy-based load-balancers for OpenStack and vSphere.

So, what are the interactions between BOSH and the K8S cluster, and in what way does KUBO use the Cloud Foundry TCP Router? That's a great question.

Kubo’s components Topology





Second act: Enter PKS

After KUBO was released as part of the Cloud Foundry OpenSource offering, a commercial release was needed to accompany the Cloud Foundry commercial version (PCF).

The first announce came in august 29 2017 and has a name and an acronym (like too many things on the IT world!): PKS or Pivotal Container Service (where “K” stands for “Kubernetes”, of course). PKS is the commercial version of KUBO, tightly integrated with Google Container Service (GKE), vSphere, and other enterprise commercial solutions (VMware vCloud, EMC VxRail appliances, and EMC VxRack systems) and also integrated with VMware NSX technologies for container networking and security control.

The following image shows a little bit of PKS interactions with PCF and GKE and reflects VMware PKS in SDDC Portfolio:

The core and heart of PKS is BOSH (or more specifically, “BOSH on Kubernetes” or “KUBO). The added value is the integration with commercial enterprise solutions already mentioned, but aimed mainly to vSphere and Google Container Engine (GKE).

While KUBO is already available since June 2017, PKS is expected to be reach general availability somewhere during the fourth quarter of 2017.

Finale: What is the impact on both the OpenSource world and into the corporate world?

KUBO is already impacting the way OpenSource Cloud Foundry users deploy container applications. Bosh being the de-facto deploying tool for Cloud Foundry, it’s natural to use it too for Kubernetes deployment and integration in already-existing Cloud Foundry environments. By supporting AWS, Google Cloud Engine, OpenStack and vSphere, KUBO ensures a big beach head in the battle of PaaS solutions in favor of Cloud Foundry. Now, any CF user has options to extend its PaaS and include Kubernetes for all deployed container-based apps, and enjoy all the benefits offered by a CF-based environment.

Enterprise using fully-commercial solutions like Pivotal Cloud Foundry, vSphere and other components included in Pivotal Container Service compatibility matrix (a matrix we expect to grow as time passes), PKS is expected to improve the way actual vSphere and PCF users deploy container-based applications on both private and public clouds. The idea of integration, service consolidation and ease of management for complex apps during all the app lifecycle can be extended to Kubernetes clusters in the corporate. This idea eventually should lower operational costs and make big corporate platforms easy to deploy and manage.

This is still very new though, and some caution is recommended before jumping into something so new, but all great ideas start this way and we have good starting points: Cloud Foundry, Kubernetes and BOSH. We just need to see how things develop during the last months of 2017, and observe with a magnifying glass and a Sherlock Holmes attitude how both communities (OpenSource and Corporate) embrace both KUBO and PKS during the next year.

In other words: Let’s wait and see how this show ends up.