当前位置:  开发笔记 > 编程语言 > 正文

为什么将Ruby on Rails部署到生产中应该"难"?

如何解决《为什么将RubyonRails部署到生产中应该"难"?》经验,为你挑选了2个好方法。

我承认在部署测试代码和生产代码时,我没有采取任何"正确"的措施.我一直在使用ASP.NET,我通常在Visual Studio中本地运行它,它可以工作,我上传它,我在生产服务器上再次测试它.

我读过几个人说部署Rails应用程序比较困难,ruby网站上有关于部署RoR的特殊程序/方法.我只玩过RoR.部署有什么特别之处?您不只是复制并粘贴代码并运行它(从开发机器到生产)?是因为一个在Apache中而另一个在内置服务器上运行?

如果重要的话,这将在Mac服务器上.



1> erik..:

部署RoR不再困难,特别是使用Phusion Passenger.

有点困难的是,使用capistrano,vlad等设置自动化生产环境.如果您不介意只是将代码复制到服务器,那么就可以做到这一点.大多数人选择不这样做,因为你失去了自动部署工具给你带来的很多好处.



2> chrisrbailey..:

我想人们认为Rails应用程序比部署PHP应用程序更难以部署,或者只是将代码放在某处并指向Apache或其他任何地方.但是,如上所述,你现在可以用Phusion Passenger做到这一点.

我们使用Nginx + Passenger,但不是为了简化部署.Capistrano是我们选择的部署工具,实际上,除非你有一个非常简单的应用程序,否则你会想要像Capistrano这样的东西.例如,通过我们的部署,我们做了很多事情:

运行任何数据库迁移

根据上次部署与此部署之间Git的所有提交,自动生成发行说明

通过电子邮件通知各种人(根据是否部署到我们的临时环境或生产,使用不同的列表) - 我们通过与Capistrano集成的cap_gun来实现.

通知部署的新Relic RPM,以便它可以在我们的RPM分析中标记它

通知部署的Hoptoad,因此在报告任何异常时也可以拥有该数据

生成我们的sitemap.xml文件,并ping谷歌告诉他们有一个新的

更新crontab文件(我在git repo中存储每个服务器的crontab文件,然后在部署时查看是否有新版本并相应地更新等).

刷新/重启memcached

除了Capistrano之外还有其他方法,但它是一个经过验证的工具,具有很大的灵活性,但设置一个vanilla配置非常简单.

所以,我的看法是,一旦你进入任何超出最简单的应用程序的应用程序,你将需要/想要做的事情,而不仅仅是简单地更新代码.但是,如果您只需要代码更新,也许还需要Rails迁移,那么您可以执行更简单的操作,例如Passenger和代码同步,或者查看Heroku或Engine Yard等工具,通过执行Git克隆进行部署(然后提供一些额外的能力).

推荐阅读
和谐啄木鸟
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有