The Missing Kubernetes Platform for Developers

A Kubernetes platform made for developers is the essential next step for k8s adoption.

Daniel Thiry
Jan 27 · 8 min read

Kubernetes is the target environment for more and more software during production, so it will automatically become a topic for developers, too. However, Kubernetes is made for operations and is still challenging to use for people without special knowledge about it. Since developers should rather focus on developing new software instead of learning Kubernetes, a special Kubernetes platform for developers is needed. This platform should enable developers to access Kubernetes whenever they need to and let them seamlessly work with it, so everybody in a dev team can easily work with k8s without learning its details. Exemplarily, this can be achieved by combining DevSpace Cloud and DevSpace. Together, both tools allow developers to finally work on what they like to do, developing great new software.


The adoption of the container orchestration technology Kubernetes is continuously growing in enterprises. However, while this transition is often desired from a management perspective, it can be a huge challenge for development teams. In this post, I will explain what kind of Kubernetes development platform is needed and currently often missing to make the move to Kubernetes easier for developers.

Kubernetes is often inevitable

1. Developers are responsible for the application.

2. Some applications cannot be developed without Kubernetes.

Result: Developers need access to Kubernetes.

I wrote a separate post about possible ways to give developers access to Kubernetes. You can find it here.


Not every developer should become a Kubernetes expert

1. Kubernetes is very complex.

2. Developers have other things to do.

3. Developers face the same challenges working with k8s.

Result: Developers need to be enabled to work with Kubernetes without becoming experts themselves.

What a Kubernetes platform for developers should achieve

What you actually want a Kubernetes dev platform to achieve is to enable developers to directly interact with Kubernetes while they do not necessarily have to configure anything. This can be done by providing smart defaults that can be fully customized and adapted. Optimally, developers can then work with Kubernetes without ever having to configure anything but knowing they could if they needed to. In concrete terms, a k8s platform for developers needs to achieve the following goals:

  1. Developers can directly access k8s without contacting operations/cluster managers
  2. Developers can get started fast and do not have to adapt their workflows
  3. Developers can easily deploy to Kubernetes

How to get such a Kubernetes dev platform

Goal 1: Developers can directly access k8s without contacting operations/cluster managers

After you have a cluster, you need to give your developers access to it. ( Refer to my other post for different methods to give developers access to Kubernetes.) To create a real developer platform, you need to connect it to DevSpace Cloud. This can be simply done by running the command devspace connect cluster (you need to install DevSpace on your computer first). DevSpace Cloud then transforms your cluster into a developer platform and thus solves the issue of giving your developers access to k8s because you now can invite users to your cluster via the DevSpace UI and set limits for the individual users, e.g. regarding the allowed computing power. As long as the users stay within these limits, they can create isolated Kubernetes namespaces on demand without having to interact with the cluster manager.

The DevSpace Cloud Workflow

Goal 2: Developers can get started easily and do not have to adapt their workflows

After this initial setup, the configuration file can be shared with the rest of the team using normal git versioning. For the average developer, it is then possible to just use the optimized configuration file and work as normally not caring about Kubernetes. While the developed software is executed in the Kubernetes cluster, developers can continue to use their local IDEs and debuggers. (For more information about this form of cloud development and why it could be the future, read my other article here.) Developers simply need to run devspace dev which starts the application in Kubernetes and makes it accessible on localhost via port forwarding. DevSpace then automatically syncs the locally written code into the containers and even allows developers to execute commands directly in the containers. All of this ensures that the development in Kubernetes is as similar to local development as possible.

We recently added a local UI for DevSpace to further improve the developer experience and to make it easier to understand what is happening in Kubernetes during development.

The DevSpace Localhost UI

Goal 3: Developers can easily deploy to Kubernetes


Conclusion



Originally published at https://devspace.cloud.

The Startup

Medium's largest active publication, followed by +589K people. Follow to join our community.

Daniel Thiry

Written by

The Startup

Medium's largest active publication, followed by +589K people. Follow to join our community.

More From Medium

More from The Startup

More from The Startup

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade