When NOT to use Kubernetes

TL;DR: Default to Kubernetes only when there’s not a better option for your workloads.

To Kubernetes, or not to Kubernetes, that is the question.

Kubernetes Alternatives

  • FaaS (Serverless) — Lambda, Google Functions, OpenFaaS, etc.
  • PaaS — Heroku, Cloud Foundry, Google App Engine, etc.
  • CaaS — Azure Container Instances, Google Cloud Run, Elastic Container Service, Fargate, DC/OS, etc.
  • IaaS (VMs) — EC2, GCE, vSphere, etc.
  • Bare Metal — MaaS, Packet, DIY, etc.

When is FaaS a better choice?

Building your system in the serverless style (on a Functions as a Service platform) requires a bit of a paradigm shift, so it’s best used when you’re already thinking about a rewrite, are building a new system from scratch, or are looking to glue systems together with some integration connectors.

When is a PaaS a better choice?

The hallmark of modern PaaS is optimization for 12-factor apps. The key limiting factor here is that PaaS generally only support “stateless” apps. Of course, you’re not gonna run stateful apps in a FaaS either, but you could on a CaaS or IaaS.

When is a CaaS a better choice?

Kubernetes usually falls in this bucket, or sometimes it’s considered more of a proto-platform for building other platforms, but it’s not the only option here.

When is an IaaS a better choice?

Infrastructure as a Service is often talked about as the legacy architecture these days, but in reality it underpins much of the world’s compute power and even most Kubernetes deployments. So it’s less like legacy and more like a standard layer everyone builds on top of. It’s boring! It just works. It gets the job done. And sometimes that’s all you need.

When is bare metal a better choice?

In my experience, there’s a few good reasons to use bare metal:

  1. You absolutely must have your compute local (for latency or security or legal reasons)
  2. Your workloads need to be on the edge (for latency or security)
  3. You need truly HUGE amounts of compute and/or data storage and managing your own datacenters is more cost effective
  4. You have some fancy hardware needs that you can’t get (cheaper) from a cloud provider

¿Por qué no los dos?

If you have enough diversity of workloads, like say web apps AND machine learning AND big data AND databases AND monitoring AND logging (basically any enterprise), you’re probably going to want to have multiple of these platform alternatives available to you so you can use what makes sense for each workload.

--

--

Cloud Guy. Anthos Solutions Architect at Google (opinions my own). X-Cruise, X-Mesosphere, & X-Pivotal.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Karl Isenberg

Cloud Guy. Anthos Solutions Architect at Google (opinions my own). X-Cruise, X-Mesosphere, & X-Pivotal.