2

我在 Ubuntu 上为我的教堂开发 Rails 应用程序。我们也在 Ubuntu 上使用托管 VPS。我使用 Capistrano 部署定期更新。然而,不可避免地,在我的本地机器上运行的应用程序在部署到主机后总是会出现一些问题,很可能是因为环境不同。

有哪些实践/技术可以简化部署,以便在本地测试和工作的内容同样可能在主机上工作。(我已经采用了“供应商一切”的方法。)

我的第一个想法是在本地 VPS 映像中开发/工作,该映像本身最终将被部署(某种虚拟设备)。有人这样做吗?

其他人如何最大限度地减少环境差异导致的问题?哪些主机提供最佳部署选项?

4

4 回答 4

1

尝试设置一个舞台环境,尽可能模仿你的制作环境。事实上,我使用我的一些服务器,创建一个子域(staged.mydomain.com)来测试gem是否在正确的版本上等等。

我还使用只读用户在此阶段安装中使用实时和真实数据进行测试。

这种方法可以帮助我们确保新部署能够正常工作,提前解决问题。

很高兴知道您经常处理什么样的问题以尝试找到减少其外观的方法。

于 2009-09-15T13:05:25.340 回答
0

尽可能确保您运行的是完全相同的 Ruby 版本、完全相同的 Rails 版本、完全相同的数据库设置,以及完全相同的一切。您的实时设置和开发设置之间的差异越大,您可能遇到的问题就越多。

于 2009-09-15T12:56:26.663 回答
0

好吧,您实际上回答了自己的问题。

如果您无法在生产盒上的暂存环境中进行部署,您应该尝试将其完全镜像到您的计算机上。然后,您可以通过 VMWare 等程序对其进行测试。

以我的经验,这只在非常危急的情况下才需要。如果您的 Ruby/Rails(您可以在您的环境中指定的 gem 版本)是相同的,那么您在部署 Rails 应用程序时应该不会有任何问题。

确实,很高兴知道您遇到了什么样的问题,这样我们就有希望为您提供更充分的解决方案。

于 2009-09-15T13:54:57.387 回答
0

请记住,大多数 Rails 开发人员都运行 OS X 并部署到 UNIX 服务器,因此我们从来没有遇到过任何类型的问题。

raby、rails、mysql等的版本当然应该是一样的。

于 2009-09-15T15:59:30.053 回答