I think that, three years later, with many large companies having adopted the ecosystem, it has provided a lot of net positives despite the company operational complexities/respnsibilities it created.
Kubernetes is the reason why Ops teams at large companies (with the proper will and mindset) can finally start moving away from the "Ops" side of SRE and move towards improving developer experience and encouraging a mindset of developer teams owning their infrastructure.
Yes, it is a commingling of highly complex systems, but it is the simplest form it has ever been, such that developers can start working toward maintaining infrastructure.
The way that I've seen large companies succeed in this transition is to concentrate existing SRE resources into educating Kubernetes consumption and having SRE create an inner-company infra platform for developers to consume, until they run into walls which is when the SRE folks come in to help. However, developers being on the hook for their infra and vulnerabilities is a good thing for culture in my opinion. It's all self-hostable too so you aren't racking up cloud bills for educating yourself/making mistakes. It also helps decouple existing services/companies from being overly attached to the stacks/languages they made their features.
And for the people that say that not everything deserves Google-scale, I don't think that addresses the other features brought to the table like secrets management, container management, easy use of environment variables, stateful/reliable replicated block storage (like Rook/Ceph) easily set up for backup and consumption, and tons of other features that come out of the box with standard kubeadm/kubectl.
Testable hypothesis: People who don't like Kubernetes also didn't like VMware back in the day. It has the same massive complexity underneath, indeed even more than K8s in my opinion. It requires high level of training to operate. It's expensive.
Yet virtually every large enterprise has adopted VMware, and a lot of small ones as well. The reason is that companies (a) no longer really cared where individual apps were running and (b) it allowed far better resource efficiency that using standalone hosts. Kubernetes has a lot of the same properties, just for distributed applications. That's also why VMware is all-in as a business on Kubernetes.
maybe it's hard to understand how important k8s is if you don't experience the problems it solves.
I'd use k8s just for how we can easily update and rollback an application during peak hours and not lose a single request. any half baked solution would demand orders of magnitude more than the time it requires to just learn k8s.
autoscaling services and servers, disruption budgets, cronjobs.
there's so much stuff that got consolidated, hundreds of apps, puppet modules and bash scripts, there is just too much to list.
Lot of things have changed for good. Vanilla kubernetes is hard. If there's a magical package to treat kubernetes as PAAS, it is simple, scalable, and highly cost-effective. And it is happening in the industry in general.
Kubernetes is the reason why Ops teams at large companies (with the proper will and mindset) can finally start moving away from the "Ops" side of SRE and move towards improving developer experience and encouraging a mindset of developer teams owning their infrastructure.
Yes, it is a commingling of highly complex systems, but it is the simplest form it has ever been, such that developers can start working toward maintaining infrastructure.
The way that I've seen large companies succeed in this transition is to concentrate existing SRE resources into educating Kubernetes consumption and having SRE create an inner-company infra platform for developers to consume, until they run into walls which is when the SRE folks come in to help. However, developers being on the hook for their infra and vulnerabilities is a good thing for culture in my opinion. It's all self-hostable too so you aren't racking up cloud bills for educating yourself/making mistakes. It also helps decouple existing services/companies from being overly attached to the stacks/languages they made their features.
And for the people that say that not everything deserves Google-scale, I don't think that addresses the other features brought to the table like secrets management, container management, easy use of environment variables, stateful/reliable replicated block storage (like Rook/Ceph) easily set up for backup and consumption, and tons of other features that come out of the box with standard kubeadm/kubectl.