Skip to content
Sandeep Kumar ChaudharySandeep
Back to BlogKubernetes & DevOps

How to Build an Internal Developer Platform With Backstage

By Sandeep Kumar ChaudharyJul 23, 20266 min read
How to Build an Internal Developer Platform With Backstage — Kubernetes & DevOps guide by Sandeep Kumar Chaudhary, full stack developer

TL;DR

A complete, up-to-date breakdown of internal developer platform for developers and founders. It covers the core ideas, the trade-offs that matter, a practical workflow, real numbers, and the questions people ask most — written to be skimmed, applied, and shared.

Key takeaways

  • Do not add a service mesh until you actually need mTLS, fine-grained traffic policy, or deep observability across services.
  • Right-size autoscaling with HPA for pods, Cluster Autoscaler or Karpenter for nodes, and KEDA for event-driven and scale-to-zero workloads.
  • Shift security left with policy-as-code (OPA Gatekeeper or Kyverno), signed images, and SBOMs rather than bolting on scans at the end.
  • Adopt GitOps early: make a Git repository the single source of truth and let Argo CD or Flux reconcile the cluster to it.
  • Set resource requests and limits deliberately; missing requests wreck the scheduler's bin-packing and cause noisy-neighbor problems.

This is a practical, up-to-date guide to Internal Developer Platform — what it is, why it matters in 2026, and how to apply it in real projects. It is written for developers and founders who want clear answers and proven best practices, not filler.

Whether you're just starting out or leveling up, treat this as a working reference you can return to. Every section is built to be skimmed, applied, and shared.

Packaging with Helm and Kustomize

Raw Kubernetes manifests become unwieldy across many services and environments, so teams reach for templating and configuration tools. Helm is the de facto package manager for Kubernetes; a Helm chart bundles templated manifests plus a values file, and helm install renders and applies them as a tracked release you can roll back. Kustomize takes a different, template-free approach, layering environment-specific overlays on top of a common base, and it ships built into kubectl. A common pattern is to use Helm for third-party dependencies and Kustomize or plain values overlays for your own services. Whichever you choose, keep secrets and per-environment values out of the chart itself so the same artifact promotes cleanly from staging to production.

Common pitfalls and anti-patterns

The most frequent mistake is adopting Kubernetes for its own sake when a simpler managed platform would serve a small team better; the operational tax is real. Teams routinely omit resource requests and limits, which cripples scheduling and invites cascading out-of-memory kills and noisy neighbors. Others treat clusters as pets, applying changes by hand until no one can reproduce the environment, which is exactly what GitOps exists to prevent. Over-engineering is common too, such as installing a service mesh or a sprawling portal before there is any pain to justify it. Finally, neglecting continuous upgrades is dangerous because Kubernetes deprecates APIs and supports each release for only about fourteen months, so falling behind compounds quickly.

What Kubernetes actually is

Kubernetes is an open-source system for automating the deployment, scaling, and management of containerized applications. Originally built by Google and released in 2014, it is now stewarded by the Cloud Native Computing Foundation and has become the industry-standard container orchestrator. At its core, you describe the desired state of your workloads in declarative YAML or JSON, and Kubernetes continuously works to make the real state match that description. It groups one or more containers into a Pod, the smallest deployable unit, and higher-level objects like Deployments, StatefulSets, and Jobs manage those Pods over time. The key mental shift is that you tell Kubernetes what you want rather than scripting the steps to get there.

Containers and the runtime layer

Containers package an application together with its dependencies into an isolated, portable unit that runs consistently across environments, using Linux primitives like namespaces and cgroups rather than a full virtual machine. Docker popularized the developer workflow and image format, but Kubernetes itself dropped the Docker shim and now talks to runtimes through the Container Runtime Interface, most commonly containerd. Image formats and registries are standardized under the Open Container Initiative, so an image built by one tool runs under another. Modern build tooling such as BuildKit, Buildpacks, and ko lets teams produce images without hand-written Dockerfiles. Understanding this layer matters because most Kubernetes performance, security, and supply-chain concerns ultimately trace back to the container image and how it runs.

Internal developer platforms and Backstage

An Internal Developer Platform is the concrete product a platform team ships, typically fronted by a portal that unifies service catalogs, documentation, scaffolding, and CI/CD and infrastructure integrations. Backstage, created at Spotify and donated to the CNCF in 2020, is the most widely adopted open-source framework for building such portals, centered on a software catalog and an extensible plugin model. Its Software Templates feature lets developers scaffold a new, best-practice service in minutes, and TechDocs keeps documentation next to the code. Because Backstage is a framework rather than a turnkey product, many teams either invest engineering effort to run it or choose commercial platforms such as Port, Cortex, or Spotify's own Portal offering. The unifying idea is a single pane of glass over an otherwise sprawling toolchain.

Autoscaling from pods to nodes

