Designing a Better Kubernetes Experience for Developers (2024)

Designing a Better Kubernetes Experience for Developers (1)

March 1, 2021 Published by Matthew Clarke, Senior Engineer

TLDR; If you’re deploying a service with Kubernetes, you shouldn’t have to use all of your cluster management skills just to perform everyday developer tasks (like seeing which pods are experiencing errors or checking autoscaler limits). Backstage Kubernetes simplifies your deployment workflow by connecting to your existing Kubernetes implementation and aggregating the status of all your deployments into a single view — even across multiple clusters in multiple regions.

Navigating the complexity of Kubernetes

If you’re building a service today, you’re likely deploying it as a container, which is inside a pod, which is inside a cluster (alongside a bunch of other services that don’t belong to you), with deployments on different clusters spinning up and down all around the world. It can be hard to keep track of everything.

But despite widespread adoption of Kubernetes, all the tools for navigating this complexity have been focussed on the needs of cluster admins. This can make something as simple as checking the health of your service somewhat complicated.

That’s why we built a Kubernetes monitoring tool focussed on the needs of service owners and made it a core feature of Backstage, our open platform for building developer portals. We wanted to make the experience of managing services deployed on Kubernetes easier for all developers.

But first, how did we get here?

The rise of Kubernetes and DevOps

Since its release in 2014, Kubernetes has become one of the most widely adopted and important open source projects. Capabilities like autoscaling and cost optimisation through container scheduling used to be time-consuming and tricky to get right — now they’ve been democratised.

At the same time, the concept of DevOps has become mainstream. Developers now regularly perform tasks that were traditionally the domain of operations experts.

So, while everyday engineers can do more than ever before, their new powers have also come along with a new set of responsibilities.

New powers, shifting roles

When I first started using Kubernetes, cluster admins and service owners were one and the same: the people who built a cluster were usually the same people who owned the services that ran in the cluster. That’s not how it is today. As Kubernetes has achieved widespread adoption there has been a shift in Kubernetes usage as well as a shift in how Kubernetes is managed at the organisation level.

Now organisations tend to have a separate infrastructure team (sometimes not-so-ironically called the “DevOps” team) who build and maintain clusters for the feature developers and service owners. As the teams have become more specialized, the setups have become more advanced. For instance, the infrastructure team might set up Kubernetes clusters in multiple geographic regions in order to reduce end-user latency, wherever the user is in the world.

This is a better experience for the user, and it’s an optimization you might not have considered before Kubernetes existed or without a dedicated infrastructure team. But it also comes with productivity costs for the developer.

Frustration also scales

When your deployment environment reaches this kind of complexity and scale, the maintenance overhead for service owners increases. It forces them to use multiple kubectl contexts or multiple UIs just to get an overall view of their system.

It’s a small overhead — but adds up over time — and multiplies as service owners build more services and deploy them to more regions. Just checking the status of a service first requires hunting for it across multiple clusters. This can reduce productivity (and patience) company-wide.

Better tools for the job

We believed we could solve the problem through developer tooling. But we soon discovered the available tools weren’t suitable, because they:

  • Don’t cater well for deploying to multiple Kubernetes clusters,
  • Usually require that users have clusterwide permissions, or
  • Display everything on a cluster and aren’t focused on the service the user cares about.

As we often do when we want to solve a problem involving infrastructure complexity, we wondered, why not build a custom plugin for Backstage, our homegrown developer portal?

Backstage Kubernetes: Manage your services, not clusters

Backstage provides vital information from Kubernetes — specifically focussed on the developer’s service. At a glance, the developer can see:

  • The current status of their systems running in Kubernetes
    • Including information aggregated from multiple clusters/regions
  • Any errors reported by Kubernetes
  • How close the system is to its autoscaling limits
  • Container restarts
Designing a Better Kubernetes Experience for Developers (3)
Designing a Better Kubernetes Experience for Developers (4)
Designing a Better Kubernetes Experience for Developers (5)

Instead of spending 20 minutes in a CLI trying to track down which clusters your service has been deployed to, you get all the information you need to know at a glance. You can learn more about these features on the Backstage blog — or watch the demo video below to get an overview.

Everything about your service in one place

As a standalone monitoring tool, we think Backstage Kubernetes can improve the experience of any developer who deploys to Kubernetes. Combined with the other features of Backstage, developers get a complete solution for building and managing their services.

At the core of Backstage is its service catalog, which aggregates information about software systems together so you have a consistent UI and one tool for developers to use. For years, Backstage has provided one place for Spotify’s developers to see everything they need to know about their services (APIs, documentation, ownership, etc.). Now that includes the current status of their service, regardless of how many Kubernetes clusters they deploy to.

