Differences between Cloud Foundry and Kubernetes?

Cloud Foundry and Kubernetes both platform services for deploying cloud-native apps, and they both deal with containers, and the list goes on.

PCF is one example of an “application” PaaS, also called the Cloud Foundry Application Runtime, and Kubernetes is a “container” PaaS (sometimes called CaaS).

Pivotal Cloud Foundry is a high-level abstraction of cloud-native application development. You give PCF an application, and the platform does the rest. It does everything from understanding application dependencies to container building and scaling and wiring up networking and routing.

(source: pivotal.io) Pivotal Cloud Foundry architecture – open source and enterprise

Features

Applications run on Cloud Foundry are deployed, scaled and maintained by BOSH (PCF’s infrastructure management component). It deploys versioned software and the VM for it to run on and then monitors the application after deployment. Although the learning curve for BOSH is considered to be fairly high, once mastered it adds considerable value by boosting team productivity.

  • More basic features of Pivotal Cloud Foundry include:
  • Cloud Controller to direct application deployment
  • Deploy using Docker Images and Buildpacks
  • Automated routing of all incoming traffic to appropriate component
  • Instant (vertical or horizontal) application scaling
  • Cf CLI (PCF command line interface)
  • Cluster scheduler
  • Load balancer and DNS
  • “Loggregator” – Logging and metrics aggregation

Kubernetes is a container scheduler or orchestrator. With container orchestration tools, the user creates and maintains the container themselves. For many teams, having this flexibility and control over the application is preferred.

Instead of focusing only on the app, the developer needs to create the container and then maintain it in the future, for example, when anything on the stack has an update (a new JVM version, etc.).

(source: x-team.com) Kubernetes architecture

Features

Kubernetes is a mature container orchestrator that runs in the same market as Docker Swarm and Apache Mesos. In Kubernetes, containers are grouped together into pods based on logical dependencies which can then be easily scaled at runtime.

More basic features of Kubernetes include:

  • Master node for global control (scheduling, API server, data center)
  • Worker nodes (VM or physical machine) with services needed to run container pods
  • Auto-scaling of containers and volume management
  • Flexible architecture with replaceable components and 3rd party plugins
  • Stateful persistence layer
  • Kubectl (Kubernetes command line interface)
  • Active OSS community

For additional information you can review useful tutorials:

Concourse Fly CLI Cheat Sheet

Patterns and Anti-Patterns when Operating Cloud Foundry in a Private / Public Cloud

Cloud Foundry CLI Cheat Sheet

Factors in Cloud Native Applications [Webinar]

Author: Aditya Bhuyan

I am an IT Professional with close to two decades of experience. I mostly work in open source application development and cloud technologies. I have expertise in Java, Spring and Cloud Foundry.

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s