Command Palette

Search for a command to run...

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.

30 min Free 2 steps 1 break-it drills

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.

ShopLite IDP layersdiagram
Rendering diagram…

Part 2

Your project after this mission · 4 files change

shoplite-platform/
  • shoplite-platform/
    • addons/
      • new
    • argocd/
      • root.yamlnew
    • docs/
      • charter.mdnew
    • README.mdnew

Part 3

Build it, step by step

  1. 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. 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't helm install by 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 main
    git add . && git commit -m 'platform: charter + root app' && git remote add origin git@github.com:<you>/shoplite-platform.git && git push -u origin main
    kubectl 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-platform repo exists and Argo CD's platform-root app 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.

terminal
$ echo 'Portal analytics after 60 days'
── what you'll see ──
Weekly active users: 4 (all from the platform team)
Templates used: 1
Teams still filing tickets for new services: 4 of 4

Part 5

Interview questions from this mission

01

What is platform engineering and how is it different from DevOps?

02

What is a golden path?

03

How do you measure whether a platform is successful?

0/4 · 0%