Rya*_*ner 14 continuous-integration ruby-on-rails heroku
我们的团队最近对持续部署非常感兴趣,但是我们在如何实际部署Heroku上的代码方面遇到了一些障碍 - 似乎不可避免地需要一些停机时间才能完成代码推送到Heroku.
在传统环境中,代码部署可能如下所示:
使用Heroku,我几乎无法控制两个关键步骤:
我们目前使用维护屏幕,但它不会是一个可扩展的解决方案,如果我们移动到全连续部署(我们可能就会有大约10-20部署了一天了,维修屏幕10-20*30秒开始到加起来)
有没有人遇到过类似的问题?你是怎么解决的?在heroku上进行真正的持续部署的任何重要案例研究/成功案例?
Yla*_*n S 10
关于dynos旋转时间,Heroku有一个beta功能来解决这个问题:
https://devcenter.heroku.com/articles/labs-preboot/
它基本上会先启动你的新dynos,等待一段时间,切换流量,然后再杀死旧的dynos.我的应用程序在部署期间看到了性能的显着提高.你可以在这里阅读它:
http://ylan.segal-family.com/blog/2012/08/27/deploy-to-heroku-with-near-zero-downtime/
小智 7
在Heroku上,我们将在重启时向你的dyno发出一个SIGTERM.片刻之后,如果过程没有停止,他们将被杀死.当您没有运行迁移时,这应该允许您有足够的宽限时间来无缝重启.
您始终可以将代码推送到指向生产数据库的临时应用程序,并从那里运行迁移.Pedro撰写了一篇关于运行零停机迁移的好文章,该文章也应该有所帮助:http://pedro.herokuapp.com/past/2011/7/13/rails_migrations_with_no_downtime/
希望这会有所帮助.
| 归档时间: |
|
| 查看次数: |
1635 次 |
| 最近记录: |