Developing at the Speed of Kubernetes
Natan Yellin is the founder of robusta.dev and has developed software for over a decade. He started with open source in high school, got started on Kubernetes while at Alcide.io (now part of Rapid7), and launched his own company late last year.
What follows is an interview with Natan and his thoughts on being a cloud developer.
What development tools do you use as a cloud developer?
Natan Yellin: iTerm, Vim, and VS Code, which I love by the way — it's great for Kubernetes.
What challenges does every cloud developer face?
- First, deploying stuff can be a pain, and I think Okteto is doing something incredibly important here to remedy that.
- Second, monitoring is hard. It isn't always obvious what you should monitor and when alerts fire, it’s not always clear why or what to do.
- Third, Kubernetes is new, so many people aren't familiar with it but have to work with it. This lack of familiarity will improve over time, but it's a big issue today.
What's the thing that's most exciting about cloud development?
Kubernetes! I spend so much of my time making videos about Kubernetes because it's a topic I honestly love. It is an elegant (but nontrivial) solution for building distributed systems in a standard way.
Is the migration from local development to production environments a common issue?
It's a problem because you can open VS Code and run "attach to process" on your local machine, but it's suddenly tough when you have to do that on a Kubernetes server. (I talked about this at Microsoft Reactor recently and how to solve it.)
I like to say that Kubernetes makes the incredibly hard stuff, like autoscaling and health checks, easy; however, it makes the formerly easy stuff suddenly very hard. This is why I’m excited by tools like Okteto, which help return that original joy of programming. I get excited if I can edit a file and instantly see the change, but of course that shouldn’t be exciting - It should be basic but with Kubernetes it’s hard by default. So I like tools like Okteto a lot.
What is your secret development weapon?
It’s not quite a development tool, but my secret weapon is kubectl get events. I spend a lot of time investigating alerts for a living. About 20% of the time you can resolve the problem just by running “kubectl get events” or “kubectl describe”. It’s the first thing you should do when you see an alert or problem on a Kubernetes cluster.
What should every cloud developer know when it comes to cloud development?
Don't worry if you don't know everything. There's a lot to learn, but no one knows it all!
What is your biggest success as a cloud developer?
Creating a set of default Prometheus alerts with no false alarms! I guess it's more of a DevOps success story, but man the default alerts can be noisy on Kubernetes!
What is your worst failure?
Back when servers were physical, I knocked one over with my foot and totally killed the hard drive. It was also my first week on the job. Luckily my boss was nice.
For developers interested in learning more about Natan’s work, here’s a link to his entire github: https://github.com/robusta-dev/robusta
If you're a cloud developer/pro with a cool success story to tell, I'd love to interview you. Please contact me at email@example.com