Why Kubernetes Will Disappear
medium.com
medium.com
1. Let the potential customers run it for free 2. Wait for them to break their teeth on it. 3. Offer them GKE. 4. Profit!!!
To me the whole situation about k8s is that people are running at it like lemming over the cliff: "Yes, k8s is complex and complicated (even as SaaS!!!), but it's still great!" As an "operator" this just goes beyond my comprehension of what good software looks like.
If you go to the GCP pricing calculator[0] and add one n1-standard-1 VM to GCE, it costs $24.27/month.
Add one n1-standard-1 VM to a GKE cluster and you pay $38.27/month. There is a literal line item saying "Kubernetes Engine Cost: USD 14.00".
It's not free. It's just billed under the worker.
Edit: ah, I see my mistake. There's a dropdown that lists "Advanced", which apparently accounts for the $14 difference.
The next-gen cloud systems (storyscript, darklang and so on) are embedding kubernetes, or the features provided by it, in their platform, so the end users do need to interact with Kubernetes.
It'll be interesting to see how well it weathers this part of the cycle and comes out the other side.
For me k8s is useful but overhyped, leading to many companies making use of it when it really wasn't needed (I've seen k8s cluster deployed for single applications !?!)
It has a lot of complexity (far more than just Docker/Docker-compose style stacks) which are only likely to make sense at scale.
The thing that makes me thing k8s will suffer, is that complexity is increasing not reducing. Things like adding service mesh layer, use of operators, CRD etc are all additional complication on top of what is a moderately complex product.
I put my relatively small app on it. We have just 3 nodes. One for database and the other 2 for application and supporting pieces like redis, and elk stack for reporting.
Docker compose doesn't work for more than a single node. I initially started using k8s for seemless deployment of updates in our CI.
Anything with docker alone was beginning to feel like a kludge.
That is valuable so I can't see k8s disappearing unless there's a better distributed OS - I don't see one right now.
And while k8s is painfully complicated, there were simpler alternatives and they lost. Maybe that's just a matter of execution or Google hype, but more likely it's because you need a complicated standard when you want to be able to describe most distributed systems.
When stories like this seems to me like a huge indication that K8s is at the top of the hype cycle. It only is suitable for maybe 5% of on-premise IT organizations, and the cloud is not for everyone (fortunately and unfortunately).
Now, do everyone need to run their applications on Kubernetes? Say, I invested millions $$ into Kubernetes, but the very business applications that my team built were proven to be not worthy. Then I see competition happily using same old VM, lambda, api gateways, but much improved operations (logging, ML, automation). I think what is going to decide the widespread success will be the adoption of applications that run on Kubernetes. It will be 3-5 years until we know. Right now it is a honeymoon phase and let us enjoy and ride the wave.
I think containerization is here to stay for sure. It just seems kubernetes offers a ton of complexity and commands that may be hard to debug to do things that I wish could be solved with an easier abstraction (maybe just AWS autoscaling groups?)
The key quote for me is this, (but I'm interested in opinions of others):
In the end, precisely because it’s generic and because running a deployment platform is an undifferentiated hard problem, it can and will be commoditised. Fargate and Cloud Run (Knative) are already barrelling down this road.
Sure you can use AWS autoscaling, but that will only work on AWS.
I can tear down my kubernetes cluster on gke and without too much trouble, launch the whole thing on someone else's hosted kubernetes or run my own on bare metal.
Kubernetes is a network OS for scale. It's far easier to run an application on a cluster of hundreds to thousands of computers using kubernetes as the orchestrator than to use something home grown.
If you don't have a scaling/cluster problem, then k8s is not for you. If you on the other hand have application spanning a hundred computers, it's probably worth it for you.
Docker have had great success with the former but have never really delivered an industry leading product in the later. Swarm has had a number of drawbacks over the years vs some competitor offerings.