Its nice to love your tools. Don't start thinking they are the one true path.
I don't see the point of your counterargument. For starters, there are plenty of managed containerized solutions that just run your containers without you ever having to bother with them. Secondly, it seems you got it entirely wrong: the point of pets vs cattle are the services, not the servers. You want to take your services down and put them up without surprises. Unless you're planning on rebooting your infrastructure just for shits and giggles, it makes no sense to talk about treating "servers" as pets, specially as you already get those as managed services just like you get VMs.
Behavioral patterns for a user are not tethered to one ephemeral implementation.
I ran a huge VMWare cluster in 3 data centers across the globe, not so different from an AWS/EKS pipeline.
Yes, I had to treat the hardware like pets to an extent. But the developers had no problem pivoting between VMWare and what we ran in AWS because the software tooling we provided looked the same.
Some folks believe memorizing YouTube videos = expertise.
You can always point out that pods are ran on nodes. Nodes use the standard built in GCP Auto-scaler (instance groups + load balancer). So its a great wrapper! But, it's a wrapper. GCP also! has a way to use a docker image as your VM.
This individual was shocked to learn I thought you could treat the iron-born servers as cattle too. (But, my first clusters were in the late 90s, so got to the cattle concept quite some time ago)
It seems you're missing the forest for the trees. They put in the work to refactorize their services so that they could be treated as cattle and also autoscale, and the author stated that after doing his homework he determined that for his company Kubernetes offered the most benefits. There isn't much to read from this.
> Just to add on my point, wouldn't the result (in terms of performance / resources usage) be the same if instead of "containers" the author had chosen "AMIs" and instead of "Kubernetes" the author had opted for "Autoscale Groups"?
The author explains that he considered using EC2 instances but after analising the tradeoffs the company decided to just jump to EKS.
If you'd like to debate containers vs VMs then it's perfectly fine, but the author of this blog post just documented his learning path and pointed out what worked for him. Sometimes you need to call a shot, and the tradeoffs you need to consider are so minor and irrelevant that a coin flip will do.
"I need X million USD in engineering spend this year because we need to be on Kubernetes".
"I need X million USD in engineering spend this year to fix half a decade of awful technical execution and decision making (that all happened under your watch, BTW)".
Leave that out. Many right decisions look stupid later. It will happen to you to. Time makes fools of us all.
I don't know what is there in the IT/dev industry that compels some characters to quickly whip out blanket accusations of gross incompetence to anyone who isn't them.
This mindset is particularly egregious given that the whole industry has enthusiastically adopted as a best practice just agilying big balls of mud through sequences of quickly delivered stopgap solutions while refactoring and paying off technical debt is seen as wasted effort.
The author of this blog post clearly described refactoring a legacy system that worked reliably in hopes to improve their operations. Yet, here you are accusing someone investing their time and effort to improve their stuff as something that could only be explained as incompetence?
It was a satirical observation (based on my experience) that "the business" tends to scoff at unsexy foundational rework of existing tech. The trendiness of Kubernetes is used effectively to "trojan horse" that kind of work in.
I am jokingly suggesting that at this stage maybe that's the real value of Kubernetes.
"I need X million USD in engineering spend this year because we need to practice DevOps and SRE."
Also, it's silly to just assume that continuing to treat pampered EC2 instances that had to be manually deployed ande cared for is something that benefits a projectsl, specially if the company already shed those bad practices elsewhere.
The writer starts by saying that servers were treated as pets, which inherently means difficulty (as the author clears out). I assume that, at some point, their services got reworked to a shape where they could be deployed in servers treated as cattle. This is a work the author had to pay no matter if the final goal was Kubernetes, Autoscale Groups or any other solution.
Then the author explains how they got to the conclusion that they need to containerise their service(s) in order to be able to use K8s, which would then, in turn, allow them to scale properly (adding on top the Go rewrite that is mentioned at some point in the post). The author also explains that Autoscale Groups were discarded because of their complexity.
It's not clear to me that K8s was the actual thing that helped them scale, but rather the work they put into reworking their services. In my experience, once your service(s) are ready to be deployed in servers that can be managed as cattle, the benefits show up independently of the deployment solution that is used to deploy the service(s) (K8s, Autoscale Groups, etc...).
Just to add on my point, wouldn't the result (in terms of performance / resources usage) be the same if instead of "containers" the author had chosen "AMIs" and instead of "Kubernetes" the author had opted for "Autoscale Groups"?
If that were the case (which I believe it might have), the other thing to consider would be the difficulty of managing a K8s cluster vs the difficulty of managing an Autoscale Group. I've seen quite some horror stories about K8s[1] and I'd rather choose ASG over K8s.
[1]: https://k8s.af