2011-08-18 21 views
7

トルネードベースのWebアプリケーションデプロイメントの標準的なコード配備戦略はありますか?私たちの現在の構成は、NginXの背後にある4つのトルネードプロセスです。トルネードコード配備

私たちは現在、4つの竜巻プロセスを起動し、PIDを/ tmp /のファイルに保存するという十分なソリューションを持っています。新しいコードをデプロイすると、ファブリックを介して次のシーケンスが実行されます。

  1. prodブランチからgit pullを実行します。
  2. ロードバランサからマシンを削除します。
  3. 飛行機の接続がすべて終了するのを待って眠ります。
  4. pidファイルのすべての竜巻を殺し、すべての* .pycファイルを削除します。
  5. 竜巻を再始動します。
  6. マシンをロードバランサに戻します。

我々はここからいくつかのインスピレーションを取った:http://agiletesting.blogspot.com/2009/12/deploying-tornado-in-production.html

は、他の完全なソリューションは、そこにありますか?

答えて

0

私はGeorn + Nginxで遊んでいましたが、プロセス管理のためにSupervisordを使用しています - 開始/停止/再起動、ログ、監視 - supervisorctlは非常に便利です。私が言ったように、展開ソリューションではなく、おそらく価値のあるツールです。

1

私たちはsupervisordをスーパーバイザとして使用してTornado + Nginxを実行します。私はおそらく最終的にはnginxのが「アクティブ」ファイルを持っていているんだろう、私は物事を再起動するには、「最良の」方法を見つけるために、まだまし

設定例(名称が変更)

[program:server] 
process_name = server-%(process_num)s 
command=/opt/current/vrun.sh /opt/current/app.py --port=%(process_num)s 
stdout_logfile=/var/log/server/server.log 
stderr_logfile=/var/log/server/server.err 
numprocs = 6 
numprocs_start = 7000 

に、 HAProxyに、私たちが設定を迷惑していることを知らせて、ちょっと待って、物事を交換して、すべてを再び有効にしてください。

私たちはCapistranoを使用しています(Fabricに移行するバックログタスクがあります)。* .pycファイルを削除する代わりに、/ opt/currentをリリース識別子にシンボリックリンクします。