Take a small content service through a controlled release. Add a new article field without breaking the old application version, deploy the new version while both are active, and remove the old field only after compatibility is proven. In a separate isolated target, restore a representative backup and request the restored routes. Record what worked and how long recovery took.
Make this comfortable
Project: release and recovery drill for a content service
Build contract
- Use an expand, backfill, switch, and contract migration sequence with an explicit old-version compatibility check.
- Gate release on a production build, a deep-link response, an authenticated read, and a bounded write.
- Restore database and media into isolation, disable outbound notifications, and compare recovered data age with the service promise.
Implementation checkpoint
set -eu
: "${DEPLOY_BASE_URL:?set the deployment origin}"
curl --fail --silent --show-error "$DEPLOY_BASE_URL/cases/47" | grep -F 'Case 47'
curl --fail --silent --show-error "$DEPLOY_BASE_URL/guides/inspection-notes" | grep -F 'Inspection notes'Cost and boundaries
The gate adds minutes to a release and the dual-schema window temporarily adds storage and write paths. A restore drill consumes isolated compute and operator time; it also replaces guesswork with measured recovery time and data age. Run the expensive drill on a schedule appropriate to the service, while the small route smoke remains part of each release.
Acceptance checks
- Keep old and new binaries active against the expanded schema and complete one write from each.
- Request a nested published article URL as a fresh client and compare the returned title with the route record.
- Restore an isolated backup, verify selected content and media checksums, and document recovery time.
Common Mistakes
- The old binary fails while the new schema is live.
- A nested article route works only after client-side navigation.
- Database records restore but their referenced images are absent.
Related lessons
Expand-and-Contract Schema Migrations; Continuous Integration and Release Gates; Backup and Restore Drills; Canonical Route Identity; Sitemap and Index Control.
web-tech
web-development
