哪种Rails部署技术最能克服环境差异?

时间:2009-09-15 12:53:33

标签: ruby-on-rails deployment ubuntu hosting vps

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

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

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

其他人如何尽量减少因环境差异而导致的问题?哪些主机提供最佳部署选项?

4 个答案:

答案 0 :(得分:1)

尝试设置一个可以模仿生产最多的舞台环境。事实上,我使用我的一些服务器,创建一个子域(staged.mydomain.com)来测试宝石是否正确版本等。

我还使用READ-ONLY用户在此阶段安装中测试实时和真实数据。

这种方法有助于我们确保新部署能够正常工作,事先解决问题。

很高兴知道你经常遇到什么样的问题,试图找到一种减少外表的方法。

答案 1 :(得分:0)

尽可能确保您运行完全相同版本的Ruby,完全相同的Rails版本,完全相同的数据库设置,以及完全相同的其他所有内容。您的实时设置与开发设置之间的差异越大,您可能遇到的问题就越多。

答案 2 :(得分:0)

你真的回答了自己的问题。

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

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

确实,知道您遇到的问题会很好,所以我们希望能为您提供更合适的解决方案。

答案 3 :(得分:0)

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

raby,rails,mysql等版本当然应该是相同的。