Web Deployment Checklist: Release and Roll Back a Course App

Practical Web Development — Lesson 10 of 10 · Senior

A successful deployment command does not prove a course application works. A release is complete when important user journeys work in the target environment and the team can recognize and recover from a bad change. This lesson turns a small course app into a practical release exercise with explicit acceptance and rollback criteria.

Describe the change and its risk

Suppose a release adds saved course shortlists. Separate the new browser interface, the server endpoint and any database change. Identify what happens when old browser code talks to the new server, and when the previous server version reads newly written data. Rolling back code is not the same as reversing a data migration.

Write a short release record before deploying. Use real commit and build identifiers in your own project; the values below are placeholders for the exercise.

Change: Add saved course shortlists
Build: <immutable build identifier>
Owner: <person responsible during release>
Preflight: tests pass; configuration validated; recovery procedure rehearsed
Smoke journeys:
- Public catalogue loads
- Signed-in learner saves and removes a shortlist entry
- A different learner cannot read that private shortlist
- Signed-out request is denied by the server
Rollback trigger:
- Authorisation regression, or sustained save failures above agreed baseline
Rollback action:
- Restore previous compatible application build
- Disable new feature if a tested feature control exists
Data recovery:
- Separate procedure; never assume code rollback restores deleted records

Use a compatible migration sequence

For a new field, consider adding it in a way that old code can tolerate, deploying code that understands both shapes, migrating existing records and removing the old shape in a later release. The exact sequence depends on your database and application. Test it against realistic data volume; a migration that is quick on ten rows may block a production table.

Keep backups and test restoration. A backup file existing is weaker evidence than a successful restore into a separate environment. Record how long restoration took and what data loss window the backup policy implies.

Test the deployed system

Run a small set of smoke checks against the actual target environment after deployment. Check public pages, authenticated operations, denied access and one failure state. Avoid modifying real learner records for a smoke test; use a dedicated test account and reversible sample data with clear ownership.

Check that secrets stay on the server and environment-specific URLs are correct. A frontend build can succeed while pointing at a staging API. Inspect the real request destination and response, not just whether a button is visible.

Define rollback before an incident

Agree on a baseline and a time window for error rates, rather than inventing a threshold while users are failing. Name the person who can stop the release. Keep the previous build available and document which database versions it supports. If a change is not reversible, identify a forward repair plan before deployment.

Practice the full loop

  1. Deploy a harmless UI change to a staging environment.
  2. Run the smoke journeys and record the build identifier.
  3. Introduce a deliberate configuration failure in staging.
  4. Detect it using your checks, then restore the previous configuration or build.
  5. Repeat the smoke tests and record the recovery time.

The outcome is a rehearsed procedure with evidence. That is more valuable than an unchecked list of deployment tools, and it gives the next maintainer a clear starting point when a real release fails.

Continue learning

Review our semantic HTML project, JavaScript course filter and course platform architecture.

Reference: Technical documentation for this lesson. Examples are learning exercises; test them in your environment.

Comments

Popular posts from this blog

What Is Multimedia? Examples and a Beginner Course Guide

Internet vs World Wide Web: HTML and Multimedia Explained

Video in Multimedia: Formats, Compression and Captions