2013年9月27日金曜日

Play Framework本番サーバへのデプロイあれこれ

アプリケーションのデプロイ作業って悩ましいですよね。 例えばDBサーバの接続情報は本番サーバと開発サーバで違っていたり、
メールサーバの接続情報もまたしかり。

Play Frameworkはこういった設定ファイルは

conf/application.conf

に設定されていて、
本番環境で設定ファイルを振り分ける方法としては、
Play起動時に設定ファイルを指定して起動する方法が紹介されています。
http://www.playframework-ja.org/documentation/2.1.3/Production

次のようにして、本番環境用の別の設定ファイルを指定することもできます:
$ target/start -Dconfig.file=/full/path/to/conf/application-prod.conf

ちなみにみなさんって本番環境とのこういった設定の振り分けってどうしてます?
デプロイスクリプトに組み込む際に、呼び出す設定ファイルを切り替える?
Jenkinsでビルドする前にsedコマンドとかで上書きしてます?

とにかくいずれの方法にしても、アプリケーション固有の設定(例えば一覧に表示する件数とかサイト名とか)なんかをapplication.conf
に書くと、開発環境用の設定ファイルと本番環境用の設定ファイル両方に書く必要が出て、まあ手間が増えるわけです。

なので私は提唱したい。
とりあえずapplication.confには共通で呼び出す値を書くようにしよう。
環境によって変わる値は外部ファイル化して環境によってそのファイルだけ切り替えるようにしよう、と。

つまりはこんなかんじにしてみてはいかがでしょうか。
https://github.com/YoshiteruIwasaki/NegativePositieAnalyzerForJa/tree/master/conf

https://github.com/YoshiteruIwasaki/NegativePositieAnalyzerForJa/blob/master/conf/application.conf
には

include "databases.conf"

のような形で呼び出す処理を書く。環境によって切り替える必要がある時にはこのファイルを上書きする。そうすることで切り替えたいところだけ切り替えることができるようになりますね。





0 件のコメント:

コメントを投稿