Skip to content
prod e051e98
Browse

4 · Post-deploy monitoring & day-2 (P9)

Objective — watch the live app closely through the first 24–48h with smoke tests, integration checks, performance/security spot-checks, log triage, and recorded baselines — keeping rollback one command away — so issues that only surface under real load are caught before they compound.

Some issues only surface under real load, on timezone-bound cron jobs, or after a cache expires. Watch closely through the first two days — and keep rollback one command away the entire time.

Run the post-deploy checks, then keep watching.

The first substep is a browser-driven end-to-end pass.

  1. Smoke-test immediately — registration, login, password reset, logout, and core features all work end-to-end.

    • ✅ Every core user flow works end-to-end in the browser.
  2. Verify integrations — email delivery, key API routes, payment gateway, and queue workers all process.

    • ✅ Email, key API routes, payments, and queue workers all process.
  3. Spot-check performance and security — homepage/login/health response times are within target, .env is unreachable (403/404), HTTPS/HSTS present, and APP_DEBUG=false.

    Terminal window
    curl -s -o /dev/null -w "Home: %{time_total}s\n" https://<DOMAIN>
    curl -s -o /dev/null -w "%{http_code}\n" https://<DOMAIN>/.env # Expected: 403 or 404
    • ✅ Response times are within target and .env returns 403/404.
  4. Watch logs and triage. Tail the app log, count errors, and classify anything that appears.

    SeverityDefinitionAction
    CriticalCore functionality brokenHotfix immediately
    HighMajor UX impactFix within 24–48h
    MediumMinor bugNext patch release
    LowCosmetic / edge caseBacklog
    • ✅ Logs are tailed and every error is classified and actioned by severity.
  5. Record baselines after 48h — error rate (< 0.1%), average response time (< 200ms), uptime (99.9%) — and note lessons learned.

    • ✅ Error rate, response time, and uptime baselines are recorded with lessons learned.

After the first launch, the cycle gets short: prepare the release (P1), push through stagingproduction, tag, and run an abbreviated P9. No installer, no manual .env, no 777 pass — migrations run automatically and every deploy carries built-in safety checks (pre-symlink smoke test, cache-failure blocking, HTTP health check, and automatic rollback if any check fails).

AspectFirst deploySubsequent deploys
DatabaseEmpty — installer creates schemaExists — migrations update schema
InstallerRequired (/install)Not needed
.env / server dirsCreate manuallyAlready in place
Permissions hardening (P3)One-timeSkip
flowchart LR
subgraph first["First deploy"]
F1[Empty DB] --> F2[Web installer]
F2 --> F3[Manual .env + dirs]
F3 --> F4[Full P9 watch]
end
subgraph day2["Subsequent deploys"]
S1[P1 prepare release] --> S2[staging → production]
S2 --> S3[Auto migrations]
S3 --> S4[Abbreviated P9]
end
first --> day2

You’ve reached the end — the app is live, tagged, and monitored. From here the work is ongoing operations, not a further phase: routine updates, hotfix releases, vendor-version syncs (merging a new vendor release while preserving your customization markers), scheduled backups, and incident response — each one a small replay of P1 → P2 → P4 → P9.

Do not mark this step done until every box below is checked.

  • 👤 Smoke tests pass — registration, login, password reset, logout, and core features work end-to-end.
  • 🔀 Integrations verified — email, key API routes, payment gateway, and queue workers all process.
  • 🤖 Perf/security spot-checked — response times within target, .env returns 403/404, HTTPS/HSTS present, APP_DEBUG=false.
  • 🤖 Logs triaged — app log tailed, every error classified by severity and actioned.
  • 🔀 Baselines recorded — error rate, response time, and uptime captured at 48h with lessons learned.
  • 🤖 Rollback rehearseddep rollback production (or tag-based redeploy) ready the whole window.

Return to the Laravel/CodeCanyon setup-new hub to revisit any phase, or use the subsequent-deploy cycle above as your day-2 runbook.