Development, staging and production.
WHAT ENVIRONMENTS ARE
Separate copies of a system, for different purposes.
WHAT EACH IS FOR
- Development: where code is written and tried
- Staging: where it is verified before release
- Production: what real users use
WHY SEPARATE THEM
So mistakes do not reach real users and real data.
WHAT SHOULD BE THE SAME
The software versions The configuration structure The deployment process
WHAT SHOULD DIFFER
Credentials Scale Data
WHY SAME VERSIONS MATTER
Differences between environments produce failures that appear only in production.
WHAT THE COMMON DIFFERENCES ARE
PHP or runtime version Dependency versions Missing environment values Case sensitivity of filenames Available extensions
WHAT TO DO ABOUT DATA
Never use real customer data in development.
Anonymise it, or generate realistic substitutes.
WHAT A SMALL BUSINESS CAN REALISTICALLY HAVE
Development locally, and production.
WHAT TO ADD WHEN THE RISK WARRANTS IT
A staging environment matching production.