3

我正在尝试为 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 脚本或一些我还没有找到的 3rd-party 实用程序。

我确信有许多专业的开发团队使用 Rails 和 Heroku,但我还没有看到他们如何实现部署过程的细节。

我通常自己做很多开发,然后其他成员处理部署,但现在我也在尝试学习部署方面。

4

1 回答 1

1

为避免粗手指和意外致命的拼写错误,请使用具有独特调用的脚本,例如 ./deploy-heroku

对于最后 2 -

  • 我部署到具有完全相同设置的服务器(也在 heroku 上运行)。这样我就有了一个测试服务器来测试我的所有脚本、加载、数据库等。我将它部署在生产而不是登台上。
  • 用于备份 - 使用 heroku 附加组件 - pg:backups。免费获得每日备份
于 2012-12-16T16:08:12.807 回答