モダンなクラウドアプリケーション開発のベストプラクティスの一つである「The twelve-Factor App」が取り上げられることが多くなった。ビジネスの変化にICTが遅れずについていくためには、エンタープライズ分野の開発も、このプラクティスを取り入れていくべきだ。本稿では、エンタープライズシステムの開発・運用の視点から、従来行われてきたことと比較しながらTwelve-Factor Appを読み解く。まずは、「アプリケーションの改修を迅速にするためのプラクティス」をみていく。

 前回の10.開発/本番一致1.コードベースに続き、今回は「2.依存関係」を解説する。

2.依存関係

 Twelve-Factor Appは依存関係管理ツールの必要性を繰り返し説いている。依存関係管理ツールとは、アプリケーションを実行する際に必要となるライブラリを管理するツールである。Rubyなら「Gem Bundler」、Node.jsであれば「NPM」というように言語ランタイムごとに存在する。

 依存関係管理ツールの仕組みはとてもシンプルなものである(図1)。まず、開発者は、ツールが定めた依存関係定義ファイルに、必要なライブラリの名前やバージョンを記述する。すると、ビルド実行時に依存関係管理ツールが依存関係定義ファイルの記述に従って、ライブラリをネットワーク上のリポジトリから収集して保存する。

図1●「2.依存関係」で指摘したライブラリの管理方法
図1●「2.依存関係」で指摘したライブラリの管理方法
[画像のクリックで拡大表示]

 開発者が依存関係管理ツールを利用するメリットは大きく三つある。一つは、ライブラリが存在するリポジトリを探し、該当のライブラリをダウンロードし、そのファイルを管理する、といった手間が省けることだ。