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.
| Preview | Test | Live | |
|---|---|---|---|
| What is running | The work as it stands | One frozen version | One frozen version |
| Who can reach it | Your team, in the workbench | Anyone with the address | Anyone with the address |
| Address | Inside the workbench | name-uat.yourdomain | name.yourdomain |
| Data | Its own | Its own | Its own |
| Changes when | Every build | You deploy | You 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.