プログラマの立場での仮想化について

昨今、仮想化は流行になっていて、割と古くからあるVMwareや最近話題のXenLinux Kernelに採用されたKVMWindowsで動かせるVirtualPCcoLinuxなど、商用や個人用も含めいろんな仮想化ソフト*1がある。
SIor的にはハードウェアリソースの削減によるコスト削減や柔軟な運用というものを期待していると思う。

また値下げしてくれるの?最近は仮想化貧乏(仮想化導入で得たメリット以上に、導入運用コストがアップしちゃってる方々)になってるひともチラホラなので、シンプルに価格が分かるソフトウエアは結構嬉しかったりします。
いい加減な blog (Kurosaka) VirtualIronの新版リリース

ここでも述べられているように、コストが逆に上がってしまうこともありえるわけで、むしろコストダウン以外のメリットも必要なんじゃないかな、と。
で、何がいいのかというと、仮想化のいいところはバックアップやリカバリが簡素になったり、ライブマイグレーションといった仮想化でないとできない機能じゃないかな。
ただし、自分はSIorや運用をやってるわけじゃないので、上記のことがその立場の人たちにとって本当に望んでいるものだとはかぎらない。


なので、あくまでもプログラマの立場として、仮想化について考えてみる。
プログラマとして仮想化は、開発環境やテスト環境をすばやく構築できるのが最大のメリットだと思う。
ひとつVMのイメージを作っておけば、そのコピーで複数のVMを作ることが可能だ。
そうすることで、最初の環境構築には数時間かかるとしても、次にはものの十数分程度*2で済む。
バックアップも簡単だしね。
また、ひとつのマシンに複数の役割を演じさせることができる。
今までだとOSをインストールするのにHDDを別途用意して、箱を開けて換装するかHDD入れ替え専用のケースを用意する必要があり、気軽にできなかった。
仮想化を使うとその辺の物理的な面倒な作業が一気に減って、状況によって柔軟にVMを変えることができ、ハードウェアの性能が高ければ複数VMを使うことが出来る。
そういうところがメリットじゃないかな。
ただしデメリットがあって、やっぱりテストをするには実機で行うのがベストだし、性能面での劣化というのも無視できないケースもある。
あと、仮想化ソフトのほうに致命的なバグがある場合は、それを直すにはかなりの骨が折れるはずだ。


まぁ大方、みんな大なり小なり思っていることでしょう。

*1:厳密にはソフトじゃないものもあるが

*2:イメージのコピー、ネットワークの設定などを含む