SwitchTower 是一个用于在多台机器上并行执行命令的实用程序。它可以(除许多其它操作)使用单个命令部署分布式应用程序。
当应用程序尚小时,您可能将其部署到单台机器,该机器同时运行 Web 服务器、应用程序服务器和数据库。在这种情况下,手动部署并不难承受。但随着应用程序的增长,您可能发现需要原子地将应用程序部署到两台 Web 服务器、四台应用程序服务器和两台数据库服务器。这是 SwitchTower 出场并作为止痛药的地方。
入门
假设您有一个现有 Rails 应用程序,希望将其部署到机器集群。SwitchTower 尝试尽可能无痛地完成整个流程
gem install switchtower
。switchtower --apply-to /path/to/your/app
。config/deploy.rb
并填入空白。rake remote_exec ACTION=setup
。rake deploy
并让它顺利进行。其他功能
除将应用程序简单地移动到各个方框中外,SwitchTower 还尝试让维护部署的任务更简单。假设在签出代码时出现问题,SwitchTower 将检测到该问题并回滚该更改,在所有已部署机器上执行此操作。这意味着应用程序不太可能在各个方框上不同步。
SwitchTower 还可以在开箱即用的情况下执行以下操作
SwitchTower 还使覆盖并扩展标准任务和编写您自己的任务变得非常简单。这些任务使用类似于 Rake 的简单语言,允许您自动化许多不同的任务。
更多信息
想更多地了解 SwitchTower?http://manuals.rubyonrails.com/read/book/17 有一个用户手册,其中包含大量有用的妙语。