Treating the Platform as a Product
Summary
- Treating the platform as a product means running your Kubernetes cluster and its shared services with the same rigor - SLOs, error budgets, roadmaps, and users - that you apply to a customer-facing app.
- Insight: Application teams are your customers, and the API server, DNS, and scheduler are your product surface. Their reliability is a contract, not a best effort.
- Key Concepts: platform SLOs, error budgets, change windows, golden paths, internal developer platform (IDP), paved road.
- When to Use: Once more than a handful of teams share a cluster and cluster changes start to break their deploys, ad hoc operations no longer scale.
- Limitations/Trade-offs: Product discipline adds process - SLO reviews, change approvals, roadmap grooming. Small single-team clusters rarely need it.
- Related Topics: Platform SLOs, error budgets for the platform, change windows, and platform delivery best practices.
Foundations
A platform is not just a pile of infrastructure. It is a product that other engineers build on.
The mental shift is simple but load-bearing. Your users are the application teams, and your product is the set of guarantees they can rely on.
Those guarantees are concrete. The API server answers kubectl apply quickly. DNS resolves service names in single-digit milliseconds. The scheduler places new pods without long delays.
When you treat these as product features, you measure them, set targets, and defend them.
Contrast this with the classic operations model. Ops keeps servers up and reacts to tickets, but nobody owns whether the cluster is pleasant and predictable to build on.
Platform-as-a-product closes that gap. You define what "good" means for the cluster itself, publish it, and hold yourself accountable to it.
The four pillars borrowed from SRE are service level objectives, error budgets, change management, and a clear support model. Each applies to the cluster, not only to the apps running on it.
Mechanics & Interactions
Start with SLOs for the platform. A Service Level Objective is a target for a Service Level Indicator (SLI), which is a measured signal like the fraction of API requests served under 1 second.
Typical platform SLIs include API server availability and latency, DNS lookup latency, scheduling latency (time from pod created to pod bound to a node), and control-plane component health.
An SLO turns each SLI into a promise. For example: 99.9% of read requests to the API server succeed under 1 second, measured over 30 days.
The gap between 100% and your SLO is the error budget. At 99.9% over 30 days, that budget is about 43 minutes of allowed unreliability.
Error budgets connect reliability to change. When the budget is healthy, you ship platform changes freely. When it is nearly exhausted, you slow down or freeze.
Change windows are the operational expression of that policy. They define when disruptive platform work - control-plane upgrades, node pool rotations, CNI changes - is allowed to happen.
The pieces interact directly. SLOs define the target, error budgets track how much room you have, and change windows govern when you spend it.
A platform team also publishes golden paths. These are the paved, supported ways to do common tasks: a base image, a Helm chart, a CI template, an ingress pattern.
Golden paths reduce variance. When teams follow the paved road, the platform can make stronger reliability promises because the surface area is smaller.
Advanced Considerations & Applications
Platform reliability is measured from the tenant's perspective, not the operator's dashboard.
An admin might see a green control plane while a team sees kubectl timeouts because an admission webhook is slow. Instrument SLIs at the boundary the users actually touch.
Multi-tenancy raises the stakes. One noisy tenant that hammers the API server or floods DNS can burn everyone's error budget at once.
You defend the platform with quotas, PriorityClass for control-plane-critical workloads, API Priority and Fairness, and NetworkPolicies. These protect the shared product from any single customer.
Capacity is a product feature too. If the scheduler cannot place pods because nodes are full, scheduling latency climbs and deploys stall.
Node autoscaling with Karpenter or Cluster Autoscaler keeps scheduling latency inside its SLO by adding capacity before the queue backs up.
Versioning is another product concern. Kubernetes ships roughly three minor releases per year, and only the newest few minors are supported at any time.
On the pinned stack, 1.34 through 1.36 are supported and 1.33 is end of life. A platform-as-a-product team treats upgrades as a scheduled roadmap item, not an emergency.
The runtime boundary matters when you reason about reliability. Docker is your build and local-dev tool, while containerd via the CRI runs pods on the nodes.
Dockershim is gone, so never model Docker Engine as the in-cluster runtime. Node-level reliability work targets containerd, the kubelet, and the CNI.
Finally, connect this to delivery metrics. DORA metrics - deployment frequency, lead time for changes, change failure rate, and time to restore - measure how well the platform serves its users.
A healthy platform product raises deployment frequency and lowers change failure rate for every team on it, because the paved road makes safe changes easy.
Common Misconceptions
"Platform reliability is the same as node uptime." Nodes can be up while the API server is throttled or DNS is slow. Users feel the API and DNS, so measure those.
"SLOs are only for customer-facing apps." The cluster is a service with real users, the app teams. Their productivity depends on platform SLIs like scheduling and API latency.
"An error budget means we plan to fail." It is the opposite. The budget quantifies acceptable risk so you can ship changes confidently instead of freezing forever.
"More rules make the platform a product." Product thinking is about user outcomes and paved roads, not gatekeeping. Golden paths should make the easy thing the safe thing.
"Docker runs our pods." Docker builds images and runs Compose locally. On nodes, containerd via the CRI is the runtime, and that is what your reliability work targets.
FAQs
How is platform-as-a-product different from plain SRE? It applies SRE practices specifically to the shared cluster and its services, and adds product discipline: named users, a roadmap, and golden paths.
Who are the customers of the platform? The application and service teams that deploy onto the cluster. Their deploy experience and reliability are the product's outcomes.
Do small teams need this? Rarely. A single-team cluster can operate informally. The model pays off once many teams share infrastructure and coordination costs rise.
What is a golden path? A supported, paved way to accomplish a common task - a base image, chart, or pipeline - that reduces variance and lets the platform make stronger guarantees.
How do error budgets change day-to-day work? A healthy budget means you ship freely. A depleted budget triggers a slowdown or freeze and shifts focus to reliability until the budget recovers.
Where do DORA metrics fit? They measure whether the platform actually helps teams deliver. A good platform product improves deployment frequency and change failure rate across tenants.
Related
- Platform Delivery Basics
- Platform SLOs
- Error Budgets for Platform
- Change Windows
- Platform Delivery Best Practices
Stack versions: This page was written for Kubernetes 1.36.2, Docker Engine 29.6.1 (BuildKit default), containerd (CRI runtime on nodes), Helm 3, Compose v2, Argo CD (latest - verify at build), and Gateway API (GA - verify controller support at build).