Now that Backstage is open source, we want to improve on what we have built internally and provide Kubernetes as a core component of Backstage for anyone to contribute to and benefit from.

Future Iteration

As we continue to grow and develop Kubernetes in Backstage with the community, we hope to offer support for Kubernetes resources beyond Deployments and Custom Resource Definitions.

Although at Spotify we currently use GKE extensively, Kubernetes in Backstage communicates directly with the Kubernetes API and is cloud agnostic, accordingly. It will work with other cloud providers, including AWS and Azure, as well as managed Kubernetes services, like Red Hat OpenShift.

To contribute or get more information on Kubernetes in Backstage, join the discussion on Discord!

Ask us anything: Matthew and the Backstage team will be hosting a Reddit AMA on March 3 at 4:00pm GMT. Send questions in r/kubernetes starting March 2.

A version of this article first appeared on The New Stack.

Tags: backend

Designing a Better Kubernetes Experience for Developers (2024)

FAQs

Is Kubernetes useful for developers? ›

Kubernetes offers both advantages and disadvantages to developers. If your development team has the time and ability to learn it and they need software with high scalability and availability, you should consider Kubernetes.

What is Kubernetes in software development? ›

Kubernetes is the foundation of cloud software architectures like microservices and serverless. For developers, Kubernetes brings new processes for continuous integration and continuous deployment; helps you merge code; and automate deployment, operation and scaling across containers in any environment.

How many Kubernetes masters do I need? ›

This includes, for example, the master nodes — a Kubernetes cluster typically has 3 master nodes, and if you have only a single cluster, you need only 3 master nodes in total (compared to 30 master nodes if you have 10 Kubernetes clusters).

How does Spotify use Kubernetes? ›

One success story that's come out of the early days of Kubernetes is a tool called Slingshot that a Spotify team built on Kubernetes. "With a pull request, it creates a temporary staging environment that self destructs after 24 hours," says Chakrabarti.

Is Kubernetes worth learning 2022? ›

You need to learn Kubernetes if it is related to your work in any way, whether it's creating containerized applications, managing and deploying, or maintaining a containerized environment. If you are a practitioner, there is a high likelihood that you will encounter K8s in some form or another.

What will replace Kubernetes? ›

Kubernetes Alternatives: Container as a Service (CaaS)
  • AWS Fargate. ...
  • Azure Container Instances. ...
  • Google Cloud Run. ...
  • Google Kubernetes Engine (GKE) ...
  • Amazon Elastic Kubernetes Service (EKS) ...
  • Openshift Container Platform. ...
  • Rancher. ...
  • Docker Swarm.

Does Google use Kubernetes? ›

Google Cloud is the birthplace of Kubernetes—originally developed at Google and released as open source in 2014. Kubernetes builds on 15 years of running Google's containerized workloads and the valuable contributions from the open source community.

What is Kubernetes in Devops? ›

Kubernetes, also known as K8s, is an open-source system for automating deployment, scaling, and management of containerized applications. It groups containers that make up an application into logical units for easy management and discovery.

Why does Kubernetes have 3 master nodes? ›

A multi-master setup protects against a wide range of failure modes, from a loss of single worker node to the failure of the master node's etcd service. By providing redundancy, a multi-master cluster serves a highly available system for your end users.

Can we have 2 master nodes in Kubernetes? ›

Kubernetes High-Availability is about setting up Kubernetes, along with its supporting components in a way that there is no single point of failure. A single master cluster can easily fail, while a multi-master cluster uses multiple master nodes, each of which has access to same worker nodes.

Why does Kubernetes have 3 Masters? ›

You can have a single worker on Kubernetes but it's better to have at least three in case of node failure as the cluster will have to redispatch pods from the failing node to the two nodes still available.

What is Helios Docker? ›

Helios is a Docker orchestration platform for deploying and managing containers across an entire fleet of servers. Helios provides a HTTP API as well as a command-line client to interact with servers running your containers.

Why is Kubernetes so difficult? ›

Kubernetes requires a lot of configuration

There are many many different parameters and settings to manage in order to make the environment suitable. Again, the environment is now where the complexity lives and not so much in the applications.

What is the next big thing after Kubernetes? ›

A promising cloud technology that may become widely accepted after Kubernetes is micro VM Kubernetes distributions. AWS Firecracker is the most popular of micro VM Kubernetes, which packages micro virtual machines into a Kubernetes cluster to enhance the security, workload isolation, and efficiency of resources.

Is Kubernetes going away? ›

Full removal is targeted in Kubernetes 1.24, in April 2022. This timeline aligns with our deprecation policy, which states that deprecated behaviors must function for at least 1 year after their announced deprecation.

Does Kubernetes have future? ›

