インフラエンジニアの僕がキーボードのすぐ隣に置いておきたい本

本棚は自分の机のすぐ隣にあるのですが、なんとなく安心感とか勉強してる感とかを含め、思い立った時に手元ですぐ開いて調べたり暇つぶしにふと読みたい本ってありますよね。自分はインターネット、特にWebやインターネット基盤技術に関わる研究・技術者をやっているわけですが、自分の手元に置いておきたい本がやはりあります。

もちろん、手元に置くためのスペースは約20から30センチ程度なので、分厚い本を置くと数冊程度になってしまいますが、今日は「自分が現段階で持っている本のうち、キーボードのすぐ隣に置いておきたい本」8冊をなんとなく紹介したいと思います。

続きを読む

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だと思っています。

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

続きを読む

mod_mrubyとngx_mrubyのv1.0.0をリリースしました+振り返りまとめ

先ほど、mod_mrubyngx_mrubyのそれぞれv1.0.0をリリースしました。

2012年の4月のmrubyのソースコード公開を機に開発をはじめ、今振り返ると色々な事がありながらも2年間続けて研究・開発を行い、ようやくここまで辿り着く事ができました。

mod_mrubyとngx_mrubyを実装していく中で、Matzさんをはじめmrubyに関わるすごいプログラマの皆さんと出会い、多くの事を教えていただきながらここまでやってくることができました。もし、彼らと出会うことがなければここまで続ける事はできなかっただろうと思います。

続きを読む

Trusterd(mruby-http2)にリバースプロキシや動的コンテンツ機能を追加した

Trusterd(トラスタード)と呼んでいるmrubyで設定が書けるHTTP/2 Web Serverを、色々と勉強しながら実装しているのですが、それらに下記機能を試験的に追加しました。

  • HTTP/1へのリバースプロキシ機能
  • コンテンツとしてmrubyスクリプトを実行できる機能

これらの機能はまだ実装は甘く、性能・効率面はこれから詰めていきますが、一応動作するという事で簡単に紹介します。Trusterdの設定方法や簡単な紹介は、過去のエントリ「Trusterd: HTTP/2 Web Server scripting with mruby v0.0.1 リリースしました」を御覧ください

続きを読む

5月からペパボで仕事しています

20140507-024832.jpg

5月からペパボ(敬称略)で仕事をしています。といっても厳密には業務に入るのはもう少ししてからになります。

契約は色々ありまして、子育てや学業がありますので、業務委託という形でインフラ周りを見ることになりそうです。

これまでペパボのエンジニアの皆さんとは何度かお会いしており、ご飯を食べたり、技術論をベースに将来の事をお話したりと、とても仲良くして頂いています。

特に技術基盤チームのメンバーの皆さんとはお話することが多く、皆さん個性的で技術的に幅広い知識を持ちながらもそれぞれ特定の分野においてはより深い知識を持っておられるので、お話していてもすごく楽しいです。

今後、ペパボはチャレンジングな事をどんどんやっていくように見えていますが、限られた時間でそれをうまく後ろでサポートできるように、自分の専門分野をいかして立ち回れるように頑張って行きたいです。

皆さんよろしくお願いします。