2011年10月7日金曜日

Cassandra Conference in Tokyo 感想

 昨日行ってきた「Cassandra Conference in Tokyo」について、あまりきれいにまとまっていませんが、感想を上げておきます。
 公式サイト:http://ec-cube.ec-orange.jp/lp/cassandra-conference-in-tokyo/
 しっかり文章にまとめられればと思ったのですが、今週は少々忙しく…。文章の精査をやるくらいだったらさっさと内容だけあげちゃえ!という事になりました。
 読みづらい文章が多々出てくるかと思いますので、先に謝っておきます。ごめんなさい!

 最初は時系列順に、各プレゼンの感想。最後に全体の感想デス。
 後半、内容が薄くなっているのは、諸事情により集中力が切れてしまいあまり内容を把握できなかった所為です…orz。体調は万全に!これ大事。

!注意!
 各講演を聴いて、自分がどう感じたか?を主題に書いています。
 スピーカーの方々が実際に伝えたかったことや、プレゼンの主題とは離れた部分に着目している事も多々あります。
 実際の講演の内容そのものが知りたい方は、別途ほかの方々のまとめや、後日スライドがアップされることがあれば、そちらのスライドを参照して補完してください。
 この記事を書いている人(=私)は、インフラ関係は見習いレベルの、Webサービスのサーバ側をメインに書いているプログラマ、です。

 Cassandra関係のイベント・勉強会に参加するのは、今回が初めてでした。


・基調講演: Cassandra 1.0 and the future of big data
 私が遅刻して最初少し聞けなかった。もったいないorz
 内容としては、Cassandraのこれからについての話、かな?
 近いうちに公開される、1.0の話題も。
 これからは「もっと判りやすく、使いやすいCassandraにしていきたい。」という主旨の発言があったのが印象的。後、ひたすら「リアルタイム」という単語を使ってました。
 それに対して、ほかのスピーカーの方が「そこまでリアルタイムじゃないよね」なんて突っ込みを、後々の講演でしたりすることも…w

・ハイパフォーマンス・スケーラビリティーデータベース Apache Cassandra
 Cassandraの仕組みとか、具体的に運用したときのノード間の通信のイメージとかをわかりやすく紹介。
 特徴的な多次元KVSのデータ構造についても、簡単な例を交えて紹介。
 後、自社で行っているサポートと、コミュニティへの貢献のお話。
 基調講演の次にこのプレゼンが行われたことで、
「Cassandra気になって検討はしてるんだけど、まだ深いところ何も調べてないのよネ」 というレベルの自分でも、以後のプレゼンが判りやすくなりました。

・「Cloudian(クラウディアン)」におけるCassandra
 あー、その、ごめんなさい。
 英語力に自信が無いので、同時通訳を聞きながら見ていたのですが、通訳が…その、ちょっと微妙で。あまり頭に入ってきませんでしたorz
 通訳していただいている以上文句は言えないのですが!えぇ、ほんと、すいません。英語勉強シマス…。
 後日、違う方のまとめを見て、脳内の断片的な情報を補完する、予定。

・スマートフォン×Cassandraによるハイパフォーマンスサービス基盤の構築事例
 GeQuuはげくーじゃなくてじくー。スマホベースのユーザ向け各種ロギングシステムの事、らしい。
 自分が過去にどこ歩いてたかの履歴を地図上でアバターで動かしながら確認するデモがありました。
 コスモルートさんは名古屋の会社なのですが、名古屋ではCassandra等々の経験を持っている企業がほぼ皆無だと。関東方面に偏りすぎなんですかね、やはり。
 GeQuuのシステムとしては、検索関係がどうしても弱いので、最終的に検索用に自作のKVSをかませている、という話もありました。

