The case for a Kubernetes designer

Kubernetes is here to stay !

If you've been following Kubernetes for some time now you're certainly aware of how much momentum it has gained in the past couple of years, in a recent survey about container adoption 90% of the respondents said they running containers and most of them are using an orchestrator to help them run their workloads. The fact is that we're beyond the experimentation phase and we're heading towards near complete adoption in every industry and at different levels. New developers are now expected to know Kubernetes basics from an early stage in their career and for some of them they are expected to deploy and debug their code in Kubernetes.
Last but not least, one of the most cited reasons for adopting Kubernetes is "Increasing developer speed and efficiency", so you see the trend here ! Companies are betting and started to actually invest in Kubernetes and you, my dear developer friend, are expected to live with it !

Yeah ! but what the actual YAML ?!

We totally understand you if that's your reaction after your first Kubernetes tutorial ! Assuming that you managed to start a local Kubernetes cluster on your PC and follow through the multitude of snippets and commands that you need to run for your Hello World service to run on Kubernetes.
There is no shortage of blog posts or twitter rants about how complicated Kubernetes actually is, and that's what you get when you aim to be the standard orchestration system for next-gen cloud applications. The basic premise of using Kubernetes productively is to write YAML files, basically you describe "the what" and "the how" to run your application and give it to Kubernetes and it will take care of the rest for you.
Things start to get complicated once you start writing (and maintaining) "the what" and "the how" of your app using YAML files, you can easily get overwhelmed by the breath of what Kubernetes is capable of. With hundreds of different objects and their combinations (pod, service, deployment, ...), you end up with a bunch of YAML files (and/or Helm charts) written by your team's Kubernetes fanatic who thinks that using the latest beta features of Kubernetes is cool !

We all deserve better than YAML

Imagine yourself working on your app and finally managing to build that docker image with your code and everything, now you open your browser and pick up the "Load balanced web app" template, you tweak it a little bit and deploy that whole thing to your staging Kubernetes cluster. And you know what, you and your teammates are the ones that built that template because you know what your actual needs are, everyone on the team worked on perfecting that template from the web app pod itself to the load-balanced-ingress-filtered-AB/tested entrypoint ! You get the idea.

Welcome to the world of K8od !


Why we're building K8od

Whether you're a startup or a fortune-500 company you will at some point build and deploy your applications to Kubernetes, that's a fact and we're betting on it. You don't even need to manage your Kubernetes yourself, with services like Amazon's EKS & Microsoft Azure's AKS you can get your cluster up and running with minimum maintenance in no time. But that's just the infrastructure, you still need to deploy services on top of it and that's where K8od comes in.
K8od is the first Kubernetes objects designer made for developers, but it's more than a designer it's a one stop shop for all of your Kubernetes needs. In the following sections we'll dive into what K8od aims to be and what you can expect from it.

Discovery at your finger tips

This is where your K8od journey starts, this is where you hook up your Kubernetes cluster to K8od.

Get your kubeconfig file and configure access to your cluster, K8od will automatically recognize and show you your already created objects. You can then choose to import these objects to your personal or team library, this opens the way for objects reuse between developers and teammates. K8od will recognize and categorize your objects according to the latest Kubernetes API objects, and we'll constantly update the objects index to allow you to discover new objects without any manual intervention. You'll also be able to hook K8od to your images registries to import your existing images. Once you're done with your cluster and registries access it's time to start designing your service(s).

Designer playground

This where you'll spend most of your time on K8od. You'll drag-n-drop, link and configure your individual objects until you're done building your service.

You have the common library with all of the latest Kubernetes objects to start with, this is the perfect place to explore K8od. Get to know the latest Kubernetes objects or even the less interesting ones ! In addition to the common library you'll have your personal/team library with your pre-configured objects ready to reuse in your new service. The objects come with a configuration panel with good default values and the possibility to append custom YAML in case you need to add any custom configuration that's not part of the objects configuration model.
Still looking for where to start ? Just drag-n-drop a template into the designer ! Templates are a great way to kickstart your design, you'll get a pre-linked design where you just have to fill in some parameters and your design will be ready to use. Templates can range from community contributed templates to private team ones, your more experienced teammates can build more advanced templates and share them with the whole team thus enabling any developer to design a SRE/Security complaint service in a few clicks.

Now sit back and marvel at your design, next stop is prod !

Deployment command center

Maybe not straight to prod ! maybe to some staging environment before.

You're only one step away from seeing your design running on a real cluster. The deployment view lets you deploy/rollback your design to your pre-configured cluster, your team admin will take it from there and even deploy your design to prod after some sanity checks. In case of any deployment errors you'll be able to view the aggregated logs of all your objects with highlighted errors and possible fixes so you can go back to your design and fix things up and try again.

What's next for K8od

This elegant and cut to the chase flow from discovery to design to deployment (the 3 Ds !) is what we're aiming for with K8od.

We strongly believe that your Kubernetes experience shouldn't distract from your main day to day job, it should feel natural and complement your main activity and not become a hurdle or a major source of headache for you and your team. So whether you're a solo developer working on your next application and want to build it from the ground-up on Kubernetes, or a team of developers with a strict release cycles you will find the right tools in K8od for starting your journey.

We're hard at work and we've got so much more on our roadmap and this is only a first glimpse into what we're building. We'd like to hear from you, if you've got any feedback or question just drop us a mail here : [email protected]