Is it possible to do something like the Github zero downtime deploy on Heroku using Unicorn on the Cedar stack?
I'm not entirely sure how the restart works on Heroku and what control we have over restarting processes, but I like the possibility of zero downtime deploys and up until now, from what I've read, it's not possible
There are a few things that would be required for this to work.
I've scoured the docs but I can't find anything that would indicate this is possible on Heroku. Any thoughts?
Heroku Preboot – A zero downtime deployment In a very simplistic way, on new deploys or changes of ENV vars, Heroku will boot your app onto new “hidden” dynos, and wait a few minutes before routing traffic to it.
Free dyno hour pool This means you can receive a total of 1000 free dyno hours per month, if you verify your account with a credit card. Used free dyno hours are non-transferable.
KeepAwake. KeepAwake is a site that pings your free Heroku apps for you. All you have to do is enter your site's name and URL and KeepAwake will send a GET request to it every 5 minutes.
I can't address migrations, but the part about restarting processes and avoiding wait time:
There is an beta feature for heroku called preboot. After a deploy, it boots your new dynos first and waits a while before switching traffic and killing the old ones:
https://devcenter.heroku.com/articles/labs-preboot/
I also wrote a blog post that has some measurements on my app's performance improvements using this feature:
http://ylan.segal-family.com/blog/2012/08/27/deploy-to-heroku-with-near-zero-downtime/
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With