首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails中的无缝部署

Rails中的无缝部署
EN

Stack Overflow用户
提问于 2010-01-21 07:42:24
回答 2查看 883关注 0票数 4

我想无缝升级我的Rails应用程序:

意思:

  1. 如果不需要运行迁移,我想透明地升级代码,并且在部署期间没有请求go 404。
  2. ----我希望有一些可以无缝地升级数据库的进程,在此期间,只需在数据库更新完成时保留web请求(将它们排在管道中),允许通过这些请求。(我只需要在短迁移(比如5-10秒的迁移)中使用这个方法)。

你将如何实现这一目标?

EN

回答 2

Stack Overflow用户

发布于 2010-01-21 15:02:06

升级只是代码

如果您只是升级应用程序代码,乘客应该允许您这样做,而不跳过节拍。然而,如果升级出错,它不会保护您,因为您应该考虑有两个或更多负载平衡的web服务器,您可以单独地进行循环升级。

升级数据库

作为一个用户,我宁愿看到一个“向下维护”页面,而不是我的浏览器旋转10秒。如果您解释说停机时间将是几秒钟的顺序,并将页面设置为自动刷新。

如果您坚持在执行db升级时没有停机时间,那么您有几个选项:

  1. 您可以以使旧架构有效的方式重构数据库。这意味着您可以在同一个数据库上运行两个版本的应用程序,并随着时间的推移迁移到新模式。有很多‘数据库重构’文章,其中大多数都提倡使用触发器/等等.以达到预期的效果。我个人认为这是为了不多的回报而付出的努力。
  2. 根据应用程序的不同,您可能会严重偏向于读写,这意味着您可以在升级数据库时为未缓存的数据显示“维护”页面(这是facebook进行数据库升级的方式)。如果您的大量数据存储在memcached或redis中,这甚至更有效。或者,您可以切换到只读数据库从服务器,并禁用任何写入操作。

我希望这能帮到你!

票数 3
EN

Stack Overflow用户

发布于 2010-01-21 09:32:11

你应该看看卡皮斯特拉诺

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2107615

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档