「Twelve-Factor App」という言葉をご存知でしょうか。12の要素を持つアプリケーションを訳すべきでしょうか。クラウドアプリを開発するためのベストプラクティスとして取り上げられることが増えているといいます。
今日、公開した「ネット発のプラクティスをエンタープライズへ」を読んで初めて、存在を知りました。タイトルにもあるように、記事は、クラウド向けだけでなく、いわゆる企業情報システムの開発を成功に導くうえでも適用できる部分があると指摘しています。
記事から12の要素の概要を引用します。
- リポジトリによってアプリケーションの変更を追跡管理する
- アプリケーションで使うライブラリの依存関係を明示し、ツールでインストールする
- 環境ごとの設定をコードベースから分離する
- データベースなどのサービスを、URIなどを用いて疎結合させる
- ビルド・リリース・実行の三つのステージを厳密に分離する
- ステートレスでシェアードナッシングのプロセスを用いる
- ネットワークポートを通じてサービスを活用する
- 並列処理をスレッドではなくプロセスで実現することで、スケールアウト可能にする
- 動的にスケールするために、プロセスを行儀よく終了できるようにする
- 時間、作業者、使用ツールを、開発環境と本番環境でできるだけ一致させる
- アプリケーションにログの集約場所を記載せず、ログルーターで集めて活用する
- 管理のタスクは、アプリケーションの実行環境の中で実行する
ネット発のプラクティスをエンタープライズへは、「Twelve‐Factor Appをエンタープライズに生かす」という連載の1回目です。これから3週間にわたって続く予定ですので、ぜひご一読ください。