多个rails应用程序条件部署

时间:2014-10-06 11:01:29

标签: postgresql ruby-on-rails-3.2 capistrano rvm-capistrano

对于需要扩展的应用程序,需要在不同时间部署应用程序的多个实例。

staging.theapp.tld (for admin testing)
sandbox.theapp.tld (for user testing, actually in development mode for better logging)
theapp.tld (actual production mode. To be run with and without 'www.' prefix)

部署需要以三种方式之一发生:
- 单独进行分段(在生产模式下测试东西)
- staging + sandbox
- 沙箱+实际生产模式

生产模式将有多个实例:主服务器和任意数量的VPS从站 - 比如说两个。因此,

master.theapp.tld
vps1.theapp.tld
vps1.theapp.tld

在下面,postgresql正在运行主从流程,用于将数据更新到VPS。

考虑到所涉及的变量数量以及缺乏设置多个服务器体验,使作品混乱的可能性变得呈指数级......应用程序的相关组件是:

gem 'capistrano', '2.14.2'
gem 'rvm-capistrano', '1.2.7'
gem 'pg', '0.17.1'

如何配置capistrano?

1 个答案:

答案 0 :(得分:0)

这是一个非常广泛的问题。我没有提供具体的答案,只能提出几点建议:

  • 切换到capistrano3。自发布以来已经有一段时间了。
  • 考虑使用部分capistrano-plugins而不是从头开始
  • capistrano-unicorn-nginx几乎支持您在帖子中提到的所有内容,包括最小配置:单个服务器上的多个应用以及多服务器支持。
  • capistrano-postgres还支持单服务器和多服务器配置。它还没有支持postgresql主从设置,所以部分必须自己完成。