Phoenixのデプロイ

Erlang (Elixir) の機能の中で気になっているのが、ホットデプロイだ。といっても、そういう機能があるからといって気軽にデプロイできるものでもないらしいけど。

デプロイに関するスライド。

デプロイ方法

Exrm

Exrm (Elixir Release Manager) を使うのがよさげ。 Phoenix 公式でも紹介されている。 設定方法などはそちらを参照。

パッケージ作成

MIX_ENV=prod mix release で本番環境用のリリースパッケージが rel/hello_phoenix/releases の下にバージョンごとに作成される。

起動
$ ./rel/hello_phoenix/bin/hello_phoenix start

停止するときは stop で。

更新

mix.ex に書かれているバージョンを上げ、MIX_ENV=prod mix release でパッケージを作成する。 (ここでは バージョンをv0.0.1 からv0.0.2に上るとする。)

v0.0.1のアプリが稼働中の状態でv0.0.2に更新するには

 rel/hello_phoenix/bin/hello_phoenix upgrade 0.0.2

で、OK。

自分の環境で試した限りでは、更新時に接続できないということはなかった。