gihyo.jp » DEVELOPER STAGE » 連載 » 小飼弾のアルファギークに逢いたい♥ » #20 (株)ミクシィ 平林幹雄,長野雅広,津久井玲宏,大窪聡

小飼弾のアルファギークに逢いたい♥

#20 (株)ミクシィ 平林幹雄,長野雅広,津久井玲宏,大窪聡

今回,弾さんが訪問したのは,(株)ミクシィ。検索エンジン開発からアプリケーション運用まで,ミクシィを作り上げ,支えている4人のエンジニアの方々に逢ってきました。

(左から)津久井玲宏氏,平林幹雄氏,小飼弾氏,長野雅広氏,大窪聡氏(撮影:平野正樹)

(左から)津久井玲宏氏,平林幹雄氏,小飼弾氏,長野雅広氏,大窪聡氏(撮影:平野正樹)

自己紹介

弾:では,さっそく自己紹介から。

津久井(以下,津):mixiアプリケーション開発グループマネージャーの津久井です。仕事内容としては,マネジメントが主です。

弾:ちらっと紹介しておくと,かつて僕がマネージャーで津久井さんにコードを書いてもらったことがあります。大昔の話です(笑)(注1)。

平林(以下,平):平林です。研究開発グループのマネージャーをしていまして,研究開発グループ自体は僕を含めて5人です。仕事としては,マネジメントは2~3割くらいに抑えて,あとはだいたいコードを書いています。

長野(以下,長):システム運用グループアプリケーション運用チームの長野です。システム運用グループは,mixiと,Find Job!のインフラをやっているチームと…。

弾:じゃあ,データセンター担当みたいな。

長:アプリケーション運用チームは,データセンターに行かない運用チームなので,監視だとか,障害対応,セキュリティ系の実務ですね。アプリケーションのデプロイメントとサーバの設定もやっています。

弾:要は,ロジカルなホストのデプロイメント…。だいたいどんな感じでやっていますか? すでにOSだけ入ったのが,ずらっと並んでてっていうようなイメージ?

長:インフラ(部隊)にやってもらうのはOSのインストールまでなので,IPリーチャブルになってる状態までで,そこから先はこっちでやります。

大窪聡さん

大窪聡さん

大窪(以下,大):私は開発部のタンポポ開発グループという…。

弾:タンポポ開発グループ…? まさか刺身タンポポ開発グループということですか(笑)。

大:はい。タンポポ開発グループという名前のグループにいるんですが,チーム名の由来は刺身にタンポポをのせるような仕事をなくすための…(注2)。

弾:あ,名前の由来は刺身タンポポなんだ(笑)。マジ?(笑)

大:そういう作業をなくすためのアプリケーションの裏方的な,たとえばライブラリ的な側面や,案件と直接絡まないけど,影響範囲がでかいというようなものの改修を行うグループに属しています。

弾:ミクシィには今,エンジニアって何人くらいいらっしゃるんですか?

津:mixiの開発をやっているメンバーだけで60前後です。運用も含めると80,社内システムとかデザイナも含めると100人くらいです。

注1)
(株)オン・ザ・エッヂ在籍時の2000年当時。
注2)
ハムスター速報2ろぐ「刺身の上にタンポポのせる仕事の採用試験に受かったお!!!!!

お気に入りのシステム・ソフトウェア

弾:これまでやってきたシステムで自分の一番お気に入りは?

津:僕はマネジメントが10割で,コードは一切書いていないので,手がけたシステムっていうのがないんです。しいて言えば,最近話題になっているmixiアプリは僕のチームが手がけているもので,間接的に僕も関わっているところなので,mixiアプリが今,一番気に入っています。

弾:平林さんは?

平林幹雄さん

平林幹雄さん

平:検索システム系はだいたい僕が作っているのですが,その中で気に入ったというか,手こずったのが,ユーザ検索機能です。僕が作ったんじゃないんですけど,mixiがまだ小さい時代から仕様があって,名前とかニックネームとかで検索できるだけでなく,血液型で絞り込んだりとか,出身地で絞り込んだりとか,それを県単位,市単位とかってやっていました。普通の検索システムではないような,いわゆるRDB向けの検索項目がいっぱい並んでるのを,2,000万エントリに近づきつつある規模で動かさなければならないという課題がありました。Hyper Estraierというのを昔作っていて,それをそのまま動かしてて,だいたいユーザ数が1,000万以下くらいのときは問題なく動いていました。ですが,そろそろ東京都全員を抽出するみたいなクエリを投げられるようになると固まってしまうようになってきて。それで急遽,Tokyo Dystopiaっていう検索エンジンを作りました。それはまさにユーザ検索をなんとか持ちこたえさせるためだけに作っていて,全部オンメモリで処理をするとか,インデックスをすごい圧縮して持たせるとかをいちいち作ったので,それのおかげで今はほとんどストレスなく使えるようになっています。その割にはすごく台数が少なくて済んでいて,かつ速くなるだけじゃなくて,検索の適合性も,スコアリングを改善することによってそこそこいい検索結果を出せるようになっているんです。それは単に検索するだけじゃなくて,ユーザのグラフ分析を行っていて,自分からネットワーク的に近いユーザを出すことができるんです。それもすごい計算量がかかるんですけれども,それもTokyo Cabinetのオンメモリモードっていうのを使ってなんとか動くようにしていて。それのおかげで相当複雑な検索なんだけど,ほとんどそれを感じさせない。そのへんはかなり気に入っています。

