| name | design-platform-engineering-model |
| description | Use when designing an internal developer platform (IDP) to reduce cognitive load on product teams, standardize infrastructure access, and improve developer experience at scale |
| source | CNCF "Platform Engineering Maturity Model" (2023); Skelton & Pais "Team Topologies" (2019); Gartner "Platform Engineering Will Become Essential for Cloud-Native" (2023); DORA "State of DevOps Report" (2023) |
| tags | ["devops","platform-engineering","idp","developer-experience","team-topologies","kubernetes"] |
| verified | true |
Design Platform Engineering Model
Build a self-service internal developer platform (IDP) that abstracts infrastructure complexity, enforces golden paths, and enables product teams to deploy and operate software without deep platform expertise.
Why This Is Best Practice
Adopted by: Spotify (Backstage, open-sourced 2020), Netflix (PaaS internal platform), Airbnb, Uber, and over 60% of organizations with 500+ engineers (Gartner, 2023); CNCF Platform Engineering Working Group formed 2022 with 100+ member organizations
Impact: DORA 2023 research shows that teams with mature platform capabilities deploy 4x more frequently and have 50% lower change failure rates. Spotify's Backstage reduced time to onboard a new service from 2 weeks to 2 hours. Gartner predicts 80% of software engineering organizations will establish platform teams by 2026 to manage cloud complexity. Team Topologies research found cognitive load reduction from platform teams directly correlates with delivery throughput.
Why best: Without a platform team, every product team independently solves the same infrastructure problems (CI/CD, observability, secrets management, Kubernetes configuration) with inconsistent results. This creates n×m complexity. A platform team solves the problem once, exposes it as a self-service product, and product teams consume it — creating cognitive load reduction and economies of scale that compound as the organization grows.
Sources: Skelton, M. & Pais, M. "Team Topologies" IT Revolution (2019); CNCF Platform Engineering Maturity Model v1.0 (2023); Gartner "Innovation Insight for Platform Engineering" (Feb 2023); DORA "Accelerate State of DevOps Report" (2023); Humanitec "State of Platform Engineering" (2023)
Steps
-
Assess the baseline — quantify developer pain — Survey product teams to measure current cognitive load: time spent on infrastructure vs. product work, frequency of blocked deployments, toil hours per sprint, and onboarding time for new engineers. Use these metrics as the baseline against which platform ROI will be measured. Avoid building a platform based on assumptions — validate the pain points.
-
Define the platform as a product — adopt product management practices — Assign a product manager (or platform engineer with PM skills) to own the IDP roadmap. Treat internal product teams as customers. Conduct user research, maintain a prioritized backlog, publish a roadmap, and track adoption metrics (API calls, active teams, time-to-first-deployment). A platform nobody uses is waste.
-
Identify and design golden paths — opinionated defaults, not mandates — A golden path is the recommended, paved way to accomplish a common task (e.g., deploy a web service, add a new microservice, integrate with the message bus). Design 3–5 golden paths covering 80% of product team use cases. Golden paths use sensible defaults while permitting escape hatches for teams with valid reasons to diverge.
-
Build self-service capabilities — eliminate ticket-driven workflows — Replace manual provisioning requests (Jira tickets to platform/infra team) with self-service APIs, CLIs, or UIs. Use platform abstractions: Backstage software templates, Crossplane XRDs, or custom Kubernetes operators. The test: can a product engineer get a new production-ready service running without filing a ticket?
-
Implement an internal developer portal — centralize discoverability — Deploy a developer portal (Backstage, Port, or Cortex) as the front door to all platform capabilities. Catalog all services, APIs, documentation, runbooks, and infrastructure resources. Enable engineers to discover existing services before building new ones. Track service ownership, SLOs, and on-call information in one place.
-
Define a capability model — build in layers — Structure the IDP across layers: (1) infrastructure provisioning (compute, networking, storage), (2) container platform (Kubernetes abstractions, namespaces, quotas), (3) application delivery (CI/CD pipelines, deployment patterns), (4) observability (metrics, logs, traces, alerting), (5) security and compliance (secret management, policy enforcement, vulnerability scanning). Deliver layers incrementally, highest-demand first.
-
Encode standards as guardrails — shift left on compliance — Use policy-as-code (OPA/Gatekeeper, Kyverno) to enforce security and operational standards at admission time. Engineers get immediate feedback when their configuration violates policy, rather than discovering it at production deployment or in a security audit. Document every policy with a rationale and an exception process.
Rules
- The platform is a product — it must have an owner, a roadmap, and be measured by adoption and developer satisfaction, not by uptime alone
- Never force teams onto the platform through mandates before the platform delivers clear value — adoption must be earned
- Every platform capability must have an SLA and a clear escalation path when it fails — platform outages are P1 incidents
- Escape hatches must exist for every golden path — teams with legitimate edge cases must be able to diverge without blocking their delivery
- Platform engineers must spend at least 20% of time embedded with product teams to maintain empathy and avoid building for imaginary users
Common Mistakes
- Building a platform nobody asked for — Starting with technology (Kubernetes, Backstage) before validating that the problems it solves are the actual bottlenecks for product teams. Survey first, build second.
- Replicating the ticket model digitally — Creating a self-service portal that still requires human approval for every resource creates digital bureaucracy without actual self-service.
- Owning too much too soon — Platform teams that try to own CI/CD, secrets, observability, networking, and databases all at once spread thin and deliver nothing well. Focus on one golden path until it's excellent, then expand.
- Neglecting documentation and onboarding — A powerful platform that requires tribal knowledge to use has low adoption. Every capability needs a getting-started guide, example, and troubleshooting FAQ.
- Ignoring platform reliability — Product teams depend on the platform for their deployments. An unreliable platform creates more toil than it eliminates. Treat platform SLOs with the same rigor as production service SLOs.
Examples
Spotify Backstage golden path: A product engineer runs backstage-cli create to scaffold a new microservice from a template that pre-configures GitHub Actions CI, Kubernetes deployment manifests, Datadog dashboards, and PagerDuty escalation — all compliant with organizational standards. Time from zero to first production deploy: under 2 hours.
Crossplane self-service databases: Instead of filing a Jira ticket for a production PostgreSQL instance, a product team applies a PostgreSQLInstance custom resource to their Kubernetes namespace. The Crossplane provider provisions an RDS instance with approved size, region, encryption, backup policy, and IAM role — all from a single YAML file reviewed in a PR.
When NOT to Use
- Organizations with fewer than ~30 engineers where the overhead of a dedicated platform team exceeds the coordination costs it solves
- Greenfield projects where product-market fit is unproven — invest in shipping product first; platform investment makes sense once scale creates real infrastructure toil