Stand up a real service on one VM with: HTTPS via Caddy or nginx, the app running under systemd, a managed (or self-managed-with-backups) Postgres, schema migrations under version control, /healthz + /readyz endpoints, and one successful restore drill from a backup. Deploy a tiny CRUD app behind it and hit it from your laptop.
$ curl -s https://yourdomain.com/healthz
ok
$ curl -s https://yourdomain.com/readyz | jq
{ "db": "ok", "redis": "ok" }
$ sudo systemctl stop redis # break a dep
$ curl -s -o /dev/null -w "%{http_code}\n" https://yourdomain.com/readyz
503
$ # restore drill
$ docker run -d --name drilldb -e POSTGRES_PASSWORD=t -p 5433:5432 postgres:16
$ zcat latest-backup.sql.gz | docker exec -i drilldb psql -U postgres
$ docker exec drilldb psql -U postgres -c "SELECT count(*) FROM users;"
count
-------
14237
wrk against the Day 0 stack from a third VM. Record p50/p95/p99 for a /users listing endpoint. This is your baseline for the rest of the course.