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

 前回までの8.並行性6.プロセス、7.ポートバインディング9.廃棄容易性11.ログに続き、最終回の今回は「12.管理プロセス」を解説する。

12.管理プロセス

 Twelve-Factor Appでは、管理プロセスを実行するスクリプトもアプリケーションと同じ環境で実行するべきと説いている。管理プロセスとは、データベース上にテーブルを作成したり、エラーデータを修正したり、というような作業を指す。

 このような作業はアプリケーションと不整合があってはならないもので、依存するライブラリ、パスワードなどの設定、プロセス権限、その他の環境を合わせるべきである。そのため、必要なスクリプトはリポジトリに登録して管理し、また依存関係管理ツールも同じものを使う。開発環境ではスクリプト言語のコンソールを起動してインタラクティブに処理を行い、本番環境ではリポジトリから配布されたスクリプトを実行する(図1)。

図1●Twelve-Factor Appで指摘した運用管理の仕方
図1●Twelve-Factor Appで指摘した運用管理の仕方
[画像のクリックで拡大表示]