Description
Where on docs.platform.sh should be changed?
- https://docs.platform.sh/overview/philosophy.html#how-your-app-is-deployed
- https://docs.platform.sh/environments/backup.html#backups-and-downtime
- https://docs.platform.sh/define-routes/cache.html#header-behaviors
What exactly should be updated?
On Serve static content during deployments:
The pages list above should reflect
- The router container is available during deploy - a cache grace period. A grace period is described for DG-2 + Fastly already as a difference from the Grid
- When static content is cached, the router container will return the requested page. If not in cache or the cache has expired, the request will be held for 5 minutes before returning an error (which is longer than any typical deployment). If the content expiry date is in the base, the request is held in stead os served.
- "This entirely removes the downtime when redeploying static applications, or when the requested page is cached."
- "Because most pages in a website are cacheable, during a deployment when the website is not available, we continue to serve the cached content. The end result is that the majority of the site continues to work, even when it is not yet fully redeployed."
Additional context
Tyler's description of the feature
We recently improved our deployment strategy where, when the router is unavailable, incoming requests are held for 5 minutes before returning an error.
This next improvement is to support a cache grace period where the router remains open during a deployment. It will return the requested page from cache if it has it, or hold the request as usual.
This entirely removes the downtime when redeploying static applications, or when the requested page is cached.
Because most pages in a website are cacheable, during a deployment when the website is not available, we continue to serve the cached content. The end result is that the majority of the site continues to work, even when it is not yet fully redeployed.