RSS

On future of kubernetes

Everyone is talking about Kubernetes, but is it really that big of a deal? What’s going to happen to it in 5, or 10 years?
Share this page:

How we got to “the age of Kubernetes”

For decades we ran our critical applications on physical servers, and life was good. Simple.

Then we reached the Virtual Machine era. Provisioning a virtual machine on same physical machine saved us a lot of Hardware. Still, networking, for example, remained slow, and we had to wait a week just to get an IP address assigned. Not to mention those firewall rules…

We somehow never reached the age of software defined networking (SDN) and Network Virtualization. That was just a promise of a fully automated private clouds, which was never delivered. Why? Just think about the insane amount of engineering hours required to make an OpenStack, or something similar, actually work.

Then, we got 2 big breakthroughs:

  1. Containers. Docker is just amazing. You can build complex a app architecture in a completely stateless fashion. An upgrade of each service / container doesn’t penalize an entire application. Super easy to roll back, if we deploy stuff to production without really testing in QA.
  2. Public clouds. And just like that - we got a whole bunch of stuff as a managed service. With architectures such as serverless we could provision super complex app architectures, paying next to nothing while we don’t have any users or traffic.

Enter: the age of too many technologies

Google “should I use public cloud” or “why move to kubernetes”. You’ll see so many opposed opinions. The truth is that the IT professionals are a bit confused. There are so many different technologies that it’s overwhelming.

Tech

To make this even more difficult, in the last 10 years we:

  • Massively tried to make OpenStack work, and realized it’s just too complex for an average non-IT company.
  • Massively tried to adopt DevOps, never understanding that people who speak French (Dev) and German (Ops) can’t speak unless they ALL new a new language.

And this brings us to Kubernetes… Kubernetes solves our container orchestration, BUT:

  • It’s VERY complex, both to build and operate.
  • We still need to manage the master and worker nodes, so - physical or virtual servers, that have an OS, require occasional updates etc.
  • To get from Kubernetes to something usable, you need a whole bunch of tools, example: Load Balancing, Monitoring, Infrastructure Orchestration, Service Mesh (Istio or similar), which are also more or less complex.

My point? If we decide we need Kubernetes, we better budget up to build a usable platform on top of it.

Do we need Kubernetes then, or not?

Let’s not go back to the title of this post. What is the future of kubernetes?

First of all, what do we need kubernetes for? Kubernetes is a container orchestration platform. So who needs that? Anyone who uses containers, needs an orchestration, so… everyone?

This is where it gets interesting.

Up until now our only option was to build our data center and manage vSphere by VMware to “orchestrate” our VMs (virtual machines). We simply had no other options if we follow this logic (Hyper-V is not a serious option). If we follow this logic, since we do need kubernetes - building and managing kubernetes clusters the right answer.

However, we now have to manage and operate all these virtual machines and containers. Perhaps another option is to just use the public cloud, and have all this as a managed service. Did you ever wonder which hypervisor Amazon or Google use? No, because it doesn’t really matter, it’s managed by a cloud provider. We basically just take care of our application and data.

Back to the original question, do we need kubernetes? Again - it depends:

  • If we use public cloud, we don’t care if they’re using Hypervisor A or B… or if they use Kubernetes or Swarm or whatever they might use for container orchestration.
  • If we’re building a PRIVATE cloud, (we are then a very brave organization) then - yes, we should be considering Kubernetes. We should be asking ourselves if building a private cloud in 2020 makes any sense first, but I’m kinda assuming you already did that…

Let’s not forget about that Compliance

Compliance is another dangerous topic that I’ve been studying very deeply last few years, and even though bunch of companies claim that due to compliance and regulation their workloads must stay in the data center, the truth is that more often then not - it’s only someones interpretation of the regulation. When you read the actual documentation, things get quite different.

Conclusion: Kubernetes 5 to 10 years from now

In my opinion, the current situation is that we have 2 large groups:

  • Group A: 70% of big companies keep the core of their business in a data center. These are the ones who are building Kubernetes in 2020, as well as the tools around it, needed to built an actual platform for the developers.
  • Group B: 30% have already given up managing virtual machines and containers, and have the core of their business the public clouds. These are the ones who don’t need to worry about container orchestration, and therefore will not be needing kubernetes.

5 years from now these % will be inverted. Something else I think will happen is that we’ll get “specialized” types of kubernetes clusters, just like we have Linux, and we could end up with:

  • Super secure Kubernetes.
  • Graphical Design oriented (you know… GPU and stuff).
  • AI/ML ninja clusters.
  • Management Clusters, etc.

10 years from now, the Group A will be very small, less than 10% of the overall market, and we are mostly talking about service providers and insanely compliant sectors.

My advice? Better spend your time exploring Serverless options on your favorite public cloud, you will get just crazy performance for a much smaller buck, and you’ll motivate your engineers much more, then by sending them to a 3 day “Kubernetes Workshop”. Find a way to make your engineers bring value, that’s how you get them to stay.