2005年10月19日,星期三

推出 SwitchTower:Rails 的分布式部署

发布者:admin

SwitchTower 是一个在多台机器上并行执行命令的实用工具。它可以让你(在很多其他功能之外)用一个命令部署分布式应用程序。

当你的应用程序还很年轻时,你可能只将其部署到一台机器上,这台机器同时运行着 Web 服务器、应用程序服务器和数据库。在这种情况下,手动部署的痛苦是可以忍受的。但随着应用程序的增长,你可能会发现自己需要原子性地将应用程序部署到两台 Web 服务器、四台应用程序服务器和两台数据库服务器上。这时 SwitchTower 就派上用场了,它能缓解你的痛苦。

入门

假设你有一个现有的 Rails 应用程序,你想将其部署到一个机器集群上。SwitchTower 旨在让整个过程尽可能地轻松。

  • 安装 SwitchTower。很简单,只需运行 gem install switchtower
  • 用必要的 SwitchTower 文件装饰你的应用程序。只需运行 switchtower --apply-to /path/to/your/app
  • 告诉 SwitchTower 你的应用程序代码存放在哪里以及应该部署到哪些机器上。只需编辑 config/deploy.rb 文件并填写空白处。
  • 设置好你的机器,使其准备好接收你的应用程序。这很简单,只需运行 rake remote_exec ACTION=setup
  • 最后,部署你的应用程序!只需键入 rake deploy,然后就可以享受美好的时光了。

其他功能

除了简单地将你的应用程序移动到各种机器上,SwitchTower 还致力于简化部署的维护任务。假设在检出代码时出现问题——SwitchTower 会检测到这个问题并回滚更改,在所有已部署的机器上。这意味着应用程序在各种机器上出现不同步的可能性大大降低。

SwitchTower 还开箱即用地提供其他功能

  • 在生产数据库上执行数据库迁移
  • 启用/禁用 Web 界面(目前仅适用于 Apache)
  • 在应用程序服务器上重启你的应用程序

SwitchTower 还使得覆盖和扩展标准任务以及编写自己的任务变得非常简单。这些任务使用一种类似于 Rake 的简单语言,允许你自动化许多不同的任务。

更多信息

想了解更多关于 SwitchTower 的信息吗?有一本完整的用户手册,其中包含许多有用的技巧,网址是 http://manuals.rubyonrails.com/read/book/17。