LoginSignup
18
18

More than 5 years have passed since last update.

Heroku上でprebootを使ってRailsダウンタイムを無くす方法

Last updated at Posted at 2014-10-22

ブログより転機
http://konyu.hatenablog.com/entry/2014/10/22/122930

git push でherokuにアップロードした場合、それなりに大きなRailsのアプリだと立ち上がりに数十秒〜数分かかってしまう

これを防ぐのがprebootだ。

ざっくり言うとN個Dynoがある場合、1個ずつ立ち上げてくれるので
ダウンタイムがなくなるというもの

正確ではないが内部の動作のイメージ

2台Dynoがあるとして

  1. 新しいコードをPushした
  2. Gracefullyに1台にアプリプロセスをKill
  3. 1台に新しいコードを反映してアプリスタート
  4. リスタート完了後ネットワークに繋ぎ直し

2台目以降も同様に順々にやっていく

prebootの動作する前提条件

これを対象はDynoを2個以上であること

設定

prebootを付ける場合

heroku features:enable -a myapp preboot

prebootを外す場合

heroku features:disable -a myapp preboot

このprebootが有効な処理は以下のように設定のアプリのデプロイ、変更、再起動が出来る

  • git push
  • heroku config:add
  • heroku restart

参考

Heroku Dyno再起動時の振る舞い
http://www.slideshare.net/shunjikonishi/heroku-dyno

Heroku Labs: preboot
https://devcenter.heroku.com/articles/labs-preboot

Zero downtime on Heroku
http://stackoverflow.com/questions/8326861/zero-downtime-on-heroku

18
18
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
18