OSvのような環境でもサクっと動くmrubyのWebサーバ作った

OSvがとても面白いので色々いじっていると、結果的にmruby-simplehttpserverというWebサーバをmrubyで動かすためのmrubyモジュールができてしまいました。

これは、OSvのようにライブラリをがんがん入れられないような環境でも、とりあえずSocketとIOがあれば動くシンプルなWebサーバを動かすためのmrubyモジュールです。

そもそもOSvって何?という方はこの辺りを見るかsyuu1228さんに聞くのが良いと思います。簡単に言うと、これからの時代、ハイパーバイザにがんがん仮想マシンをデプロイする際に、その仮想マシンにリッチなOSがあまり必要ないケースって結構あって(例えばmemcachedだけが動いているVMとか)、OSvはそういう用途に省メモリかつCPUのオーバーヘッドを低減して高速に動作するまるでプロセスのように扱えるOSです。プロセスは言い過ぎましたが、仮想マシンにも関わらず起動はmruby使用の場合、1、2秒で起動するので非常に高速です。

で、通常はコアの上にJVMがのっていってその上にサーバ+アプリケーションが動く仕組みになっているのですが、そのJVMの部分を他のVM(言語処理系的な意味合いの)を載せ替える事もできて、そこにサクっとsyuu1228さんがmrubyのVMをのせるハックをして今では本家にもマージされ、コアの上でmrubyのVMを動くようにimageを作ればアプリケーションとしてmrubyで書いたコードが動くようになります。JVMもZFSも取り外しているのでかなり高速かつ軽量に動作します。

かといって、OSvはUbuntuとかそういうライブラリをどんどん入れられるようなリッチな環境ではないのですが、Javaアプリが動く程度にSocketやIO等は普通に動くのでそれにのみ依存したWeb機能を持ったmrubyアプリケーションサーバをつくろうと思った次第です。mruby-simplehttpserverを使えば、OSv上で動くmrubyでWebアプリケーションを容易に実装することができるようになりました。

このような特徴を持つOSvをうまく使えば、状態を持つデータはどこか別の場所に置いておいて、OSvやその上で動くアプリケーションをイミュータブルに動かしたりと、次の世代の使い捨てデプロイ手法を実現しやすくなるのではないでしょうか。そういう方向性でもOSvは興味深いOSだと思っています。

前置きが長くなりましたが、では実際に動かしてみましょう。

続きを読む

DAS環境でもリモートからサーバを自動インストールしよう(基本編)

もはや、クラウドと騒がれている時代に、DASのサーバであっても現地に行ってサーバ構築するなんて時代遅れだ、といっても過言ではないだろう。同業他社に「サーバのインストールとかどうしてます?」と聞かれて、「現地でエンジニアが製造してます。」と答えると、「(何この会社時代遅れー)」と思われてしまうのは嫌である。また、こういったサーバの製造作業というのは、現地のデータセンターにこもって一日作業する必要があったりと、運用業務として非常にコストのかかる作業だと言える。

続きを読む

近頃のオープンソースクラウド基盤動向

最近はクラウド基盤と呼ばれるオープンソースソフトウェアについて、セミナーや勉強会が盛んに行われている。

クラウド基盤とは、クラウド(コンピューティングリソースをプールしておき、必要最低限の手間で、消費者が使いたいと思ったときに、リソースをすぐにプロビジョニングできる状態)環境を構築するためのソフトウェアだ。

amazonEC2と同じような仕組みを作ることができると思ってもらえればよい。

僕自身もEC2等には非常に興味があるので、動向調査や研究の意味で勉強会にも参加したりしている。

ということで、現状のオープンソースのクラウド基盤でどういったものがあるのかを簡単にまとめようと思う。

 

注目されているクラウド基盤

現在、オープンソースとしてのクラウド基盤で注目されているソフトウェアは以下の4つである。

[important]

  • Eucalyptus
  • OpenStack
  • CloudStack
  • Wakame

[/important]

である。

ではそれぞれについて、簡単な特徴を説明する。

続きを読む