Skip to main content

Capstone Exercises

Unlike earlier modules, the "exercise volume" here is your capstone itself. You do not need a separate problem platform. You need to deploy, break, and redeploy the real thing multiple times. The exercises below are organized as increasing-stakes passes over the same system.

How To Use This Page

  1. Do the concept-level practice pages first.
  2. Each exercise below targets a real, graded piece of the capstone.
  3. Log mistakes with tags: state-drift, secret-in-repo, oidc-trust-too-broad, rollback-path-untested, migration-not-reversible, smoke-too-shallow, runbook-stale, release-note-missing.

Lane 1: First Deployable

Use this lane when nothing is deployed yet.

  • Stand up the remote Terraform backend, confirm terraform init works.
  • Commit the first deploy.yml that runs build-test successfully.
  • Wire OIDC to your cloud and assume the deploy role from a workflow (no deploy yet).
  • Commit library/raw/decisions/001-platform.md, library/raw/decisions/002-topology.md, library/raw/decisions/003-environments.md.

Target outcomes:

  • terraform plan runs on every PR
  • OIDC aws sts get-caller-identity (or equivalent) succeeds in a workflow
  • three ADRs are committed and reviewable

Lane 2: First Real Deploy

Use this lane when Lane 1 is complete and the system is not yet in prod.

  • Deploy to prod from main via the pipeline.
  • Add the three-check smoke script and wire it into the deploy step.
  • Write the first release note in CHANGELOG.md, authored by hand within an hour of deploy.
  • Write RUNBOOK.md v1 after the first deploy. Print and read aloud.

Target outcomes:

  • a public URL serving the capstone
  • a green pipeline run whose smoke step passed
  • CHANGELOG.md with at least one authored entry
  • RUNBOOK.md that fits on one page

Lane 3: Rollback and Migration

Use this lane when Lane 2 is complete and you can deploy at will.

  • Rehearse a rollback on staging or in a quiet prod window. Commit library/raw/rollback-rehearsals/001.md with timestamps.
  • Ship one expand-contract migration. Commit the up/down pair and library/raw/migrations/<id>.md.
  • Deliberately fail a smoke check in a PR; verify the pipeline blocks promotion.
  • Introduce and retire one feature flag within the same semester.

Target outcomes:

  • one rollback with a written timer under 10 minutes
  • one expand-contract migration visible across two commits on main
  • one CI run that correctly failed due to a smoke test
  • one flag retired, both branches deleted in the retirement PR

Lane 4: Operational Polish

Use this lane once Lanes 1-3 are complete and you have roughly 10 days before capstone defense.

  • Add preview environments, or add a staging promotion with manual approval -- whichever you do not already have working.
  • Wire cost alerts on the cloud project (e.g., "email me if monthly spend > $X").
  • Invite a peer to deploy using only RUNBOOK.md. Record the minutes they paused on each line. Fix the top three.
  • Back-fill release notes for any deploys that shipped without one this semester.

Target outcomes:

  • one preview or staging flow verified on one PR or one merge
  • one cost alert visible in the cloud console
  • one "stranger deploy" with recorded friction points
  • CHANGELOG.md has a coverage rate of ≥ 90% (entries per deploy)

Self-Curated Mistake Log

Build a log with these minimums:

  • 8 mistakes that happened to you in your capstone, not hypothetical
  • for each, the tag, the symptom, the fix, and a one-line rule for next time
  • at least 2 mistakes per lane

Completion Checklist

  • Completed at least Lanes 1-3 in full
  • Logged at least 8 real mistakes and corrections
  • Peer has successfully deployed from RUNBOOK.md alone at least once
  • Rollback rehearsal executed within two days of first prod deploy
  • At least three release notes authored with the Why and Risk sections