Are you both impressed with and intimidated by Kubernetes? It’s understandable. Kubernetes is moving fast, it’s super powerful, sophisticated, has a large upstream community, and tons of vendor interest, a huge user base, and is moving at the speed of light. This can make it intimidating. In short, it looks a lot like Linux did back in 1999 when I started. The question I have asked myself is, “is Kubernetes the new Linux?” I have answered it myself with a resounding yes, hence I am betting my career on it. I feel like I can invest a ton and brain power in investing in Kubernetes and it will pay dividends like Linux did. Here’s why…
Kubernetes is a platform. This will likely split my audience into a few different buckets. Those that say:
- “yeah, so what”
- “yeah, but…”
- “Well, of course, that’s why I am betting my career too…”
I am in bucket number three, and the rest of this article is going to explain why. Full disclosure, I live in the Kubernetes world. I have ate, slept, and breathed containers for the last 5 years, so I am biased. That said, I am not stupid, and I haven’t checked my brain at the door. I am a long time programmer, and an equally long time sysadmin (because back in the Unix days those things were one and the same – hello the return of those days, with DevOps, or maybe DevSecOps. But, I digress).
What Makes Kubernetes a Platform?
Kubernetes is more than a scheduler. It’s a way of modeling an IT Unververse (TM). It’s a 10 ton dump truck that handles pretty well at 200 MPH. That’s a funny way to describe it, but let’s double click on that. At build time, Kubernetes allows application architects to wire together many different containers, as well as define the storage they need, the networking they need, and even the compute resources they need at runtime. All of this is stuffed in a YAML or JSON file depending on your preference (genius in and of itself). At runtime, it’s a layer of software that runs on every node in your cluster. It essentially transforms the cluster into a single computer that can be managed through a single API. OpenShift 4.X is going to take it a step further, and allow you to manage the underlying infrastructure (cloud servers, and operating system) as well. Kubernetes is the new data center API. That’s why so many storage, security, network, and performance vendors can be found at booths at KubeCon. All of this “smart money” sees where the world is going and wants on the ride. This is like Linux World back in the day.
Like Unix to Linux (which I still see to this day, especially globally), and bare metal to virtual machines before it – regular applications to containerized applications is going to happen. When virtualization first started getting popular, there were the naysayers who said it would never run databases, or would never run backups, or choose your super special workload. Now days, we KNOW that is false. Everything can be run in a virtual machine. I believe the same is true with containers. At least, I believe enough of it is true that the vast majority of the world’s workloads will be moved to containers over the coming years. I think there are two phases of moving to containers:
- Simple Containers on a Container Engine – Splitting them up into code, configuration, and data
- Orchestrated Containers on Kubernetes – All requirements from #1 plus ensuring that you know how to use the platform (actually fairly easy once you tackle #1)
I think 90% of the world’s workloads can move to one of the above two models. Hence, I am betting MY career on Kubernetes.
The Counter Argument
The Kubernetes platform dominates the world if…. if you believe the world will make it to containers. There is an argument to be made that containers are hard. There is also an argument to be made that Kubernetes is hard to learn (I would actually argue that #1 above is more difficult). In that case, I might argue that a best of breed, piece by piece solution could be easier to adopt. They are more flexible and can integrate with many different technologies including traditional HPC environments, cloud environments (AWS, GCP, Azure), etc. That’s true, flexibility and best of breed tools are easier to adopt. That said, they don’t provide as much value as big bets like Kubernetes and Containers.
If your company is not ready to take a big bet, it’s not going to be ready to make big gains. Your going to make marginal gains. If you have a company that can provide “some” value, it’s completely reasonable and rational to sell that value to the marketplace.
The Other Companies
Companies like Mesosphere and Hashicorp have solutions that work with Kubernetes but aren’t Kubernetes.
Hasicorp’s Terriform is popular for provisioning Kubernetes and Vault is a popular choice for storing secrets. This gives them the flexibility to work with any Kubernetes vendor but probably aren’t big enough business,so they are adding things like Nomad which do compete with Kubernetes by scheduling regular processes in a cluster – but, I struggle to see how that’s differentiated enough from LSF, Kansible, Unisys or others.
Mesosphere also promotes Mesos as a solution to provision large clusters of processes, including Kubernetes clusters. While that is useful for a few Internet scale companies that are willing to take the risk, it’s a bet that just doesn’t work with basic engineering principles. A + B to get to C incurs complexity which most people don’t want. Most people don’t run Kubernetes on Mesos, that’s ridiculous.
These companies and others find it difficult to retool to become a Kubernetes provider, so they are looking for ways to work with it. That’s completely rational. It also has the advantage of being more flexible to survive a changing market place. Little tools that provide additional value here and there, can more easily survive major upheavals, like the shift to cloud providers.
That said, they are just never going to have as big of businesses as the ones built by vendors that win the platform…
Google, AWS, Microsoft, VMWare Pivotal, and Red Hat are betting on the platform becoming Kubernetes. Heck, VMware has three different Kubernetes offerings, that’s how much they love it 😉 I am betting my career on Kubernetes, and I know a lot of other people doing the same. The first time I made a big bet like this was with Linux in 1999. To be honest, I got lucky. I didn’t bet on Linux because of a business sense, but because of a sense that Open Source was going to change the world. Unlike the Linux revolution, this time I made the choice consciously because I analyzed the market place, and analyzed the value of building on a platform.
So, next time you are looking at building a solution, buying a solution, or just trying to figure out where you want to work, I hope this blog piece helps you put things in a context that helps you be more successful 😉