Cloud Native Architectures: Design high-availability and cost-effective applications for the cloud (English Edition)
目次
- 目次
- はじめに
- 1. 一つのリポジトリに一つのアプリケーション
- 2. 依存関係は明示的にファイルとして宣言し、それだけでアプリケーションを動かせるようにする
- 3. ソースコードと設定を分離し、設定環境変数に格納する
- 4. バックエンドサービスは簡単に交換可能にできるように実装する。
- 5. ビルド、リリース、実行の3つのステージを厳密に分離し、順番に実行する。
- 6. アプリケーションを1つもしくは複数のステートレスなプロセスとして実行するようにする。
- 7. それぞれのアプリはWebサーバーを内包し、ポートバインディングで外部にサービスを公開する
- 8. 垂直スケール(CPU, メモリ増強)ではなく、水平スケール(インスタンス数の増加)で過負荷に対応する。
- 9. サービスは即座に起動・終了することができるようにし、簡単に廃棄できるようにしておく。
- 10. 開発環境と本番環境をできるだけ一致させる
- 11. ログは標準出力に出力し、本番環境では実行環境がそれらをまとめて最終出力形態に出力するようにする。
- 12. 管理プロセスはアプリケーションの初期化処理などに組み込み、自動化する
- 参考資料
- MyEnigma Supporters
はじめに
Twelve-Factor Appは、2012年にHerokuのエンジニアが提案した、
モダンなWebアプリケーションのために重要な12の項目をまとめたものです。
12factor.net
qiita.com
en.wikipedia.org
kakakakakku.hatenablog.com
www.slideshare.net
www.redhat.com
こちらの12の項目は、使うプログラミング言語によらず、
現在でも言及されることが多い普遍的なアドバイスが多いため、
かなり自分でも勉強になったので、まとめておきたいと思います。
元の英語のドキュメントの直訳だとかなりわかりにくかったので、
自分なりに意訳しています。
続きを読む