UNIX的なアレ

UNIX的なこととかいろいろ

ロケスタの新サービス「ナナピ」で使った技術を紹介してみるよ


http://nanapi.jp
本日2009年9月1日、株式会社ロケットスタートの新サービス「ナナピ」をリリースしました。
ナナピ」はライフレシピと呼ばれる生活の便利な知恵や、ノウハウをみんなに共有してしまおう!というサービスです。
なんとか予定通り9/1にリリースをすることができました。すでに投稿数が160ほどあり、生活に便利な内容が投稿されています。

このようにまとまっているサイトってありそうでなかったですよね。「ナナピ」で生活がちょっとでも便利になるといいなぁと思って作りました。

さて、ここからは「ナナピ」でつかった技術を紹介してみたいと思います。

リアルタイムミラーリングツール「lsyncd」

まだまだサービスを出したばかりですが、将来的に気になるのはシステムの負荷です。
サーバの性能を上げていくにしろ、どこかで限界はきてしまうもの。そんな時はファイルを分散して配置する必要があります。しかし、リアルタイムでファイルを同期するのはなかなか難しいものですね。
そんなときに活用できるのがこのツール、「lsyncd」です。

どういったツールなの?

端的に言うと、ファイルシステムの変更をうけとって他のサーバ同期をとるツールです。Linuxカーネルで持っている機能「inotify」と同期ツールの「rsync」を組み合わせて実現しています。
これを使うと、アプリケーション側で特に制御をしなくても自動的に他のサーバとファイルシステムを同期をとってくれます。また、rsyncベースのためDaemonを上げるときに同期しなおしてくれるのも不整合がおきづらくていいですね。
inotifyについての詳細の説明は以下からどうぞ。

ハッシュDBサーバ「Tokyo Tyrant

mixiが開発していることで有名なKVS「Tokyo Tyrant」を導入しています。
memcachedと違うところは、Diskにデータを残せるため再起動してもデータが消えることがありません。また、1台のサーバで高速動かすことを想定しているため、スタートアップのベンチャーにももってこいだと思い導入しました。
ナナピ」では、各ライフレシピの評価の値などに活用をしています。

オープンソース総合監視ソフトウェア「ZABBIX」

さてある程度の規模のサービスになってくると避けて通れないのが監視のシステムです。ステータスを取得するだけでなく、非常時にはメールを送ったりなど様々な機能を求められますね。「nagios」あたりが有名ですが、自分自身に知見がないというのが問題でした。
そこで、簡単に導入することができ、かつ高機能な「ZABBIX」を選択しました。
以下はzabbixの画面です。アラートメールの送信を時間帯ごとにわけるなどなかなかの高機能ぶりです。
しかし監視ツールってついつい楽しくなってしまいますが、何も起きないのが一番よいんですよね・・・

関連リンク

さてさて、まだまだ始まったばかりのサービスでこれからまだまだ改善の余地があるサービスです。これから試行錯誤しながらがんばっていこうと思います。
是非、つかってみてください!