My single instance application uses a volume to persist some state. When I deploy there is a small period of downtime as the instance is restarted to update to the new version due only being able to use the rolling or immediate deployment strategies.
Is there a way to avoid this downtime window when using volumes?
Perhaps I ought to scale up to 2 instances prior to deployment, deploy with the rolling strategy, and then scale back down again? It was unclear to me from the docs how having a single volume with multiple instances would work, is this a sensible approach?
The only real way to have consistent zero downtime deployments is to separate your state storage from your application and to have multiple application servers. This is usually done by having a database separate to the application.
Another way is for your application to be clustered so that each server talks to each other and they all have a synchronized state, though this is much harder to implement yourself.
I think my question is more around the mechanisms of volumes on Fly, sorry I should have been more precise. Can multiple instances of an application in the same region share a volume on Fly? This would enable me to use the scaling deployment technique I outlined above.