【问题标题】:Running many Rails app instances with third party dependencies in on a single machine在一台机器上运行许多具有第三方依赖项的 Rails 应用程序实例
【发布时间】:2012-05-09 07:40:56
【问题描述】:

我正在尝试为我所在公司的开发人员建立一个本地“测试平台”。有几个开发人员在开发单个服务器应用程序,并且经常需要部署他们的分支以进行客户端测试。目前,所有这些部署都发生在异地服务器上,每次部署都有一个单独的应用程序实例。

我想创建一个自制解决方案,并一直在寻找诸如pow.cx 之类的服务。这很好,但服务器应用程序需要多个外部服务,例如 redis 和 memcached,它们都需要单独的端口。原则上,我可以为每个单独的实例手动创建额外的配置文件,但这在实践中很困难,并且在杂耍环境方面需要更多的簿记。

作为一个糟糕的系统管理员,我想知道是否有一种更简单的方法(即虚拟主机)可以让我以相同的方式部署每个实例,但部署在不同的子域之后?

我知道这个问题要求很高,如果我能得到任何建议,我一定会感激不尽。

【问题讨论】:

    标签: ruby-on-rails deployment


    【解决方案1】:

    根据我的经验。我在一台主机上有一些简单的应用程序。我使用简单的可配置工具:passenger + nginx 作为服务器(添加新服务器需要添加 5 行代码),Vlad the Deployer 用于部署,rbenv 用于不同的 ruby​​ 版本,捆绑器作为分离 rails gem 的工具。

    我有一些服务器:生产、开发、测试。它们被放置在 vps 上的不同硬盘上,并拥有自己的域以排除服务器之间的任何影响。

    【讨论】:

      【解决方案2】:

      听起来最简单的方法是在该服务器上拥有一堆虚拟机,每个应用程序实例一个。如果您愿意,您可以在您的应用程序实例之间共享一些东西(例如您的数据库服务器)。

      您可以使用 vagrant 之类的方式自动执行大部分操作。这样做的一个好处是,如果需要,可以轻松地将一个特定的 VM 移动到专用机器上,或者让新开发人员使用该 VM 进行开发。

      【讨论】:

      • 啊,这看起来很有希望,谢谢。到目前为止,我已经在机器上设置了一个 git 服务器,我想如果我让一堆 VM 运行,我可以制作一个 git hook 来将适当的分支克隆到相应的机器上。 Vagrant 似乎很有用。
      猜你喜欢
      • 2019-10-31
      • 2017-04-26
      • 1970-01-01
      • 2013-11-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多