Heroku のアプリケーションを設計する
最終更新日 2024年04月25日(木)
Table of Contents
Heroku の共同創設者 Adam Wiggins によって書かれた Twelve Factor アプリは、Software as a Service アプリを現代の開発環境で構築するための方法です。
Heroku は、オープンプラットフォームです。アプリケーションをデプロイして実行するために必要な所有者によるフックや依存関係はありません。しかし、最高の体験が得られるようになる共通のアーキテクチャプラクティスと開発プラクティスがあります。これらの概念の多くの原点が Twelve Factor の方法論の中にあり、本書では Heroku 用アプリを構築する際のコンテキストで説明しています。
背景
ここで説明しているアプリケーション開発の原則は、広範な software-as-a-service アプリをコンピュータネットワークで管理する体験から集められました。これらはアプリ開発における理想的な実践の三角形分割であり、アプリの自律的成長の力学、アプリのコードベースで仕事をしている開発者間のコラボレーションの力学、ソフトウェア崩壊のコスト節減に特別の注意を払っています。
これらをここで紹介する理由は、よくあるシステム上の問題に対する意識を高め、これらの問題を話し合う際の共有ボキャブラリを提供し、これらの問題に対して付属する用語を使った広範な概念的ソリューションのセットを提供するためです。
Heroku において
Heroku は、これらのアプリケーション開発原則の具現体であり、従来のサーバーベースのホスティングとは以下の形で異なります。
- アプリケーション集中型であり、インフラストラクチャ集中型ではない
- ダイナミックであり分散したランタイム環境である
- プロセスベースの実行モデルを利用する
- アプリとその依存関係の厳格な分離を強制する
Heroku では、これらの差異はさまざまなプラクティスでマニフェスト化され、これらすべてが巧みに設計された弾力性あるアプリケーションとなります。プラットフォームに固有のものにはなりません。
Heroku でのアプリ構築についてさらに理解を深めるために、アプリケーションを実行して管理するスタックの技術的詳細を確認するには、Heroku の仕組みを参照してください。
原則
Heroku 開発者が、アプリケーションを設計するとき、意識すべき、そして満足すべきいくつかのコアとなる開発プラクティスがあります。これらは、アプリケーションの開発、デプロイ、管理の段階と相関している広範な各カテゴリに分類されています。
カテゴリ | Heroku におけるアプローチ |
---|---|
開発と設定 | コードと設定の厳格な分離、明白な依存関係宣言、緊密な開発反復と環境間の類似。 |
ランタイム | アプリケーションが独立した、軽量の、ステートレスな、起動とシャットダウンが迅速なプロセスで実行される。 |
管理と可視性 | 補助的タスクを一度限りのプロセスで実行し、アプリケーションアウトプットを、照合したログストリームを介して見る。 |