Learn how cloud development environments drive developer productivity.
Download the eBook!

Making Sense of Cloud Development in a Complicated Kubernetes World

Burr Sutter has been developing applications for 30 years. He started with ChUI (green screen, amber screen, DOS) applications in the early 90s. Since then, he’s rode the wave of every innovation through Windows GUI apps, client-server, dynamic web apps, SOA, ESBs, enterprise integration patterns, AJAX, and mobile apps. Now he is exploring the possibilities of cloud development across the Kubernetes ecosystem.

Sutter has done it all, ranging from application development to author, public speaker, and respected developer advocate. His tools, materials, and capabilities have helped tens of thousands of developers be more productive in cloud-native app development.

What follows is an interview with Burr Sutter — cloud developer elite:

Burr Sutter’s folder with classified informations around location, dev tool box, favorite movie, etcBurr Sutter’s folder with classified informations around location, dev tool box, favorite movie, etc

Question: What development tools do you use as a cloud developer?

Burr Sutter: My primary programming language has been Java, and I primarily use Visual Studio Code. I also use Git and GitHub regularly.

Question: What challenges does every cloud developer face?

There are a LOT of learning curves, antiquated processes, and cultural challenges to overcome to be a better cloud-native developer. In the 90’s, we optimized to deploy apps to physical servers; in the 00’s we optimized to deploy apps to VMs (virtual machines), and now in the 20’s we are optimizing to deploy apps into containers.

Question: What's most exciting about cloud development?

I fundamentally love the freedom to access computers without the historical wait time. Not that many years ago, a developer with an idea, a dream, would have to make a formal request to their manager, starting a requisition process, perhaps suffering through an RFP and N hardware vendor’s proposals. Eventually, IT Ops receive the machines, rack 'em, power, ping, provide remote access, and so many months later, you now have access to 4 cores and 16 GB of RAM to attempt your idea.

This lag time from idea to the first line of code or first component installation fundamentally breaks the creative flow. Currently, I am currently running five Digital Ocean clusters, an EKS, an AKS, a GKE and 3 OpenShift clusters across the globe for a current experiment. This is an unusual prototype focused on gitops and multi-cluster management. Not my typical week, but still totally possible due to the advent of the cloud computing paradigm.

But I do recognize that most developers are blocked from this level of access: they have to file tickets and wait. I believe having an expensive resource like an application developer waiting on a cheap resource like a small Kubernetes cluster is a problem. Clumsy development environments impede creative experimentation, learning, personal growth, and productivity and negatively impact a business’s goals.

Question: What is your secret development weapon?

Break the problem down into the most simple elements and make it super repeatable, and I take lots of notes. When I have learned a new programming language, I will explore loops, conditionals, variables, I/O, and have a ton of code snippets that I might refer back to regularly. When I am exploring a new Kubernetes add-on like Istio, Knative, Tekton, or most recently ArgoCD, I will try to break it down into a series of hello world-like steps that I can repeat, from scratch. And I have a ton of yamls and kubectl commands that I refer back to regularly. Because when I hit a snag, I can "rollback" to something that used to work a week ago or a month ago. I write a ton of tutorials for myself.

Question: What should every cloud developer know when it comes to cloud development?

Build with failure in mind. A big new learning curve for developers landing on Kubernetes is the reconciliation loop and the importance of the Liveness and Readiness Probes. The eventual rolling update of a deployment or the failures associated with image pulls, crash loops, and restarts are intimidating at first. And these elements are part of building and deploying apps in a distributed computing world where things can fail.

Question: What is your most tremendous success as a cloud developer?

In addition to being a developer advocate, I have had a lot of fun leading teams while building some crazy "games" that we use live with 1000+ users with real-time audience interactivity and dashboards for large-scale presentations.

And the key lesson learned is that culture, process, and technique is more than anything else, which negatively or positively impacts developer velocity and custom app delivery success.

Question: What is the potential value of a cloud development environment like Okteto?

  • Minimize time to get started/setup for a new project, new team members, new service dependency
  • Minimize the time it takes to recreate the environment for debugging a problem
  • Minimize time from code commit to production

Question: What has been one of the most difficult development challenges you've ever faced in your career?

I have my own Phoenix Project story (click here to understand the reference). We had committed all the deadly sins of a mismanaged software development project. Here’s the horror list:

  • Impossible deadlines and unknown requirements
  • It works on my machine where the devs would check-in code that never worked in production
  • The throw it over the wall to Ops where there was no empathy, and the code+configuration required notable changes before it could run in production
  • We put $5M at risk
  • Fortunately, our team figured out some principles of Agile and DevOps through pain and suffering and we lived to tell about it :-)

Resource Link:

Burr recently wrote a tutorial on the basics of ArgoCD ApplicationSets for multiple cluster (or cloud) rollouts.

https://github.com/burrsutter/doks-argocd

If you're a cloud developer/pro with a cool success story to tell, I'd love to interview you. Please contact me at johnp@okteto.com
John PapageorgeMarketing / Dance InstructorView all posts

A Fly Fisherman Returns From the Wild to Develop in the Cloud

Bradley has been in the coding game since 1997 when he started bravenet.com, which he ran until 2003. The site featured simple pre-Facebook tools, such as guest books, message boards, and classified ads. At the height of success, Bravenet.com was the second largest website in Canada and 50th largest website in the world....

June 14, 2022
Avatar of John PapageorgeAvatar of John PapageorgeJohn Papageorge

Mastering the Game of Cloud Development

Jeevanjot caught the coding bug - pardon the pun - at a young age. At 14, he started working with Visual Basic, doing game development and graphic design before jumping into full-stack web development....

May 31, 2022
Avatar of John PapageorgeAvatar of John PapageorgeJohn Papageorge