モダンなクラウドアプリケーション開発のベストプラクティスの一つである「The twelve-Factor App」が取り上げられることが多くなった。ビジネスの変化にICTが遅れずについていくためには、エンタープライズ分野の開発も、このプラクティスを取り入れていくべきだ。本稿では、エンタープライズシステムの開発・運用の視点から、従来行われてきたことと比較しながらTwelve-Factor Appを読み解く。シリーズ第3週となる今週は、「リソース増減や運用管理を容易にするためのプラクティス」をみていく。
前回までの8.並行性、6.プロセス、7.ポートバインディング、9.廃棄容易性、11.ログに続き、最終回の今回は「12.管理プロセス」を解説する。
12.管理プロセス
Twelve-Factor Appでは、管理プロセスを実行するスクリプトもアプリケーションと同じ環境で実行するべきと説いている。管理プロセスとは、データベース上にテーブルを作成したり、エラーデータを修正したり、というような作業を指す。
このような作業はアプリケーションと不整合があってはならないもので、依存するライブラリ、パスワードなどの設定、プロセス権限、その他の環境を合わせるべきである。そのため、必要なスクリプトはリポジトリに登録して管理し、また依存関係管理ツールも同じものを使う。開発環境ではスクリプト言語のコンソールを起動してインタラクティブに処理を行い、本番環境ではリポジトリから配布されたスクリプトを実行する(図1)。