最近社内メンバがXenやりたいと言い出しました。
少し考えただけでも結構良い使い方が出てくるものだったので、じゃあやってみようということに。
極論すると、Xenは環境のポータビリティを向上させることができるので、その辺の悩みが解決します。
今後は社内で利用するすべてのサーバ環境をXenで実現することにします。

開発環境をXenにする:


これは、激しく便利。
特に最初からXenで開発環境を構築にしておくと、それまで開発環境として共有していたサーバのイメージをそのまま各作業者のPC上で動作させたり、ちょっとした検証環境として別サーバにコピーできたり、非常に便利。
開発中のアプリケーションが動くサーバだけでなく、エディタなどを含めた開発に必要な環境の配布もできるので、emacsの設定や必要パッケージの導入済みイメージを即日そのまま起動できます。
アーキテクチャなどの前提を整えれば大抵のイメージは共有できるので、XenはLinuxサーバ上で、Windows使いの人はcoLinux、(たぶんMacな人はVMWareなど)
でいつでも環境を再現できるのも魅力。

全てのサービスをXenに移行する:


スタートアップ時はできるだけ効率的にサービスを1台のマシンに詰め込んでしまいたいのですが、そのサービスのためにインストールされたパッケージが他のサービスには必要のないものであることは良くあることです。
サービスの提供をやめたりすると、何を削除すべきなのか管理しなければならず、それを怠れば環境がどんどん汚れていきます。
かと言ってサービスごとにマシンを購入すると電源の問題など色々考慮しなければならないことが出てきます。
仮想化はそんな問題を解決してくれます。

古いサービスをXenの上に乗せ換えてみた:


弊社ではレガシーな2000年1月より稼働しているC言語で書かれたWebのサービスがあって、古くてファンのうるさいデスクトップのマシン1台で動いていました。
実験的にその稼働中のサービスをそのままディスクイメージ(約30GB)として固めて、Xenの上に持っていきましたが、現在何の問題もなく動作しています。

これは個人的に感動です。
環境に合わせて少し古いLinuxのディストリビューションを探してきたり、古いDBの接続ライブラリを使ってコンパイルしたり、古すぎるがゆえに新しい環境に移行しようと思うとやらなければいけないことが本来は山積みなのです。
それがイメージを作ってXenの上で再生するだけで済むなんて、そのお手軽感に驚きました。

しかもマシンがノートPCで、古いデスクトップよりは速いですし、静かでUPS(バッテリ)付きなので若干の環境改善にもつながりました。
これから全面的にXenでやっていこうと思っています。