generated at
The Twelve-Factor App
> Twelve-Factor App は、次のような Software as a Service を作り上げるための方法論である。
>
> ・ セットアップ自動化のために宣言的なフォーマットを使い、プロジェクトに新しく加わった開発者が要する時間とコストを最小化する。
> ・ 下層の OS への依存関係を明確化し、実行環境間での移植性を最大化する。
> ・ モダンなクラウドプラットフォーム上へのデプロイに適しており、サーバー管理やシステム管理を不要なものにする。
> ・ 開発環境と本番環境の差異を最小限にし、アジリティを最大化する継続的デプロイを可能にする。
> ・ ツール、アーキテクチャ、開発プラクティスを大幅に変更することなくスケールアップできる。

アプリケーションを疎結合に保つ指針
Heroku が提唱したもの
12 の原則
1. バージョン管理された 1 つのコードベースと複数のデプロイ
2. 依存関係を明示的に宣言して分離する
3. 設定を環境変数に格納
4. バックエンドサービスを接続されたリソースとして扱う
5. ビルド、リリース、実行の 3 つのステージを厳密に分離
6. アプリケーションを、1 つか複数のステートレスのプロセスとして実行する
7. ポートバインディングを通してサービスを公開する
8. 並行性 : プロセスモデルでスケールアウトさせる
9. 廃棄容易性 : 高速な起動とグレースフルシャットダウンで堅牢性を最大化
10. 開発、ステージング、本番環境をできるだけ一致させる
11. ログイベントストリームとして扱う
12. 管理プロセスは 1 回限りのプロセスとして扱う

参考文献