仮想化環境で開発するときに知るべきことは何か?
Xenの得意とするWebアプリケーションの開発現場
それではXenの得意とするWebアプリケーションの開発を中心にした開発環境について、何例かのケースを紹介していきたいと思います。
CASE1:チーム開発
複数の開発環境でまず思い浮かぶのが、チーム開発での利用ではないでしょうか。最近ではVMware PlayerやcoLinuxといった手軽に使える仮想化ソフトを利用することも多いかと思います。共通の環境での開発・テストを行いたい場合には開発者 のPCごとに開発環境を作る方法ではなかなか難しいでしょう。
このような場合でも、仮想サーバを開発者ごと(あるいはグループごと)に用意すれば、同じ環境を簡単に用意し利用することができます。もちろん開発 環境というのは個人個人の好みの影響が大きいので、なにもかも共通化を、というわけにはいきません。それでも各開発者(開発グループ)が自由に使えるテス ト環境が手軽に構築できるというのは魅力的ではないでしょうか。
このようなスタイルでの開発を行う場合には、バージョン管理システムの導入が不可欠です。チーム開発を行う場合にはバージョン管理システムは導入済 みであることも多いかと思いますが、バージョン管理システムを導入していない場合にはこのような複数の開発環境・テスト環境を持つメリットはありません。 まずは、バージョン管理システム(今なら「Subversion+Trac」でしょう)の導入を行いましょう。
CASE2:運用(テスト)環境と開発環境
現在のWebアプリケーションの開発では、オープンソースを利用した開発が主流になっています。そのような場合、「標準」といえる動作環境は少な く、代表的なディストリビューションをもって動作環境としていたり、あるいはOSを含めた動作環境は指定せずに、個々の言語、データベースのバージョンを 指定している場合も多いようです。
もちろん特定のOSやディストリビューションをターゲットとしない場合には、複数の運用環境でのテストも不可欠ですが、共用ライブラリやスクリプト の追加モジュールの有無などOS寄りの内容にも多岐にわたって影響を受けますので、動作環境の問題はなかなか難しいものです。
「開発環境=運用環境」と揃えることが可能ならば、Red Hat Enterpirse Linuxなどのようなパッケージ管理機能を持ったディストリビューションを利用するのが理想でしょう。これならば共有ライブラリも実行用のパッケージと 開発用のパッケージ(「XXXX-devel」などという名称のパッケージ)に分割されており、運用に不要なパッケージを含める必要もありません。
ただしディストリビューションのパッケージに含まれているバージョンはちょっと古いバージョン(いわゆる「枯れた」バージョン)が採用されていることもあり、独自に追加ライブラリなどのインストールが必要となる場合もあります。
特に開発に使っている環境では様々な共有ライブラリや追加モジュールをインストールしていることもあり、気づかないうちに標準的ではないライブラリ を使っていた、などいうこともあるのではないでしょうか。このような問題は、チーム開発時にはもっと大きな影響を及ぼす恐れがあります。
このような問題を避けるために、運用環境に近いテスト環境を用意することが多いと思いますが(場合によっては複数必要となるかもしれません)、実際 には他のアプリケーションと共用のテスト環境となっていることも多いのではないでしょうか。仮想サーバを利用することで、アプリケーション専用のテスト環 境や他のアプリケーションと同時に利用するような状況でのテスト環境など、様々なバリエーションの環境を用意することも簡単にできます。これにより、現実 の運用環境に近い状態を用意することができます。
運用(テスト)環境がしっかりと整っていることで、開発も安心して行うことができますし、先のチーム開発のケースにもあるように開発者(開発グルー プ)ごとにテスト環境を用意することもできますので、これまで以上に効率のよい開発ができるようになることでしょう。