【发布时间】:2015-05-18 23:37:37
【问题描述】:
我有几个 Rails 应用程序,每个应用程序都在自己的服务器上运行。它们在Passenger-apache 下运行,目前在ruby 1.9.3 下运行。目前,它们在使用 rbenv 安装和管理的 ruby 下运行。
我想将它们全部升级到 ruby 2.2.x。只要我这样做,我也想将它们从乘客 4.x 升级到 5.x。
假设我已经在我的开发箱上测试了它们,并且确信它们在 ruby 2.2 下运行良好。
在我思考这个问题时,我对最好的方法感到非常困惑——尤其是在生产停机时间最短的情况下。
我想我会先在 rbenv 下安装 ruby 2.2,理论上它不应该干扰正在运行的应用程序。乘客安装在特定的 ruby 下,但随后可以选择在不同的 ruby 下运行应用程序。我应该先安装最新的乘客,在新的 ruby 2.2 下,但配置为在旧的 ruby 下运行现有的应用程序?然后将应用程序升级到新的 ruby ......我想涉及再次运行 bundle install,以在新的 ruby 下安装所有依赖项?
或者完全是别的什么?有没有一种相对安全的方法来做到这一点,并且我的应用程序的停机时间有限或为零?
以前有人做过吗?我已经相当熟悉所有的部分,并且可以自己集思广益可能的方法,但是当我开始时,有太多地方我不确定最好的方法是什么。我真正可以使用的是已经这样做过的人的建议,或者非常确定他们推荐的内容会像他们所说的那样起作用——而不仅仅是猜测你没有做过的事情可能会起作用。谢谢!
【问题讨论】:
标签: ruby-on-rails ruby deployment passenger