The future of Kubernetes is in the custom resource definitions (CRDs) and abstractions which we build on top of Kubernetes and make available to users through CRDs. Kubernetes becomes a control plane for abstractions, and it's the CRDs of these abstractions that developers should focus on.

Is Kubernetes an overkill? ›

Kubernetes isn't really a one-size-fits all tool. It has a lot of expansion capabilities and can be highly flexible, but there are times it won't be the right fit. Kubernetes shouldn't be used for certain tasks because it would be overkill and not offer many benefits.

Who competes with Kubernetes? ›

Amazon ECS, Docker Swarm, Nomad, Redhat OpenShift are the most popular Kubernetes alternatives and Kubernetes competitors. All of these have their own set of features, and also, there are some basics that they all seem to cover well. Let's see these alternatives to Kubernetes one by one, along with their pros and cons.

Is Kubernetes a coding? ›

Kubernetes is written Go which is a fairly new programming language and it has a large amount of source code.

Is Kubernetes written in C++? ›

Unlike Borg, which was written in C++, Kubernetes source code is in the Go language.

Which language is best for Kubernetes? ›

Kubernetes was created by Google and written mostly in Google's Go programming language. "While there have been many stories about using Rust for systems-level programming, you don't often hear stories about cloud software or Kubernetes software being written in Rust.

Which is best Docker or Kubernetes? ›

Although Docker Swarm is an alternative in this domain, Kubernetes is the best choice when it comes to orchestrating large distributed applications with hundreds of connected microservices including databases, secrets and external dependencies.

Is Kubernetes PaaS or IaaS? ›

Kubernetes as a PaaS

Support for running on any infrastructure – on-prem, public clouds, or both. A centralized control plane for managing applications, no matter where they are hosted.

Is Kubernetes a cloud computing? ›

Kubernetes is cloud-agnostic.

Kubernetes runs on Amazon Web Services (AWS), Microsoft Azure, and the Google Cloud Platform (GCP), and you can also run it on premises.

Is Kubernetes for developers or DevOps? ›

Kubernetes is the most popular container orchestration platform, and has become an essential tool for DevOps teams. Application teams can now deploy containerized applications to Kubernetes clusters, which can run either on-premises or in a cloud environment.

Is Kubernetes used for CI CD? ›

This Kubernetes-native architecture allows your CI/CD pipeline to be portable and function across multiple cloud providers and locations. The declarative nature of Tekton and Kubernetes allows you to standardize, collaborate, and share your workflows across teams.

Is Kubernetes a Docker? ›

Docker. While Docker is a container runtime, Kubernetes is a platform for running and managing containers from many container runtimes. Kubernetes supports numerous container runtimes including Docker, containerd, CRI-O, and any implementation of the Kubernetes CRI (Container Runtime Interface).

How many containers can be created inside a pod? ›

No more than 300000 total containers.

What happens if Kubernetes master fails? ›

Failure Impact of a Down Kubernetes Cluster

Even when the master node goes down, worker nodes may continue to operate and run the containers orchestrated on those nodes. If certain applications or pods were running on those master nodes, those applications and pods will go down.

What happens when a worker fails in Kubernetes? ›

After a node fails, it is up to the Kubernetes cluster operator to recover the node and re-attach it to the cluster. During a node failure event, the Kubernetes cluster is operating in a degraded state, leading to potential resource constraints on a deployed Greenplum cluster.

Is Kubelet a pod? ›

The kubelet works in terms of a PodSpec. A PodSpec is a YAML or JSON object that describes a pod. The kubelet takes a set of PodSpecs that are provided through various mechanisms (primarily through the apiserver) and ensures that the containers described in those PodSpecs are running and healthy.

Why do we need three master nodes? ›

Having multiple master nodes ensures that services remain available should master node(s) fail. In order to facilitate availability of master services, they should be deployed with odd numbers (e.g. 3,5,7,9 etc.) so quorum (master node majority) can be maintained should one or more masters fail.

What are the two types of Kubernetes nodes? ›

There are two types of nodes:
  • The Kubernetes Master node—runs the Kubernetes control plane which controls the entire cluster. A cluster must have at least one master node; there may be two or more for redundancy. ...
  • Worker nodes—these are nodes on which you can run containerized workloads.
15 Aug 2022

How many nodes are in Kubernetes cluster? ›

Officially, Kubernetes claims to support clusters with up to 5000 nodes. However, in practice, 500 nodes may already pose non-trivial challenges.

What is ETCD in Kubernetes? ›

etcd is a consistent and highly-available key value store used as Kubernetes' backing store for all cluster data. If your Kubernetes cluster uses etcd as its backing store, make sure you have a back up plan for those data. You can find in-depth information about etcd in the official documentation.

What is a Kubernetes load balancer? ›