・Cassandra上でトランザクションを操る”NanaHoshi”とその展開例
 てんとう虫のロゴかわいい!ハァハァハァハァ。
 NanaHoshiの開発にいたるきっかけとして、S-cubismさんが行っているEC CUBEというECサイトに特化したCMSのカスタマイズ版の経験。
 商品数がある一定ラインを超えてくると、MySQLやPostgreSQLでは耐え切れなくなるため、Oracleという選択肢になる。でもOracleはOSSじゃない。お金かかる。
 莫大なデータを扱うことのできるOSSのDBがほしい!→そうだ、Cassandraにトランザクションをつけよう!という流れ。すごく同意できた。
 NanaHoshiについての概要は、前にpyconJP 2011のLTで聞いた内容と似ていたので、二度目だったこともありすんなりと入ってきました。
 また、NanaHoshi自体のコードは、Pythonで書かれている事もありそんなに大きなものではない、との事。
 擬似コードでの、NanaHoshi利用例とかもあって、プログラマである自分にはわかりやすい話でした。

・Webアプリケーションから見たCassandra
 Webmailという、Webアプリケーションのメールシステムを開発・運用してきてのまとめ。
 実際にどれくらいの勢いで、負荷と容量が増えているのか。
 AWSで運用した場合、どれくらい予算が必要なのか。
 運用開始時の規模と、それから1年半運用した結果どれくらいの規模になったのか、等。
 実際の規模感や予算がまとめられているので、とても参考になりました。
 おまけで語られていた、全ノードが落ちたとき、バックアップから読むというのは、目から鱗でしたね。
 後、Cassandra用のORマッパーとかも出てきました。すごく魅力的!
 多言語向けのORマッパーとか出てくると、さらに利用実績が増えたり、するんじゃないかなぁ?

・KVSを活用したログ保管・解析基盤構築の実例
 ログの保管・解析のためのシステムを、HadoopとCassandraを組み合わせて構築した際の、実例と問題点についてでした。
 HadoopにはHBaseがあるのに、なぜCassandraなんだろう?とか。HadoopとCassandraの連携をもう少し詳しく見たかったなー、とか、自分の脳みそでは少々理解できない部分もありました。
 ただ、BigDataの解析の実例・構成が見たい!という人には良い内容だったと思います。

・Cassandra を使った大規模データ保存の事例紹介(Issues and Tips for Big Data on Cassandra)
 楽天さんなので、スライドの内容はすべて英語でした。しゃべる内容は日本語。
 内容的には、とあるシステムをこれまでMySQLでレプリケーション等々でがんばって運用してきたけど、さすがにもうムリだから、Cassandraに移行しようって話。
 Cassandra自体かれていないのと、楽天という大きなモール系ECサイトで扱うような膨大なデータを扱った事例が少ないこともあり、バグを見つけることも何度かあった、との事。
 楽天としてはCassandraのコミュニティに積極的に貢献していくとか。

■全体の感想
 Cassandraはまだまだ若く、伸びしろがたくさんあるのだな、と感じました。まぁ、まだ1.0にもなってないわけだし、当たり前といえば当たり前なんですが。
 でも、基本となる思想やアルゴリズム自体はほぼ完成していて、使いやすさを補助する機能が足りていない。そんな印象です。
 ジョナサンも、もっと使いやすくしていきたいと言ってましたし。
 また、NanaHoshiみたいな、Cassandraを補助するライブラリがもっと充実してくると嬉しいな!と思います。

 これからの進化に伴い、Cassandraがエンジニアにとって身近な存在となってくると、もっともっと小粒のプロダクトでも利用されるようになるのではないでしょうか。
「このシステム、ユーザが増えてくるとDB負荷が厳しい設計だけど…でも、そこまでユーザが増えることって滅多になさそうだし、このままでいっか。」
 なんて理由でRDBを使っているようなシステムが、
「このシステム、ユーザが増えるとDB負荷ヤバいよね。実際にそこまでのアクセスがあるかどうか分かんないけど、先の事を見越してCassandraで実装しとこうかな。」
 という流れにシフトするのも、そう遠くないと感じています。

0 件のコメント:

コメントを投稿