Edited at

12 Factor App - 設定


この章の話はずばり



環境変数



これにつきます



つまり



アプリケーションの設定とは、デプロイ(ステージング、本番、開発環境など)の間で異なり得る唯一のものである



具体的には



  • データベース、Memcached、他のバックエンドサービスなどのリソースへのハンドル

  • Amazon S3やTwitterなどの外部サービスの認証情報

  • デプロイされたホストの正規化されたホスト名など、デプロイごとの値

など



ポイント



  1. 設定はコードから厳密に分離されていること。定数ではもたない

  2. 秘匿情報を漏洩しない。OSSにできるかどうか

  3. アプリケーション内部の設定は、ここでの "設定" の定義には含まれない。Railsの config/routes.rb とか


  4. dev, stg, productionのように環境ごとの管理は新しい環境ができたときにスケールしづらいので、そのようにグルーピングして設定を分けたりしないほうがよい



環境変数を使うのは粒度の細かい管理だが、言語やOSには依存しない良い方法です



ありがとうございました