The Kubernetes load balancer sends connections to the first server in the pool until it is at capacity, and then sends new connections to the next available server. This algorithm is ideal where virtual machines incur a cost, such as in hosted environments.

Why do developers like Kubernetes? ›

Kubernetes enables you to easily manage containerized apps. This makes it ideal for applications that need to be horizontally scalable such as web applications, big data solutions, or infrastructure services. Kubernetes abstracts the monotonous tasks developers need to perform to run, maintain and scale cloud services.

Is Kubernetes a good skill to learn? ›

Kubernetes is in fact one of the most sought-after skills by software companies around the world and if you are looking to gain a skill that will stay with you throughout your career, much like SQL and UNIX then learning Kubernetes is a great option.

Who needs Kubernetes? ›

Kubernetes is useful if you are dealing with many containers and require some automation of the steps when starting them. So, unless you have a large microservice environment, Kubernetes is unlikely to bring much added value. Probably, it is not needed or suited for your case and you should not invest in it.

Should I learn Docker before Kubernetes? ›

When it comes to learning Docker or Kubernetes first and you ask yourself do I need to learn Docker before Kubernetes? The answer is that you should instead learn about containerization engines.

Is Kubernetes getting outdated? ›

Full removal is targeted in Kubernetes 1.24, in April 2022. This timeline aligns with our deprecation policy, which states that deprecated behaviors must function for at least 1 year after their announced deprecation.

What is the next big thing after Kubernetes? ›

A promising cloud technology that may become widely accepted after Kubernetes is micro VM Kubernetes distributions. AWS Firecracker is the most popular of micro VM Kubernetes, which packages micro virtual machines into a Kubernetes cluster to enhance the security, workload isolation, and efficiency of resources.

Is Kubernetes for developers or DevOps? ›

Kubernetes is the most popular container orchestration platform, and has become an essential tool for DevOps teams. Application teams can now deploy containerized applications to Kubernetes clusters, which can run either on-premises or in a cloud environment.

Why is Kubernetes so difficult? ›

Kubernetes requires a lot of configuration

There are many many different parameters and settings to manage in order to make the environment suitable. Again, the environment is now where the complexity lives and not so much in the applications.

How much do Kubernetes engineers make? ›

How much does a Devops Kubernetes Engineer make in USA? The average devops kubernetes engineer salary in the USA is $150,000 per year or $76.92 per hour. Entry level positions start at $130,000 per year while most experienced workers make up to $180,000 per year.

How long it takes to master Kubernetes? ›

Estimated time to complete

It will take you approximately 13 hours to complete this entire learning path.

Does Google use Kubernetes? ›

Google Cloud is the birthplace of Kubernetes—originally developed at Google and released as open source in 2014. Kubernetes builds on 15 years of running Google's containerized workloads and the valuable contributions from the open source community.

Is Kubernetes only for Microservices? ›

Kubernetes can be used for data center outsourcing, web/mobile software, SaaS support, cloud web hosting, and high-performance computing. None of the listed great advantages have anything to do with Microservices or are only beneficial to large organizations.

Why is Kubernetes so popular? ›

Among the reasons why Kubernetes has been so widely adopted are flexibility and lack of fragmentation. Kubernetes may not be perfect, but there's no denying that a lot of people love it. Indeed, Kubernetes provides orchestration for more than three-quarters of containerized applications today.

How do I become an expert in Kubernetes? ›

Linux Foundation - Certifications

The best way, to be a certified and recognized expert in Kubernetes security is to prepare: First the CKA exam – Certified Kubernetes Administrator. And then the CKS exam – Certified Kubernetes Security Speciali.

How many days we can learn Kubernetes? ›

If you add in lab time, reading, and exploring different ways to utilize Kubernetes, around 20 hours is a good enough timeframe to expect you'll be able to start working with Kubernetes in a work environment.

How many days will it take to learn Docker? ›

Kubernetes, also known as K8s, is an open-source container orchestration tool for automating deployment, scaling, and management of containerized applications. Is Docker hard to learn? If you dedicate your time in learning such crucial skills and practice them accordingly, you could simply learn Docker in 30 days.

Top Articles
Latest Posts
Article information

Author: Stevie Stamm

Last Updated:

Views: 6246

Rating: 5 / 5 (60 voted)

Reviews: 83% of readers found this page helpful

Author information

Name: Stevie Stamm

Birthday: 1996-06-22

Address: Apt. 419 4200 Sipes Estate, East Delmerview, WY 05617

Phone: +342332224300

Job: Future Advertising Analyst

Hobby: Leather crafting, Puzzles, Leather crafting, scrapbook, Urban exploration, Cabaret, Skateboarding

Introduction: My name is Stevie Stamm, I am a colorful, sparkling, splendid, vast, open, hilarious, tender person who loves writing and wants to share my knowledge and understanding with you.