$ cat post/stack-trace-in-the-log-/-a-port-scan-echoes-back-now-/-the-shell-recalls-it.md
stack trace in the log / a port scan echoes back now / the shell recalls it
Title: Kubernetes vs. Mesos: A Year in Review
February 13, 2017 marks the end of another tumultuous year for me as a platform engineer. It’s been an exciting time, but also one full of internal strife and technical debate within my team. We’ve been grappling with whether to stick with Apache Mesos or switch over to Kubernetes (k8s). Let’s dive into some of the real ops and infrastructure work we’ve done this year.
A Year in Review
This year started off with a bang as Google announced k8s as their long-term strategy for container orchestration. The buzz around Docker, Swarm, Mesos, and other options was intense. We had to make a decision quickly, but the reality is that it wasn’t an easy choice.
Mesos vs. Kubernetes: A Tale of Two Titans
Mesos has been our go-to tool for years now, with its flexible approach allowing us to run any kind of workload in a cluster. It’s battle-tested and reliable, which are important when you’re running critical services 24/7. However, k8s was gaining traction fast with features like network policies and storage orchestration that Mesos didn’t have.
The argument for k8s wasn’t just about fancy new features. Kubernetes’ robust community, tooling, and clear roadmap were a strong draw. Additionally, its growing list of integrations with monitoring tools like Prometheus and Grafana made it seem more complete as an ecosystem. But these arguments weren’t enough to push us over the edge.
The Battlefront: Real Work
Last month, we had a significant outage that really highlighted the differences between Mesos and k8s. A node failed in our cluster, and Mesos automatically re-routed tasks without any issues. But when we tried to do the same with k8s, it got stuck, causing delays in service recovery. This real-world example made us realize that k8s might not be as mature as we thought.
We spent countless nights debugging these kinds of issues, especially around network policies and storage classes. Kubernetes’ learning curve was steeper than expected, but so were the potential gains if we could get it right.
The Verdict
As February 13th approaches, I find myself leaning towards a switch to k8s. The community support and tooling are too compelling to ignore. We’ve been running pre-prod workloads on k8s for a while now, and the results have been promising. However, it’s not just about making the switch—it’s about ensuring our infrastructure is future-proof.
Lessons Learned
Switching from Mesos to Kubernetes isn’t going to be easy. But as tech evolves, we must adapt or get left behind. The past year has taught us a lot—about the importance of choosing tools that fit our needs and the value of having robust community support.
As I write this, I’m still wrestling with the decision, but I know one thing for sure: in 2017, Kubernetes won the container wars. And now it’s time to embrace it.
That’s where we stand today. The tech world is always moving, and so are we. Stay tuned as we continue our journey into the future of platform engineering.