$ cat post/telnet-to-nowhere-/-i-pivoted-the-table-wrong-/-we-kept-the-old-flag.md
telnet to nowhere / I pivoted the table wrong / we kept the old flag
Title: Kubernetes vs. Mesos: A Battle of Egos and Code
June 26, 2017 was just another day in the trenches when suddenly my email dinged with a reminder to participate in an office-wide poll on whether we should use Kubernetes or Apache Mesos for our next big project. At that time, Kubernetes had only recently begun its march toward becoming the de facto standard container orchestration system, but Mesos still held sway among some of the more traditionalists at my company.
The poll was not a vote so much as an exercise in ego and code. I had to admit, my heart was leaning towards Kubernetes. The hype around it couldn’t be denied—helm charts were being written, Istio was making its debut, and even the serverless buzz was picking up steam. But my colleagues who had been working with Mesos for years weren’t so easily swayed.
As I weighed the pros and cons, I found myself reflecting on a recent project where we deployed a Kubernetes cluster in our test environment to run some of our services. The setup process wasn’t as straightforward as it could have been, but once it was running, managing the deployments felt like a breeze compared to the complexity of Mesos. But let’s be real—Mesos had a head start and a substantial community backing it.
I recalled a conversation from earlier that week with one of my teammates who had just wrapped up an implementation using Mesos. He talked about the intricate dance required to configure tasks, and how hard it was to get it right. While Kubernetes seemed easier to manage, there were still plenty of gotchas that would likely pop up during our deployment. But what did I know? Maybe with enough configuration, we could tame Mesos.
As I sat down to write a response to the poll, I typed out my thoughts: “I’m leaning towards Kubernetes because it’s gaining traction and the learning curve is manageable. However, if anyone on the team has strong opinions about Mesos, let’s hear them.”
Within an hour, my inbox was flooded with arguments for both sides. Some were technical, some were based on past experiences, and a few bordered on philosophical debates about which tool best represented our company’s values.
The day wore on, and eventually, I cast my vote. Kubernetes. Just because the code seemed cleaner and more approachable didn’t make it perfect, but at least we’d have a fighting chance of not being left behind in this container wars battle. Plus, with Helm and Istio coming into play, there was potential for some exciting development.
Reflecting on the decision after the poll results were announced, I realized that sometimes choosing a tool isn’t just about technical merits; it’s also about embracing change and building a community around it. Kubernetes had already gained momentum in our industry, and jumping on board now felt like a smart move.
The next few months were filled with setting up a development cluster, learning the ropes of YAML files and Helm charts, and debugging various issues that cropped up along the way. But as I typed out configuration after configuration, I couldn’t help but think about how much we’d have to learn and adapt to make this work smoothly.
Looking back, picking Kubernetes was indeed the right call for our team. It brought us into a community where there was constant innovation and support. Yet, that initial vote was just one of many small battles in a larger war against complexity in infrastructure. The true challenge lay ahead—making Kubernetes as user-friendly and reliable as possible for everyone on the team.
And so, with Kubernetes now firmly entrenched in our infrastructure, we continue to push the boundaries of what’s possible while navigating the ever-evolving landscape of cloud-native technologies. It’s a bumpy ride, but it’s worth every bit of effort.