tadata
Back to home

Platform Engineering: Building Internal Developer Platforms

#platform-engineering#devops#developer-experience#kubernetes

Platform engineering is the discipline of building and maintaining self-service infrastructure platforms that enable development teams to deliver software faster. It emerged from the realization that "you build it, you run it" doesn't scale without proper abstractions.

Why Platform Engineering

ProblemPlatform Solution
Every team reinvents deployment pipelinesStandardized golden paths
Developers wait on ops tickets for infrastructureSelf-service provisioning
Inconsistent security and complianceGuardrails baked into the platform
Cognitive overload on developersAbstracted complexity
Shadow IT and tool sprawlCurated, supported tooling

Internal Developer Platforms (IDPs)

An IDP is the sum of all tech and tools that a platform team provides to developers:

Core capabilities:

  • Infrastructure provisioning: databases, queues, storage -- via self-service
  • Environment management: create, clone, and tear down environments on demand
  • Deployment pipelines: standardized CI/CD with best practices built in
  • Observability: pre-configured dashboards, logging, and alerting
  • Service catalog: discover and consume internal APIs and services
  • Documentation: centralized, searchable, up-to-date technical docs

Platform as Product

The most successful platform teams treat their platform as an internal product:

  • Users are developers -- understand their needs through interviews and surveys
  • Product roadmap -- prioritize features based on developer pain points
  • SLAs -- define availability and support commitments
  • Onboarding -- smooth first experience with golden paths and templates
  • Feedback loops -- regular check-ins, NPS surveys, office hours
  • Measure adoption -- track usage, not just availability

Tool Landscape

ToolCategoryWhat It Does
Backstage (Spotify)Developer portalService catalog, docs, scaffolding, plugin ecosystem
CrossplaneInfrastructure control planeProvision cloud resources via Kubernetes CRDs
HumanitecPlatform orchestratorScore-based workload specification, dynamic config
PortDeveloper portalInternal developer portal with self-service actions
KratixPlatform frameworkComposable platform-as-a-product on Kubernetes
Terraform/OpenTofuIaCInfrastructure provisioning with modules as building blocks

Team Topologies and Platform Teams

The Team Topologies model (Skelton & Pais) defines four team types:

  • Stream-aligned teams: deliver value on a product or service
  • Platform teams: provide self-service capabilities to stream-aligned teams
  • Enabling teams: help stream-aligned teams adopt new practices
  • Complicated subsystem teams: own complex domains requiring specialist knowledge

The platform team's goal is to reduce cognitive load on stream-aligned teams. The platform should make the right thing easy and the wrong thing hard.

Golden Paths

Golden paths are opinionated, supported routes for common development tasks:

  • New service template: pre-configured repo with CI/CD, observability, and deployment manifests
  • Database provisioning: one-click database creation with backups, monitoring, and access control
  • Environment creation: spin up a full environment from a PR for testing
  • Incident response: automated runbook execution from the developer portal

Golden paths are recommended, not mandated -- teams can deviate, but they lose platform support.

Maturity Model

LevelDescription
1 - Ad hocNo platform team, each team manages their own infrastructure
2 - StandardizedShared CI/CD pipelines, basic templates, some documentation
3 - Self-serviceDevelopers can provision infrastructure without tickets
4 - OptimizedData-driven platform decisions, automated governance, high adoption
5 - ProductPlatform has a roadmap, SLAs, user research, and continuous improvement

Resources

:::