Mission 0.1 · Stage 0 — Platform Foundations: The Paved Road on Kubernetes
What Platform Engineering Is (and Isn't)
Goal: A written platform charter for ShopLite, the repo skeleton, and a clear idea of what the internal developer platform will offer.
By the end of this mission
- Explain platform engineering, internal developer platforms (IDPs), and golden paths
- Describe 'platform as a product' and the Team Topologies roles
- Tell a platform apart from 'DevOps team renamed' or a ticket queue
- Write a platform charter with users, capabilities, and success metrics
Part 1
Understand it first
The problem it solves
'You build it, you run it' moved operations into product teams. But now every team has to learn Kubernetes, Terraform, CI/CD, observability, secrets, and security to ship a feature: the COGNITIVE LOAD is enormous, every team solves the same problems slightly differently, and security and reliability standards drift. Hiring a central 'DevOps team' to do it for them just brings back the ticket queue and the waiting.
PLATFORM ENGINEERING is the answer: a dedicated team builds an INTERNAL DEVELOPER PLATFORM (IDP), a curated, self-service set of tools, templates, and automation that lets product teams do common tasks themselves, quickly and safely.
Golden paths
A GOLDEN PATH (or paved road) is the supported, opinionated way to do a common task: 'create a new Java service' produces a repo with a Dockerfile, CI pipeline, Helm/Kustomize config, GitOps registration, dashboards, alerts, and a catalog entry, all following standards, in five minutes. Teams CAN leave the path when they have a good reason, but then they own what they build off it. The path wins by being the easiest option, not by being mandatory.
Platform as a product
The platform's users are developers, and it should be run like a product: user research (what slows teams down?), a roadmap, documentation, onboarding, support, and adoption metrics. In TEAM TOPOLOGIES terms, STREAM-ALIGNED teams deliver product features; the PLATFORM team provides internal services that reduce their load; ENABLING teams coach (e.g. security champions); COMPLICATED-SUBSYSTEM teams own hard specialist components. Success is measured by developers' outcomes (lead time, onboarding time, satisfaction), not by how many tools the platform team installs.
The layers of an IDP
A common reference model: a DEVELOPER CONTROL PLANE (portal, templates, CLI, API, docs), an INTEGRATION AND DELIVERY plane (CI, registries, GitOps, deployment strategies), a RESOURCE plane (Kubernetes clusters, databases, queues, cloud accounts), MONITORING AND LOGGING, and SECURITY (secrets, identity, policy). This course builds pieces of each on top of what the earlier courses gave you.
Part 2
Your project after this mission · 4 files change
- shoplite-platform/
- addons/
- new
- argocd/
- root.yamlnew
- docs/
- charter.mdnew
- README.mdnew
Part 3
Build it, step by step
- 1
Interview your users first
Before building anything, ask the ShopLite product teams what slows them down. In a real company, run 30-minute interviews and a short survey. Typical answers become the backlog. The fictional ShopLite answers are below; notice none of them say 'we need Backstage'.
shoplite-platform/docs/charter.mdwhole filemarkdown # ShopLite Platform Charter ## Users Four stream-aligned teams (storefront, checkout, catalog, fulfilment), ~30 engineers. ## What slows them down today (from interviews) 1. New service takes ~2 weeks: repo, CI, Helm, Argo app, DNS, TLS, dashboards via tickets. 2. Databases need a ticket to the platform team (3–5 days). 3. Nobody knows who owns which service or where its runbook is. 4. Security findings arrive late, after release. ## Platform capabilities (MVP) - Golden path: new service in < 15 minutes, production-ready by default. - Self-service PostgreSQL and S3 via a claim, within guardrails. - Service catalog with owners, docs, dashboards, and runbooks. - Guardrails as policy (not review meetings): Kyverno + CI checks. ## Success metrics - Lead time for a new service: 2 weeks → < 1 day - DORA: deployment frequency, lead time, change failure rate, recovery time - Developer satisfaction survey (quarterly), golden-path adoption % ## Non-goals - Hiding Kubernetes completely; teams can still read and change their manifests. - Mandating the golden path; teams may leave it and own the result. - 2
Create the platform repo, managed by Argo CD
Platform add-ons are just more Applications, so reuse the app-of-apps pattern from the GitOps course (Mission 1.4). Each add-on gets a folder under
addons/, and a root Application picks them all up. Everything in this course is installed through Git; you won'thelm installby hand.shoplite-platform/argocd/root.yamlwhole fileyaml apiVersion: argoproj.io/v1alpha1 kind: Application metadata: name: platform-root namespace: argocd spec: project: default source: repoURL: https://github.com/<you>/shoplite-platform.git targetRevision: main path: addons directory: { recurse: true, include: "*-app.yaml" } destination: server: https://kubernetes.default.svc namespace: argocd syncPolicy: automated: { prune: true, selfHeal: true }terminal$ mkdir -p shoplite-platform/{addons,argocd,docs} && cd shoplite-platform && git init -b maingit add . && git commit -m 'platform: charter + root app' && git remote add origin git@github.com:<you>/shoplite-platform.git && git push -u origin mainkubectl apply -f argocd/root.yaml── expected output ──application.argoproj.io/platform-root created
Checkpoint — you should now have
- ✓A charter lists users, pain points, MVP capabilities, success metrics, and non-goals.
- ✓The
shoplite-platformrepo exists and Argo CD'splatform-rootapp is Synced (empty for now).
Part 4
Break it on purpose
Make each change, run the command, and read the error before revealing the diagnosis. Recognising these messages on sight is what makes you fast on a real team. Undo the change afterwards.
Break #1
Build the portal first, nobody comes
Skip the interviews, spend a quarter building a beautiful portal with 40 plugins, and announce it.
Part 5
Interview questions from this mission
What is platform engineering and how is it different from DevOps?
What is a golden path?
How do you measure whether a platform is successful?