Kubernetes scales along several independent axes and you usually combine them. The Horizontal Pod Autoscaler adds or removes Pod replicas based on CPU, memory, or custom metrics, while the Vertical Pod Autoscaler tunes per-Pod resource requests. When there is no room to place new Pods, the Cluster Autoscaler grows the node pool, and the increasingly popular open-source Karpenter provisions right-sized nodes quickly and consolidates them for cost. For event-driven and bursty workloads, KEDA scales on queue depth or other external signals and can even scale workloads to zero. Correct autoscaling depends entirely on setting sensible resource requests and limits, since the scheduler and every autoscaler reason about those numbers.

Internal Developer Platform: Key Facts and Data

According to recent industry research and the official documentation linked below:

  • Kubernetes follows a roughly three-releases-per-year cadence, and each minor release is supported for about 14 months including maintenance, which pressures teams to upgrade continuously.
  • Service mesh adoption remains a minority of Kubernetes users according to CNCF surveys, with Istio and Linkerd as the leading open-source options and Istio's sidecar-less ambient mode aimed at reducing overhead.
  • Platform engineering moved firmly into the mainstream in the 2020s, and Gartner has projected that a large majority of large software organizations will have dedicated platform teams providing internal self-service by around 2026.

Quick-Reference Summary

A map of what this guide covers:

TopicWhat you'll learn
Packaging with Helm and KustomizeRaw Kubernetes manifests become unwieldy across many services and environments
Common pitfalls and anti-patternsThe most frequent mistake is adopting Kubernetes for its own sake when a simpler managed platform would serve a small team better
What Kubernetes actually isKubernetes is an open-source system for automating the deployment
Containers and the runtime layerContainers package an application together with its dependencies into an isolated
Internal developer platforms and BackstageAn Internal Developer Platform is the concrete product a platform team ships
Autoscaling from pods to nodesKubernetes scales along several independent axes and you usually combine them.

How to Get Started with Internal Developer Platform

A simple path that works:

  1. Learn the fundamentals of Internal Developer Platform from primary sources, not just tutorials.
  2. Build one small, real project end to end.
  3. Get feedback, refactor, and add tests.
  4. Ship it publicly and document what you learned.
  5. Repeat with a slightly harder project each time.

Build It with a World-Class Full Stack Developer

Sandeep Kumar Chaudhary is a full stack world-class developer. If you want to turn this into a real, production-ready product, get in touch — message directly on WhatsApp at +9779802348957 for a fast, no-pressure consult.

You can also explore the projects already shipped to thousands of users, or start a conversation here.

Final Thoughts

Do not add a service mesh until you actually need mTLS, fine-grained traffic policy, or deep observability across services. The developers and teams who win in 2026 pair strong fundamentals with consistent shipping. Start small, stay curious, build in public, and revisit this guide as your skills grow.

Sources and Further Reading

#kubernetes#platform engineering#internal developer platform#gitops

Frequently Asked Questions

What is internal developer platform?

The most frequent mistake is adopting Kubernetes for its own sake when a simpler managed platform would serve a small team better; the operational tax is real. Teams routinely omit resource requests and limits, which cripples scheduling and invites cascading out-of-memory kills and noisy neighbors. This guide covers internal developer platform end to end — core concepts, best practices, concrete data, and a step-by-step approach you can apply right away.

Is Backstage free, and what does running it involve?

Backstage is a free, open-source CNCF framework originally created at Spotify, but it is a framework rather than a finished product. That means you build and host your own portal, writing or configuring plugins and maintaining the deployment, which requires real engineering investment. Teams that do not want to run it themselves often adopt commercial IDP products such as Port, Cortex, or Spotify Portal instead.

Helm or Kustomize, which should I choose?

Helm is a full package manager with templating, versioned releases, and rollbacks, ideal for distributing and installing complex third-party applications. Kustomize is template-free and layers overlays over a base, which keeps your own manifests readable and is built into kubectl. Many teams use both: Helm for external dependencies and Kustomize for their own services, and the two can be combined.

Should I use Argo CD or Flux for GitOps?

Both are CNCF graduated projects that reliably reconcile clusters from Git, so either is a safe choice. Argo CD offers a polished web UI and an application-centric model that many teams find easier to adopt and demo, while Flux is more modular, controller-driven, and composes well when you want GitOps as building blocks. Pick Argo CD if you value a strong UI out of the box, and Flux if you prefer a lightweight, Kubernetes-native toolkit you assemble yourself.

What is an Internal Developer Platform?

An Internal Developer Platform is a curated, self-service layer built by a platform team so product developers can provision infrastructure, deploy services, and manage environments without deep expertise or ticket queues. It usually presents a portal, often built on Backstage, that unifies a service catalog, scaffolding templates, documentation, and CI/CD and cloud integrations. The point is to reduce cognitive load by encoding secure, reliable defaults into golden paths.

Sandeep Kumar Chaudhary

Sandeep Kumar Chaudhary

Full Stack Software Developer· Nepal's SEO, AEO, GEO & AIO expert and share-market educator. More about me