是否可以做类似的事情Github 零停机部署 https://github.com/blog/517-unicorn在 Heroku 上使用 Cedar 堆栈上的 Unicorn?
我不完全确定 Heroku 上的重启是如何进行的,以及我们对重启进程有什么控制权,但我喜欢零停机部署的可能性,到目前为止,从我读过什么 https://stackoverflow.com/questions/2560845/hot-deploy-on-heroku-with-no-downtime, 这是不可能的
要使其发挥作用,需要做一些事情。
- 首先,我们需要向后兼容的迁移。我把这个问题留给我们的团队来解决。
- 其次,我们希望在推送之后、重新启动之前立即迁移数据库(假设我们的迁移完全向后兼容,这不应该影响任何事情)
- 第三,我们想要指示 Unicorn 启动一个新的主进程并分叉一些工作进程,然后交换 PID 并优雅地关闭旧进程/工作进程
我已经浏览了文档,但找不到任何表明这在 Heroku 上可行的内容。有什么想法吗?
我无法解决迁移问题,但可以解决有关重新启动进程和避免等待时间的部分:
Heroku 有一个测试版功能,称为预启动。部署后,它首先启动新的测功机,并等待一段时间,然后再切换流量并杀死旧的测功机:
https://devcenter.heroku.com/articles/labs-preboot/ https://devcenter.heroku.com/articles/labs-preboot/
我还写了一篇博客文章,其中对使用此功能对我的应用程序的性能改进进行了一些测量:
http://ylan.segal-family.com/blog/2012/08/27/deploy-to-heroku-with-near-zero-downtime/ http://ylan.segal-family.com/blog/2012/08/27/deploy-to-heroku-with-near-zero-downtime/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)