Reducing deployment downtime, improving caching, and more
UPDATE June, 2023: The following improvements are available to all existing Grid projects, and is the default to all new Grid projects:
- Pause crons on devel opment environments after 14 days
- Serve static content during deployments
“Minimized deployment when container resources change” roll out has been postponed.
At Platform.sh, we are committed to making your deployment experience as fast and seamless as possible, so that you can continue pushing changes as much as you need, and keep your customers happy.
As part of this commitment, we are releasing three new infrastructure improvements, which will greatly improve caching strategy and significantly reduce downtime during deployments.
New improvement #1: Serve static content during deployments
We recently improved our deployment strategy where, when the router is unavailable, incoming requests are held for five minutes before returning an error.
The first major improvement of note is 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.
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 result is that most of the site continues to work, even when it is not yet fully redeployed.
This entirely removes any downtime when redeploying static applications, or when the requested page is cached.
New improvement #2: Minimized deployment when container resources change
The other improvement lies in how we change resources assigned to a container.
With this feature enabled, every time you upgrade your plan, enable larger development application size or change the disk size within your configuration files, the next deployment will not have any downtime (assuming no other changes have been committed in the meantime and no newer images have been published).
New improvement #3: Pause crons on development environments after 14 days
Development environments are often used for a limited time and then abandoned. While it's useful for environments under active development to have scheduled tasks, these tasks don’t need to run on unused environments.
To optimize our collective environmental impact and minimize unnecessary resource use, crons on environments with no deployments will be paused after a period of inactivity until the environment is redeployed.
The schedule for pausing crons will be as follows:
- Development projects: Crons will be paused on any environment without a redeployment in the last 14 days.
- Standard projects and higher: Crons will be paused on any non-production environment without a redeployment in the last 14 days.
Who benefits from these changes?
Every Platform.sh customer will benefit from these new features, out-of-the-box, on all their Grid projects.
How do you enable these features?
There is nothing you need to do!
These new features will be rolled out progressively in the coming weeks, and all your Grid projects will automatically gain these improvements.
If you have any questions or need some more information, please contact our support team and they’ll be sure to help.
Stay tuned for more exciting updates in the future! 🚀