Platform Engineering Fundamentals · Module 12 of 12

Capstone — build a self-service golden path

Design and validate a small internal platform contract that turns a developer service request into owned, policy-compliant, observable desired state with a rollback path and measurable platform outcome.

Learning objectives

By the end of this module, you should be able to:

  • Connect product need, catalog metadata, template output, provisioning, GitOps, policy and observability into one platform flow.
  • Validate relationships instead of checking whether fields merely exist.
  • Defend trade-offs, ownership and exceptions using evidence.

Capstone scenario

A product team needs a standard web service path. Today they file tickets for repository setup, namespace access, deployment wiring, dashboards and policy exceptions. Build a platform contract that reduces those handoffs while preserving ownership and safe controls.

Prove the relationships

The service owner in the request must match catalog ownership; the artifact digest promoted by desired state must match the built artifact; public exposure requires an explicit policy decision; readiness requires dashboard, SLO, runbook and rollback evidence.

The evidence chain should also identify the build platform owner, the immutable artifact/SBOM/provenance hand-off, workload identity or secret-delivery boundary, and the incident/support owner for the platform capability.

A platform succeeds when the user journey succeeds

The final evidence should show not only that automation ran, but that a developer can request, understand, operate and recover the service without hidden platform-team steps.

Worked example

Capstone evidence chain

developer request → catalog → golden path → bounded environment → immutable artifact → desired state → policy → runtime/readiness → feedback
  • Every transition has a contract and inspectable evidence.
  • Deliberate bad fixtures should be rejected to prove the validator is checking relationships.
Core lab · account-free

Lab 12 — Validate a platform golden-path release

Goal: Create a relationship-aware platform manifest and prove that unsafe or inconsistent changes are rejected.

Before you start

  • No cloud account required.
  • Core lab uses bash/Python 3 and local files only.
STEP 1

Write capstone manifest

mkdir -p /tmp/platform-capstone
cat > /tmp/platform-capstone/platform.json <<'EOF'
{"request":{"service":"orders","owner":"payments","environment":"prod","workload_class":"web-service"},"catalog":{"service":"orders","owner":"payments","docs":true},"artifact":{"digest":"sha256:abc123","signed":true},"desired":{"artifact_digest":"sha256:abc123","replicas":3},"policy":{"privileged":false,"public":false,"exception_days":0},"readiness":{"dashboard":true,"slo":true,"runbook":true,"rollback":true},"platform":{"self_service":true,"idempotent":true,"status_visible":true,"support_owner":"platform"}}
EOF
STEP 2

Validate relationships

python3 labs/platform-engineering-capstone/validate_platform.py /tmp/platform-capstone/platform.json
STEP 3

Break artifact identity

python3 - <<'PY2'
import json
p='/tmp/platform-capstone/platform.json'; x=json.load(open(p)); x['desired']['artifact_digest']='sha256:DIFFERENT'; json.dump(x,open('/tmp/platform-capstone/bad.json','w'))
PY2
if python3 labs/platform-engineering-capstone/validate_platform.py /tmp/platform-capstone/bad.json; then echo 'ERROR: drift was accepted'; exit 1; else echo 'expected rejection: artifact drift'; fi
STEP 4

Defend the design

Explain which implementation details the developer does not need to know, and which evidence/status must remain visible for safe operations.

Verify

  • Request/catalog owners match.
  • Built and desired artifact digests match.
  • Unsafe privilege/public exposure rules are rejected.
  • Readiness and rollback evidence are complete.
  • The deliberately drifted artifact is rejected.

Expected outcome

  • A platform manifest that validates end-to-end relationships plus evidence of a deliberate failure test.

Diagnose / troubleshoot

  • Owner mismatch means catalog/request sources disagree.
  • Artifact mismatch means promotion is not immutable.
  • Missing rollback/readiness means the golden path is not production-shaped.
  • A policy exception without owner/expiry should be treated as invalid, not silently accepted.
Real-world connection

A production platform is an interface across many systems; the capstone tests whether those interfaces form one coherent, operable developer journey.

Real-tool practicum · optional but recommended

Optional tool lab — map the capstone to real platform tools

Map the same contract to Backstage/catalog/templates, GitHub/GitLab, Terraform/OpenTofu, Helm, Argo CD/Flux, Kubernetes policy and observability in an approved sandbox.

Prerequisites

  • Use a disposable local lab or organization-approved sandbox.
  • Pin tool versions in real platform automation; do not blindly depend on latest.

Cost / risk

  • Core learning is account-free. Optional external/sandbox tools may consume local CPU/RAM; do not use production credentials or billable cloud resources.

Warnings

  • Do not point training automation at production clusters, repositories or cloud accounts.
  • A successful command is not proof of a good platform interface; validate the developer outcome and guardrails.
TOOL 1
printf '%s
' 'Backstage -> request/catalog/template' 'IaC -> environment' 'Helm -> workload package' 'GitOps -> desired state/reconciliation' 'Policy -> admission/guardrails' 'Observability -> readiness/feedback'
Capstone rubric

Score evidence and product outcomes—not portal polish.

Developer problem & product outcome · 15%

A clear target user journey, baseline friction and measurable outcome.

Catalog & ownership · 10%

Service identity, owner, lifecycle and documentation/runbook links are explicit.

Golden path & contract · 20%

Validated inputs/outputs, supported defaults, extension path and versioning semantics.

Provisioning & GitOps · 15%

Idempotent lifecycle, immutable artifact promotion, desired-state reconciliation and rollback. Build-platform ownership and artifact/SBOM/provenance hand-off are explicit.

Policy & tenancy · 15%

Least privilege, quotas/ownership, guardrails and bounded exceptions are proven. Workload identity/secret-delivery boundaries are explicit.

Observability & readiness · 15%

Dashboards/signals, SLO/readiness evidence and actionable scorecard rules.

Platform operations & evolution · 10%

Platform SLOs, adoption/task-success signals, support and deprecation strategy. On-call, intake/roadmap and incident handoff boundaries are explicit.

Avoid these traps

Common mistakes

  • Building the capstone as a portal screenshot with no backend contract.
  • Allowing request owner and catalog owner to disagree.
  • Promoting a different artifact than the one that was built/verified.
  • Calling a service ready without operational evidence and rollback.
Knowledge check

Can you connect the developer need to a platform contract?

Three concept checks plus one scenario check.

1What makes the capstone a platform rather than a toolchain?

A coherent supported developer contract connects capabilities, guardrails, ownership, lifecycle and feedback across the tools.

2Why must request and catalog ownership agree?

Ownership is part of the operational contract; conflicting sources make routing and accountability unreliable.

3Why compare built and desired artifact digests?

It proves the exact immutable artifact is the one promoted through the platform path.

4Scenario: the portal request succeeds but the service has no dashboard/runbook/rollback. Is the golden path complete?

No. Provisioning succeeded, but the production operational-readiness contract is incomplete.

My Learning

Record your progress for this module.

Progress is saved in this browser immediately. When you sign in to My Learning, it can also sync across devices.

Not started

Attempt the core lab and knowledge checks before marking the module complete.