Herokuの中の人が書いたWebアプリケーション構築の方法論「The Twelve-Factor App」の日本語訳
2016-01-14追記: 日本語版は随分前に本家にマージされたので、記事中のURLも変更しました。
The Twelve-Factor App はHerokuの中の人 Adam Wiggins氏によって書かれた、モダンでスケーラブルかつ継続的デプロイ可能なWebアプリケーションを構築するための方法論です。
2011年に書かれた記事ですが、とても有用な内容だったので勉強を兼ねて日本語に訳してみました。
目次は以下のとおりです。
- コードベース
バージョン管理されている1つのコードベースと複数のデプロイ - 依存関係
依存関係を明示的に宣言し分離する - 設定
設定を環境変数に格納する - バックエンドサービス
バックエンドサービスをアタッチされたリソースとして扱う - ビルド、リリース、実行
ビルド、リリース、実行の3つのステージを厳密に分離する - プロセス
アプリケーションを1つもしくは複数のステートレスなプロセスとして実行する - ポートバインディング
ポートバインディングを通してサービスを公開する - 並行性
プロセスモデルによってスケールアウトする - 廃棄容易性
高速な起動とグレースフルシャットダウンで堅牢性を最大化する - 開発/本番一致
開発、ステージング、本番環境をできるだけ一致させた状態を保つ - ログ
ログをイベントストリームとして扱う - 管理プロセス
管理タスクを1回限りのプロセスとして実行する
Herokuを利用している方には馴染み深い設計方針かと思います。 なんとなく大切だと感じていた、バックエンドサービスをリソースとして扱い、URLを環境変数で渡すという考え方や、プロセスをデーモン化しないという考え方が明文化されていて、理解が深まりました。
まとまった文章の翻訳は初めて行いましたが、難しかったです。日本語訳が間違っていたりわかりにくいところがあれば、ご指摘いただけるとありがたいです。