2010.09.10
エスキュービズムの開発環境と仮想化技術
最近、世の中では仮想化だの、クラウドだのと騒がれていますが、
今日はエスキュービズムの開発環境について、ちょっとご紹介したいと思います。
エスキュービズムでは、かなり早い段階、具体的にはまだエンジニアが3~4人しかいなかった頃から開発環境に対して仮想化技術を導入し、原則としてエンジニアひとりひとりに開発サーバを割り当てています。
まだ世の中では「クラウド」という言葉も普及しておらず、「Saas」や「Paas」などの言葉がはやり始めたころの話でしょうか。
当時は2コアのOpteron、2GBメモリぐらいのサーバに対して、1仮想サーバあたりに256MBぐらいのメモリを割り当てて、仮想サーバを作っていました。
仮想サーバを使う理由
こんなお話は敢えてここで述べなくても、いろいろなところで言われているお話なので、あまり細かくは書きません。
一元管理ができる、とかリソースを有効に使える、とかいろいろあるとは思いますが、スタートアップ時のベンチャーには、正直なところ数10台もの開発サーバを置いておくスペースも、購入するお金もありません。このあたりを含めて「一番効率の良い」方法が仮想サーバだったわけです。
使っているサーバ仮想化技術
初期のころ
初期のころはXenを用いて仮想化を行っていました。
これは、今でも弊社がメインOSとしてい利用している、CentOSに標準でついていたことと、世界的に広く使われていたことの2点が大きな理由です。
標準でインストールができるので、サーバ作成が非常に楽なんですね。
最近
CentOS5.4から、KVMが標準でパッケージに組み込まれたことで、XenからKVMへと仮想化の手法を切り替えました。
当初は簡単に使えるようになったから使ってみよう、ぐらいの気持ちだったのですが、
タイミングよく(?)RedHat社から、RHEL6以降ではXenをサポートしない、とアナウンスがあったため、今後Xenに戻ることは無いと思います。
KVMはXenのような親OSの上でハイパーバイザが動くようなものではなく、Linuxのカーネル上に仮想化システムを組み込むことで、仮想化を実現しています。
今はまだXenとそれほどパフォーマンスに差はないようですが、これからの発展に期待したいところです。
ローカルでも
各個人のデスクトップPCでも、VMwarePlayerやVMwareServerを用いた仮想化技術を活用しています。
例えば案件によって、サーバに入っているミドルウェアのバージョンが異なったり、手軽に開発環境をコピーして、複数人での開発を行ったり、といった場合に使用しています。
私自身も、ミドルウェアのバージョン構成の違うCentOSのイメージを3種類、Ubuntuのイメージを1種類、場合に応じて使い分けています。
そのため、エンジニアの使用するデスクトップPCには、仮想環境がスムーズに動作するように、intel-VTを搭載したPentium Dual-Core E5500以上のCPUを搭載するようにしています。
(ちなみにデスクトップPCは秋葉原でパーツを買ってきて、自分たちで作っています。この話はまた別の機会にでも。)
ということで、現在のエスキュービズムでは、ホスト数としては数十から百ぐらいのサーバが稼働しているわけですが、実際に稼働している物理サーバはその10分の1程度です。
いずれは各エンジニアが、必要なサーバを選んで、自由に起動できるようにしたいなぁ、なんてことも考えていたりします。
Trackback URL
Comment & Trackback
Comment feed
Comment