Improving the k8s Dev Experience: Part 0

I gave a talk last year on migrating from Heroku to Kubernetes. Since then I’ve had several people reach out to ask me how I built a platform on top of Kubernetes. Every time my response is “I didn’t.” We migrated some apps to Kubernetes, which is not the same as creating a friendly experience, which I think is a critical part of saying you built a “platform.”

Right now we have some tools glued together that kind-of/sort-of encompass the main pieces of a platform, but the experience is not great. There’s still tons of yaml that has to be created anytime something new is created. Logs, metrics and traces are still in separate places, some of which are hard to reach because most of our devs don’t know how to use the VPN.

It’s bad enough that at our last Hackathon, one of our lead engineers came up and said “I don’t know exactly what I’m gonna work on, but it’s gonna be trying to figure out why this is all so hard now.”

Thus, the overarching work I’m engaged in this year is figuring out how to build a developer friendly platform on top of kubernetes, by leveraging every team member we have in our engineering organization, since my team (operations) has exactly two full time Individual Contributors.

This post is the kickoff to a long series explaining what we build. The next post will describe the structure of our effort, and posts after that will be dives into the technologies we choose, why we chose them, and how we’re using them.