5 Key Elements for a Great Developer Experience with Kubernetes

Two women looking at a white board

Use Tools for Local Development

The developer work space is the main area where the developer interacts with the product by coding new features, troubleshooting, and fixing bugs. If no specific tools are set in place for their local environment, the developer will ignore Kubernetes, thinking of it only as the end of the line for their application. Then when a problem occurs in another environment, the developer will say, “It works on my machine.”

  • Skaffold, developed by a team at Google, offers a local continuous integration/continuous delivery (CI/CD) experience for Kubernetes. Skaffold can get your team started in one command line if they have an existing Dockerfile or Kubernetes manifest. Then they can build, test, and deploy their application to their local Kubernetes. This makes the testing process much faster and more reproducible since they are already testing the code running inside a Kubernetes cluster. Skaffold offers an interesting option for those who want to move from a Docker and Docker Compose local setup to a Kubernetes one.
  • DevSpace is very similar to Skaffold in terms of features, with the added benefits of a dedicated UI and a two-way file sync. The UI gives your team an overview of the stack and easy access to logs. At the same time, the file synchronization feature makes their development process faster by letting them directly change code from a running container.
  • Tilt also lets your team build, test, and deploy microservices to their local Kubernetes. It facilitates developer onboarding with Kubernetes with a highly customizable UI. They can have extra buttons to run tasks and streamline QA testing and automate repeating tasks (such as clearing the database or loading a data set).

Enable Self-Service for Everything

Kubernetes is a platform designed to manage a large workload. Its will try to use the available resources. On top of that, you can add the Cluster Autoscaler, which will adjust the number of nodes based on your resource consumption. This optimizes compute costs based on the number of applications you are running and their consumption of resources. Ideally, you want a single cluster shared across many teams and applications.

Set Soft Limits and Hard Limits

When working with a multitenant cluster, you have to set boundaries to own many of the resources available to your team. Imposing resource quotas on a per-team basis will help you keep your budget on track and contain buggy applications that might otherwise impact the rest of the cluster.

Maintain a Product Mindset

You should use a platform-as-a-product strategy with Kubernetes. Through Kubernetes, you are trying to deliver value to your developers by focusing their efforts on microservice development to make them happier and more productive.

  • Make data-driven decisions: instrument your platform, collect metrics, survey the developer on what can be improved. For instance, you could implement DORA metrics and regularly check whether the platform is getting you closer to the top performer on the market.
  • Prioritize continuous evolution: capture and analyze new trends or products. Then curate the most promising options, add them to your self-service, and empower teams to use the latest technologies.
  • Ensure customer delight: treat the internal platform with the same level of attention that you would provide to your end user. Test your changes, minimize operational impact, and try to reduce the number of interventions from the Kubernetes operations teams.

Account for Different Experience Levels

Finally, remember that Kubernetes is a complex system and that not all your team members will have the same level of experience. Don’t automatically expect your developer to be a Kubernetes expert. Instead, establish a cross-team baseline: what is everyone expected to know about Kubernetes? You could create a shortlist of elements like pods, ReplicaSets, deployments, ConfigMaps, and secrets. Then offer training and prepare documentation to make sure everyone is comfortable with this baseline.

Conclusion

Kubernetes offers an incredible opportunity for companies to manage large workloads in the cloud. To seize this opportunity and allow developers to work with Kubernetes for extended periods, you need to make sure they’re achieving a good DX.

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Loft Labs

Loft Labs

>> www.loft.sh << Build Your Internal Kubernetes Platform With Virtual Clusters, Namespace Self-Service & Secure Multi-Tenancy