$ cat post/first-commit-pushed-live-/-the-monorepo-grew-too-wide-/-the-repo-holds-it-all.md
first commit pushed live / the monorepo grew too wide / the repo holds it all
Title: Kubernetes vs. Mesos: A Battle for My Heart
April 10, 2017 was just another day in the life of a software engineer who, despite being married to cloud native tech, was still struggling with which orchestrator to choose.
At work, we were deep into our migration from Mesos to Kubernetes. The decision had been brewing for months and it finally came down to battle stations. I couldn’t help but feel like I was at a Renaissance Fair dressed as the king of cloud orchestration, trying to decide between Kubernetes the Knight or Mesos the Wizard.
Kubernetes (k8s) was the clear winner in terms of community adoption and visibility. It had the support of giants like Google and the backing of industry heavyweights like Red Hat. Its architecture and design felt modern and elegant – think Kubernetes’ declarative model versus Mesos’ imperative approach. Plus, Helm’s emergence made it even easier to manage complex deployments.
But Mesos wasn’t exactly a slouch either. It was battle-tested in large-scale data centers with its own robust community. The core API of Mesos allowed for incredible flexibility and customization – something I had used to our advantage at previous jobs. And don’t get me started on the sheer power of Marathon for application deployment.
As an engineer, I couldn’t shake off my inner Luddite; I was skeptical of how much work it would take to fully embrace Kubernetes. All those pods, services, and deployments felt like a lot of moving parts to manage. On the flip side, Mesos seemed a bit more raw – like the Wild West of orchestration with an unspoken rule that if you could get away with something, do it.
I wrestled with this decision over and over. At home, I had been playing around with k8s for my personal projects, but something still felt off. Maybe it was just the lingering trust issues from my experience with a different orchestrator that didn’t quite deliver on its promises of stability and ease.
Then came the big day: we cut the cord and went full Kubernetes. The transition was bumpy at first – our setup wasn’t perfect, and we spent days debugging issues related to networking and storage classes. But slowly, like a patient gardener nurturing a seedling, it started to grow into something beautiful.
One of the biggest challenges was moving away from our old Mesos-based custom metrics system. We had developed this over years and it worked well for us. The shift forced us to learn Prometheus and Grafana, which were still emerging in popularity but ended up being game-changers for monitoring.
Looking back at that time, I see how much the industry has changed since 2017. Back then, serverless was a buzzword on everyone’s lips, now it’s everywhere. GitOps was just starting to take shape, and platforms like Concourse were gaining traction as the next step in CI/CD automation.
It’s funny how much our tech stack reflects who we are as engineers – pragmatic and always looking for that one killer feature that will make everything easier. In the end, Kubernetes won my heart because it felt like a team player ready to adapt and grow with us.
I hope this blog post captures the essence of what was happening in tech during April 2017 while staying true to my personal experience and voice. Let me know if you need anything adjusted or expanded!