$ cat post/green-text-on-black-glass-/-i-pivoted-the-table-wrong-/-config-never-lies.md
green text on black glass / I pivoted the table wrong / config never lies
Title: Dec 12, 2016 - Kubernetes Wars, Serverless Hype, and Cat Feeding Machines
December 12, 2016. I sat in the cozy office of my San Francisco apartment, sipping a cup of green tea, and trying to catch my breath after another week of intense ops work. The Kubernetes wars were heating up, with Google, Docker, CoreOS, and others duking it out on their respective blogs and communities. Meanwhile, outside this war zone, serverless hype was beginning to bubble over like an unboiled egg.
A few days ago, I had spent the better part of a weekend debugging an issue in our Kubernetes cluster at work. We were running critical services across several namespaces with a mix of stateful and stateless containers. The problem? A rogue deployment caused by someone’s forgotten label update on a service. This resulted in one of our primary services being evicted from its node, leaving us without monitoring for several hours. It was the kind of issue that made you question whether all the YAML files could really be managed through Helm charts.
I couldn’t help but think about how far we had come. Back in 2015, setting up a Kubernetes cluster felt like an art form—hand-coded manifests, no declarative tools, and constant vigilance to avoid downtime. Now, it was more of a battle against ourselves to manage the complexity as the ecosystem grew.
As I typed away at my keyboard, I found myself skimming through Hacker News articles from that week. The most striking one had to be “Cat-proofing a cat feeding machine.” It reminded me of the countless times we had argued about whether cats or tech should come first in our lives. Sometimes it felt like we spent more time thinking about how to automate cat food dispensers than building robust infrastructure.
While I chuckled at the thought, I couldn’t shake off the nagging feeling that maybe our focus was a bit misplaced. Serverless and Lambda were all the rage—how many times had I heard “it’s just a function” in my career? But as someone who had shipped real production services on Kubernetes, I knew there was more to it than just invoking functions.
That night, I logged into Grafana, where Prometheus metrics from our services were graphed. The dashboard was bustling with lines representing CPU usage, memory consumption, and request rates. It felt like a lifeblood of the system—without these metrics, we would have been flying blind.
Speaking of metrics, GitOps was starting to gain traction as a way to manage infrastructure changes through version control. I had toyed with the idea but never truly embraced it. The thought of having to reconcile our Kubernetes configurations with Git seemed like more work than it was worth at the time. Yet, here we were in 2016, and the conversation around GitOps felt inevitable.
As I closed my laptop for the night, I couldn’t help but feel a mix of excitement and frustration. Excitement for the tools that made our lives easier—Helm, Istio, Envoy—and frustration with the complexity they introduced. The serverless hype was just another layer in an already complex ecosystem.
But as I drifted off to sleep, I reminded myself that it was okay to take a break from tech and politics. Maybe next week would be better for debugging those Kubernetes issues without any distractions.
That’s my personal reflection on December 12, 2016. Hope you found it insightful!