長:一番は,memcachedをどうやって動かすか(注3)っていうのと,Q4M注4)という,奥一穂さんが作られたメッセージキューのしくみを導入したり,あとは画像配信全般ですね。画像が一番苦労しているかなと思います。

小飼弾さん

小飼弾さん

弾:画像のどの部分ですか? あんまりメモリに載らないとか?

長:画像のファイルが10億くらいあります。あとプロフィール画像のアイコンを1ページ50個表示したりというのが普通に行われるので,それをどうやって配信するか。プロフィール画像としては数千万なんですけど,アクセス数がものすごいたいへんなことになります。それをどうやってさばくかというので,Squid注5)を多階層にしたりしています。

弾:大窪さんは?

大:少し昔なんですけど,まだエンジニアの人数が少なくいろいろ試行錯誤していた時期に,昔ライブドアにあこがれていたこともあって,宮川さんのSledge注6)とかを参考にして社内の簡単なフレームワークを作りました。今も使われているんですがそれを実験する意味で動画のサービスを作ったりして,そのあたりが一番お気に入りです。

注3)
本誌Vol.47 特集2「mixi,ニコニコ動画,livedoor[実例から学ぶ]memcachedベストプラクティス」に執筆のほか,弊社gihyo.jpでも「memcachedを知り尽くす」をミクシィ前坂徹さんと共著。
注4)
http://labs.cybozu.co.jp/blog/kazuho/archives/2008/01/q4m.php,奥さんはサイボウズ-ラボ勤務。
注5)
キャッシュ機能付きプロキシサーバ。
注6)
PerlのWebアプリケーションフレームワーク。現在はシックス・アパート(株)執行役員の宮川達彦さんが中心になって開発したもので,名付け親は津久井さん。

著者プロフィール

小飼弾(こがいだん)

ブロガー/オープンソースプログラマー/投資家などなど。ディーエイエヌ(有)代表取締役。1999~2001年(株)オン・ザ・エッヂ(現(株)ライブドア)取締役最高技術責任者(CTO)。プログラミング言語Perlでは,標準添付最大のモジュールEncodeのメンテナンス担当。著書に『アルファギークに逢ってきた』(2008年5月,技術評論社)。ブログは『404 Blog Not Found』

URLhttp://blog.livedoor.jp/dankogai/

コメント

コメントの記入

パスサポ

多数の情報処理技術者試験対策書籍の発行実績を誇る技術評論社がお届けする,資格試験合格サイト「めざせ! 情報処理試験 パスサポ」が開設されました。

ピックアップ

サクセスストーリーに続く,快適サーバー運用管理のヒント!

データの増大,煩雑な管理,システムダウン,セキュリティなど,迫りくる課題からシステム管理者の負担を軽くするポイントを解説します。

gihyo.jp インフラエンジニア情報局

ネットワークやITにかかわるあらゆる業種で必要とされるインフラエンジニアに向けた技術情報や心構え,その魅力について多角的に紹介。

テストエンジニア ステーション

いま,ITに関わるあらゆる開発業務で注目されつつあるテスト系エンジニアをターゲットにしたコンテンツサイトを展開します。

一行クイックアンケート

gihyo.jpで取り上げてほしいネタは?

※検索はページ右上の検索ボックスをご利用ください。

その他の連載

2010年版SEO体得講座

本連載では,いまや企業サイトの戦略の1つとして欠かすことのできないSEOについて,最新トレンドからすぐに使えるTipsまでを紹介します。

小型Linuxサーバの最高峰 OpenBlockS 600活用指南

搭載メモリの増加,CPUクロックの向上など,あらゆる面が強化された期待の新モデルOpenBlockS 600。この記事ではOpenBlockS 600の紹介から,活用するためのさまざまなノウハウを紹介していきます。

はじめMath! Javaでコンピュータ数学

プログラミング言語入門者向けに,知っていると役立つ数学的トピックスを紹介します。簡単な演習問題と解説で,即活用できる知識を目指します。

教科書には載っていない ネットワークエンジニアの実践技術

ネットワークエンジニア,インフラエンジニアのトラブル対応には,時には「教科書通りにいかない」テクニックが必要となります。資格試験では得られないこうした実践的な技術について,実例を元に紹介します。

Googleケータイ,世に現る

2008年9月,Googleが中心となって開発されている「Android」を採用した携帯電話「T-Mobile G1」が発表されました。本連載ではT-Mobile G1を中心にGoogleケータイに迫ります。

モバゲーオープンプラットフォームに挑戦!――面白法人カヤック流モバゲーオープンプラットフォーム企画と開発のイロハ

2010年1月にリリースとなったモバゲーオープンプラットフォーム。その制作企業であるカヤックが,アイデアを企画に落とし込み,開発までのノウハウを紹介します。

プロトタイピングツールSketchFlowを用いた,Silverlightアプリ開発

SketchFlowプロトタイプ作成からアプリケーション開発までをExpression Blend 3を使って実践的に解説します。

Ubuntu Weekly Recipe

Ubuntuの強力なデスクトップ機能を活用するための,いろいろなレシピをお届けします。

連載一覧

gihyo.jp

  • DEVELOPER STAGE
  • ADMINISTRATOR STAGE
  • WEB+DESIGN STAGE
  • LIFESTYLE STAGE
  • SCIENCE STAGE
  • NEWS & REPORT

書籍案内

  • 新刊書籍
  • 書籍ジャンル一覧
  • 書籍シリーズ一覧
  • 新刊ピックアップ
  • ロングセラー
  • 電脳会議

定期刊行物一覧

  • Software Design
  • WEB+DB PRESS
  • Web Site Expert
  • 組込みプレス

最近のコメント