Local, preview, staging, production
Lesson 2 of the module "Caches, CDN and environments" in the course "Explain how a web product works, from browser to server".
Lesson objective
By the end of this lesson, you will be able to tell apart a product's environments (local, preview, staging, production), list what changes from one to another (configuration, data, secrets, third-party services) and derive hypotheses when a problem only appears in one of them.
Where it fits
Caches, CDN and environments
Why is the product fast, why does it sometimes show stale data, and why does a bug only appear in production?
Lessons in this module
- CDN and caches, fast but sometimes behind
- Local, preview, staging, production (this lesson)
What you will learn in the course
This lesson is part of the course Explain how a web product works, from browser to server
- Describe the steps of a web request, from the typed address to the displayed page (URL, DNS resolution, encrypted connection, HTTP request and response, browser rendering).
- Read an HTTP exchange in the browser's Network tab (method, URL, status code, headers, cookies, duration) and draw a first diagnosis from it.
- Explain how responsibilities are split between browser, frontend, backend, API, database and third-party services, and place where a business rule must run.
- Explain the role of a CDN and of caches (browser, CDN, server) and anticipate their effects on speed, data freshness and releases.
- Tell apart local, preview, staging and production environments, and say what changes from one to another (configuration, data, secrets).
- Place a symptom (slowness, blank page, error, stale data) in the right layer and ask the technical team precise questions.
- Produce the annotated diagram of a request's journey through your own product and have it validated by a developer.
Related courses
- Git for PMs: ship as a team without putting production at riskAdvanced · ~3 hr 30 min
- Design and test an API integration as a PMJunior · ~3 hr
- Model your product’s data and query it with SQLJunior · ~3 hr 30 min