Environments

Preview, test and live — what each one is, who can reach it, and why their data is separate.

Three, and each has its own database, its own cache and its own file storage.

PreviewTestLive
What is runningThe work as it standsOne frozen versionOne frozen version
Who can reach itYour team, in the workbenchAnyone with the addressAnyone with the address
AddressInside the workbenchname-uat.yourdomainname.yourdomain
DataIts ownIts ownIts own
Changes whenEvery buildYou deployYou deploy

Preview#

The working copy. It is always current — every build changes it — and it is only reachable from inside the workbench.

This is where you are wrong in private. Nothing here reaches anybody.

Test#

A version, deployed, on a real address, with its own data. For showing a client, for letting colleagues try something, for checking a change against something close to reality before it is real.

Test is closed to search engines by default.

Live#

What the business runs on. The same machinery as test, with different data and a different address.

Live is open to search engines by default.

Why the data is separate#

Because a version being tested should not be able to write to what the business is running on. That is the whole reason the separation exists, and it is how every application starts.

It can be given up — one store behind all three environments, or one shared with another application — and there are real reasons to. It is an owner's decision, it is said out loud on every screen afterwards, and it is worth being the exception. See Where records live.

Addresses#

The test address is name-uat.yourdomain rather than name.uat.yourdomain. One label rather than two, because a single certificate covers one level of subdomain and a nested one would need a second certificate and a second DNS record for every workspace.

Either environment can also have a domain you own — app.client.com for live, preview.client.com for testing. See Addresses and domains.

Settings per environment#

Several settings can apply to every environment or only to one:

  • Configuration values — a live payment key in the test application is how test data reaches real customers.
  • Search engines — test closed, live open, by default.
  • Domains — one per environment.
  • Access — the shared password and its sessions are per environment.

Redeploying keeps the data#

Deploying a new version into an environment replaces the code, not the database. Records survive. What changes the data is deleting the application.