Reputation: 4811
I'm just wondering if someone could explain what happens during the build, deploy, and release phases of a Heroku app. Does an app momentarily stop / gets interrupted? do we have to send out user notifications during this time to warn of a potential system outage?
Just finding it hard to grasp that it could potentially be seamless.
Upvotes: 0
Views: 352
Reputation: 5261
First of all, it is important to understand that any dynos in your Heroku app will automatically recycle at least once every ~24 hours, regardless of and in addition to whenever you deploy new releases (or change config var values, or change add-ons etc.)
So your question really relates to all these scenarios, not just to deploying a new release.
The answer is that, yes, your running dynos are disposable artifacts, and you are responsible for implementing Graceful Shutdown in your application code to ensure that dyno restarts are as seamless as possible.
Now if you absolutely cannot afford even momentary lack of availability of your restarting web dynos (during which time web clients trying to access them might get a 503 response), you can consider using Preboot, which can be used to guarantee zero downtime deployments.
Upvotes: 1