【发布时间】:2012-12-16 16:02:33
【问题描述】:
我正在尝试为 Heroku 建立一种专业的部署方法,我的意思是:
- 通过保持小而频繁的部署(迭代/敏捷方法)最大限度地减少停机时间
- 尽可能自动化,这样我就不必担心胖手指或运行具有潜在破坏性的命令,因为我没有正确思考(即,生产系统上的“heroku run rake db:reset”)
- 允许进行简单的版本控制,这样我就可以轻松(并立即)将生产系统回滚到以前的版本,以便在发生错误时工作
- 首先建立一个尽可能模仿生产系统的测试环境
- 确保备份数据库以防出错
由于 capistrano 不适合 Heroku,我的想法是编写一个 ruby 脚本来处理我的所有自动化部署。根据https://gist.github.com/362873,我见过有人为此使用 rake 任务,但我不认为 rake 真的是为这种类型的功能而设计的。纯 ruby 脚本会是 rake 任务的首选替代方案吗?
部署到heroku 非常简单,但是为了使其更专业(即,用户不会收到错误页面),我需要将其自动化以弥补人为错误。而且一直输入“git push heroku master”、“heroku run db:migrate”有点老了。
我正在尝试将其简化为单线部署,但到目前为止,还没有真正看到任何关于 Heroku 或 SO 的有用教程可以真正实现这一点。
我对实际编写自己的部署脚本代码很好,我只是对最佳的长期实践感到困惑:rake 任务、ruby 脚本或一些我还没有找到的第 3 方实用程序。
我确信有许多专业开发团队使用 Rails 和 Heroku,但我还没有看到他们如何实施部署过程的细节。
我通常自己做很多开发,然后其他成员处理部署,但现在我也在尝试学习部署方面。
【问题讨论】:
标签: deployment heroku automation ruby-on-rails-3.2