を使用してHerokuで実行されているアプリケーションを更新しgit push
、このアプリケーションが複数のdynoで実行されている場合、Herokuによってアップグレードプロセスはどのように実行されますか?
- すべてのダイノが同時に?
- 続々?
- ...?
言い換えると、「クラスター」のダウンタイムが発生するのでしょうか、それとも、アプリのさまざまなバージョンが並行して実行される小さな時間枠が発生するのでしょうか、それとも...?
内部の状態はよくわかりませんが、私が経験したことは
したがって、再起動プロセス中にすべてのリクエストがキューに入れられ、デプロイ後にコードの複数のバージョンが実行されるとは思わないため、ダウンタイムは発生しません。
Herokuアプリを更新するときに「ダウンタイムはない」と誰もが言っていますが、アプリの場合、これは当てはまらない可能性があります。
私は最近、起動に少なくとも25秒かかり、Herokuがクライアントにエラーを返す前に許可されている30秒以内に起動に失敗することが多い適度なサイズのRailsアプリに取り組んでいます。
この間ずっと、ユーザーは何かが起こるのを待っています。30秒は長い時間であり、彼らは待つのに十分な忍耐力がないかもしれません。
ある人が、1つ以上のダイノがある場合は、ダウンタイムを発生させないように個別に再起動すると言ったことがあります。これは正しくありません。Herokuはすべてのdynoを停止してから、すべてのDynosを開始します。
Herokuで実行されているアプリの2つのバージョンはありません