部署Rails应用程序之前我需要做些什么?
时间:2020-03-06 14:25:29 来源:igfitidea点击:
编辑
在部署Rails应用程序之前,我需要做哪些太容易忽略的小事情?
我为所有耗时一两分钟以上的任务设置了另一个问题,因此应该安排在部署过程中。在这个问题中,我最关心的是可以使用的在线配置选项和类似选项,但是在开发周期中经常被忽略,因为它们在部署之前没有任何区别
解决方案
- 确保在生产服务器上设置了数据库
- 确保Rails已打包到vendor / rails文件夹中
- 确保所有宝石都冻结在应用程序中或者安装在产品服务器上
- 在生产机器上运行测试
- 检查慢查询日志,然后将所有导致全表遍历的索引添加到模型中。
- 还grep -ril FIXME
- 包括Google Analytics(分析)摘要(或者其他分析)
设置要在应用程序的已部署副本之间共享的文件和文件夹,包括(但不限于)视图缓存,数据库配置,维护页面...
- 冻结我们正在使用的宝石
rake gems:unpack
- 更改config / environment.rb中的秘密
- 过滤敏感信息,例如密码:在
app / controllers / application.rb``中filter_parameter_logging:password,:password_confirmation
这些并不是特定于Rails的部署任务,但我发现对于已部署的系统,它们被忽略了太多次:
- 备份;诚然,这最终可能是一项艰巨的任务,但不一定如此。只需安排数据库和软件的每晚备份通常就足够了。
- 测试还原程序
- 日志旋转和归档
- 例外通知
- 确保要部署到的位置已正确设置RAILS_ENV变量。通过环境或者通过capistrano回调。
- 通过运行rake规范,should,单元测试或者用于测试的任何内容,确保所有测试均通过。
- 使用rake gems打开宝石的包装:
- 确定是否需要冻结Rails。耙轨:冻结:宝石
- 如果我们需要的不仅仅是gem(内存缓存,邮件服务器等),请仔细检查服务器上是否已安装依赖项。
- 如果我们使用的是MySQL,请在服务器上编译并安装基于C的MySQL库(这可能需要几分钟的时间,但是如果满足所有依赖性,通常会很快)。
- 如果使用的是git,则将代码推送到master分支。如有必要,标记它。
- 如果使用的是SVN,请标记版本。
我发现了一篇很好的文章,介绍了如何使用ubuntu部署Rails应用程序。