Twitterの本質はやはりスケーラビリティ。モドキを作るならAzureで
運良くスポンサー枠が棚ボタで降ってきてQconTokyoに参加することができた。
ハッシュタグは #qcontokyo 参加できなかった方はコチラで様子を垣間見ることができる。
こういったカンファレンスは普段主催者やスピーカー役での関わり方がほとんどなのだが、
今回はセッションを@wakiに任せていたのでイチ参加者として楽しむことができた貴重な機会。
各セッションを通してWebスケールのクラウドテクノロジやアーキテクチャの可能性を
感じることができたのだが、初日と2日目のキーノートがTwitterとFacebookの中の人
だったのはよい判断だったと思う。残念ながら日本にはグローバルにサービス展開を
仕掛けるサービサーが少ないこともあり、世の中で今起こっているスケール爆発を肌で
感じることが難しいのだが、120万tweet/秒とクールに言われると、私含め「ふーん」で
済ませられない人も多いのではなかろうか。どうやってさばいているのか知りたくなるのが
技術者の性。下記NickKAllen氏 @nk のセッションはその期待に応えるものだった。
資料は表示効果的なスライド含め71ページ。ダウンロードもできるが.keyなので
PowerPointしかないWindowsな方はちょっと残念。詳細は@IT西村氏が早速記事に
しているのでコチラを読んで概要をざっと把握してから上記資料を見るのがよいだろう。
要するに、データの分散配置、Shardingが重要、ということなのだが、サービス発展の
経緯や各段階での試行錯誤の顛末をあわせて話を聞けたのは大変興味深かった。
あわせてmemcacheを中心に据えたキャッシュヒットへのこだわり、大量のデータを
管理するためのmemcacheの階層化、地域をまたいだmemcache同士の通信などを
伴う改善には頭が下がる。我々が気軽につぶやくtweetは、こうしたクラウドスケールの
テクノロジーで支えられていると思うと感慨深い。ちなみに、memcachedをAzureで
動かす際にはMemcached Solution Acceleratorを使うのが便利。
そして、こうしたテクノロジーがTwitterやFacebookだけでなく、広く一般に使えるように
なっていることも忘れてはならない。Azureはもちろん、GAEなどを(うまく)使えば、
TwitterやFacebookのようなスケールアウトするアーキテクチャでサービスを構築する
ことができる世の中になっているのである。
例えば、エバンジェリスト仲間の井上章がTechEdセッション用につくっていたサンプルコード
であるEdtter。これをAzureがもつスケーラビリティをうまく活かすように若干の改修を行えば、
クラウドスケールのtwitterモドキをつくることができてしまう。なお、現バージョンのコードは
CodePlexからダウンロードできるようになっている。
また、マイクロソフト社内ではOfficeTalkを実験的に使っている。オンプレミスのtwitter。
企業内の用途であれば多くても数万人から数十万人程度。その程度の規模なら
オンプレミスにサーバーを立ててクラウドに社内機密を晒すリスクをとることなく対応できる。
まだ製品化の予定は発表されていないが、とにかく手軽に企業内twitterを使いたい
という方は、Officeブランドで今後展開されてくるであろうOfficeTalkのようなソリューションを
お待ちいただくのもよいだろう。サービスの性質的にBPOSの一環として使えるOnlineでの
展開もあるのではなかろうか。
あくまでSaaSとしての手軽さやビジネス面での変革に重きを置き、あまりクラウドスケールの
観点でメッセージを発信しないセールスフォースのChatterもいっそAzureプラットフォームで
動かしてくれれば…。