社内ISUCONで有名なリクルートがISUCON10の出題を引き受けた理由とは

LINE株式会社(以下、LINE)が開催するパフォーマンスチューニングバトルISUCON。10回目の開催を迎えた今年の予選問題を作成したのは、社内ISUCONを開催していることで知られている株式会社リクルート(以下、リクルート)でした。

リクルートが出題を引き受けた理由や社内ISUCONを開催するメリット、社内ISUCONの広がりなどについてLINEの櫛井優介氏とリクルートの古川陽介氏に伺いました。

ISUCON10 まとめページへ

プロフィール

櫛井 優介(くしい ゆうすけ)
LINE株式会社 Developer Relations室
Culture Evangelist
2004年に株式会社ライブドア(現LINE)に入社しWebディレクターを経て技術広報担当に。2011年からISUCONを運営している。「数字の人」とよく呼ばれる。

 

古川 陽介(ふるかわ ようすけ)
株式会社リクルート エンジニアリング室プロダクティビティエンジニアリング部アプリケーションソリューショングループ
グループマネージャー兼シニアソフトウェアエンジニア
複合機メーカー、ゲーム会社を経て、2016年にリクルートテクノロジーズ入社。
Node.js日本ユーザーグループ代表で、コミッターとしても活動している。

制限時間内にパフォーマンスチューニングを行うISUCON

―― 改めて、ISUCONがどのようなイベントか教えてください。

櫛井 : ベンチマーカーというアプリケーションを介して点数を競う、パフォーマンスチューニングの大会です。ある程度の制限事項はありつつも、基本的にはなんでもアリです。

―― 今年の予選について、何か例年との違いはありましたか?

櫛井 : 準備期間については、全ての打合せがオンラインになったことですね。細かいニュアンスを会社を超えてオンラインで伝えるのは大変で、チームビルディングは行ったのですが、うまく意思疎通をするという意味ではオフラインには叶わないので難しいなと感じました。

当日については、例年は予選を2日にわけていたのを1日にしたので、1日あたりの参加者が過去最大になったんですよね。全員が公平にスタートを切れるようにVMを構築して検証することに時間がかかってしまいました。

ポジティブな違いとしては、例年は2ヶ月くらいかけて参加者枠が埋まって行くのですが、今回は45時間ほどで枠がすべて埋まったことです。準備もあるので、早めに枠が埋まってくれるとありがたいんですね。10回目という記念すべき回というのもありましたが、動画を作ったり、企業スポンサーを募ったこと、参加上限を500と最初から決めてしまったことが効いたのかなと思います。

―― 古川さんは今まで参加者としてもISUCONに関わってきたかと思います。ISUCONに参加して感じたことをお聞かせください。

古川 : 私のISUCON出場歴は長いほうで、ISUCON3の予選から出ています。参加して感じたことは「実力不足」ですかね。ISUCON3と9では本選に出場出来たのですが、ISUCON4~7は惨敗の歴史が続きました。

仕事でもアプリケーションを作ったりパフォーマンスの改善はしているのですが、限られた時間の中でパフォーマンスを出すことは難しいです。

―― Node.js界隈で有名な古川さんでも「実力不足」を感じるのですね。

古川 : とある1個のプログラミング言語に秀でていてもあまり関係ないんですよね。今回の予選もかなり特徴的だったと思いますが、毎回問題のパターンが違っていて、データベースにボトルネックがあるときもあれば、アプリケーション勝負というときもあり、それだけでなくキャッシュのつくり方などWebの知識を求められることもあります。

全般的に強くないといけないのですが、1人だと知識量に限りがあるのでチームで参加するわけです。

―― だからチームで参加することを公式が最初から推奨しているのですね。

古川 : そうですね。でも、ここ数年ISUCONの申し子のような、1人でも勝ち進む学生もいてすごいなと思っています。

櫛井 : 受験の息抜きにISUCONに参加して総合2位になるという…。運営チーム内で彼は人生3週目ということになっています。

一同 : (笑)

社内ISUCONで有名なリクルートが本家ISUCONの出題を引き受けたキッカケ

―― 今回のISUCONでリクルート様に問題出題を担当いただくことになったのか経緯や背景などをお聞かせください。

櫛井 : ISUCONの問題は予選と本選と2つあるので、ここ最近は2社に問題作成の依頼をしています。

1つは、前回優勝したところですね。「前回優勝したから自分たちもISUCONに貢献していこう」のように、すんなり受けて貰えることが多いです。今回は白金動物園というクックパッド株式会社さんの現社員と元社員の混成チームです。

もう1つの依頼をすることがISUCON運営で一番大変なんですけれど、本選に出場したチームに「次に出題するのはどこが良いと思いますか?」というアンケートを取っています。今回は他にも2社くらい候補があったのですが、その中にリクルートさんもあったので1月の末くらいに古川さんにTwitterのDMで連絡をしました。

リクルートの社内ISUCONがかなり盛り上がっているということを知っていたのと、2019年のデブサミのISUCON枠で古川さんも登壇していて「運営に参加する機会があったらぜひお願いしますね」という話をもともとしていたという理由もあります。

―― ISUCONは9月ごろの開催なのに、1月にはお声掛けしているのですね。

櫛井 : 問題作成には本当に時間がかかるので、1月くらいには出題企業を決めるということを私のテーマにしています。

前提として、ISUCONの問題を作ることはとても大変です。各社のエース級のエンジニアを2ヶ月くらいまるまる拘束してしまうので体力のある会社じゃないと難しいのですが、出題にまわるのがどういったことかなど、出題に関する理解があるのも大切なので単純に大きい企業に依頼すれば良いというわけではないのです。

―― リクルートで今回問題作成を引き受けることにしたのはなぜでしょうか?

古川 : お声掛けいただいて、「やり切れるのか」「そもそも受けても良いのか」と最初は躊躇しました。しかし、ISUCON3から参加していて運営が大変ということは分かっていたので「いつかは運営に貢献したい」と思っていましたし、作問を担当することで技術力が上がるのではという思いもあって、「やってみたい」という気持ちも半分以上くらい私の中にありました。

理解ある上司からすんなり承諾されましたが、私一人では出来ないので、エース級のエンジニア何人かの力を借りたり、案件に配属されてない新人に対して行うOJTの一環にもしてもらいました。新人については、OJTの前にブートキャンプ(エンジニア向け新人研修)があってその中で社内ISUCONも行うのですが、そこで筋が良さそうだと感じた人を3名メンバーとして迎えました。

―― 問題作成を担当してみていかがでしたか?

古川 : プレッシャーもあり、問題作成メンバーのひとりは「ISUCONで炎上する夢を見る」と言っていましたね。

競技が始まってからは、ドラスティックな変更が出来ない中で参加者からの問い合わせもありましたし、本番特有の不具合やバグもあり、勝負の場なので厳しい言葉をもらうこともありました。

競技者として参加した経験もありますが、今回が一番大変でした。競技者の10倍くらい大変だと思います。

―― 問題を作成する際に意識したことや苦労したこと、予選を終えての反省点やうまくいった点がありましたらお聞かせください。

古川 : 「リクルートらしい問題を作りたいよね」という話がチームメンバーからあがり、「なぞって検索」という地図をなぞって囲んだ範囲の物件を検索するという機能に関わっていたこともあって、SUUMOをもとにした椅子に合う物件を探す『ISUUMO』という問題を作成しました。

物件検索なので当然位置情報を駆使しないといけないのですが、位置情報を使っているサービスはそんなに多くないと思います。また、難しく作っていたのでハマった方が多かったようです。リクルートのサービスの特徴を伝えることも出来て、そこは狙い通りでしたね。

問題についてはあまり反省点は無いのですが、複数社で連携するところで不具合やスケジュールの遅延が生まれやすかったので、リクルート側でもっと早めにマイルストーンを出せていれば良かったのかなと思います。

社内ISUCONを開催するメリットとは

―― 問題についてあまり反省点は無かったとのことですが、社内ISUCONでの経験が生きているのでしょうか?

古川 : 社内ISUCONは6回開催していて、3回目からオリジナルの問題を作成しています。
はじめて作るとどうしても特有の不具合にハマったりするのですが、何回も問題を作ることによって経験値が溜まっていたと思います。

社内ISUCONでは会議室予約システムなどあるあるなサービスを作っていたので、どちらかというと「リクルートならでは」な問題にすることが今回チャレンジングな要素でした。

―― すでに6回開催されているとのことですが、最初に自社でもISUCONをやろうと思ったキッカケはありますか?

古川 : はじめはISUCONの勉強をしたい人が有志で集まって開催されていました。私が運営しはじめたのが3回目からで、会社全体のパフォーマンス向上に対するモチベーションアップにもなったのですが、パフォーマンスエンジニアリングができるようになってISUCONで勝ちたいという個人的な思いが根っこにあります。

櫛井 : 正しいアプローチだと思います。ベンチマーカーのスコアを上げるにはベンチマーカーの気持ちになることが大事なので、自分で作ってみることは勝つことの近道だと過去の出題者も言っています。

―― ISUCONで勝つには出題者になることが近道なのですね。

櫛井 : 出題者の裏の裏をかき始めるとキリがなくなるのですが、「自分だったらこう実装するな」ということが分かってくるそうです。

古川 : 「多分こういう実装なのだろう」ということも分かるようになりますが、問題を作って講評すると実力がつきます。ISUCONに参加する人達は過去問を解いていると思うのですが、それよりも自分で問題を作って人に解いてもらうほうが勉強になると思います。

―― 実力がつくとは言え、自分で問題を作るのは工数がかかりますよね。準備が大変そうなのですが、社内ISUCONを継続しているモチベーションをお聞かせください。

古川 : 社内ISUCONの問題は社内で起きているパフォーマンスissueを問題に落とし込んでいるので、issueが周知されて解き方も分かるので一石二鳥になっています。

パフォーマンスはセキュリティやアクセシビリティ同様、重視すべき非機能要件だと思っています。使い勝手を良くしていくことは他社サービスとの差別化にも繋がるので、社内ISUCONでパフォーマンスに関する知識やノウハウが溜まることで、会社のサービスをより良くしていけたらいいなと思います。

――社内ISUCONで生まれた効果や社内への影響はありましたでしょうか。

古川 : パフォーマンスを専門にした部隊が出来てきており、パフォーマンスの重要性を伝えるのに良い機会になっていると思います。アクセス数が増えてひっ迫している状態のことを「リアルISUCON」と呼んでいるなど、社内での認知度も向上しています。

コミュニティ化しているISUCON

―― リクルート以外でも社内ISUCONが行われるなど、LINEが開催しているISUCONそのものを超えた取り組みが広がっていますが、波及していったのはいつ頃でしょうか?

櫛井 : 実は社内ISUCONの流れの遠因は自分達なんですよね。ISUCON2までLINE(当時はライブドア)で出題をしていたのですが、「そろそろ自分達も出たい」ということになり、ISUCON1・2両方で優勝している面白法人カヤック(以下、カヤック)さんに声をかけたのがキッカケになっています。

ISUCON3での出題のためにカヤックさんが自分達で問題を作ったのが社内ISUCONの走りで、その後は各社で社内研修の必要性を感じたり、チームビルディングの一環としてやっているようです。

――このような取り組みの広がりについてISUCON運営として思うことはありますか?

櫛井 : インターネットがある限りパフォーマンスチューニングはなくならないですし、近年ではインフラだけでなく、ミドルウェアやアプリケーションを改善しないといけない場合も増えてきました。

例えば、サイトを訪問したら非常に重くて暫く待たないといけないのは不幸なことなので、パフォーマンスチューニングができるエンジニアが世の中に増えていくことは良いことだと思っています。また、クラウドが進化して深い知識がなくてもサービスが落ちることはなくなってきていますが、ISUCONでは根本のエンジニアリングを学ぶこともできると思います。

そこに貢献出来ているならISUCONを続ける意味はあると思いますし、このような取り組みが広がってISUCONというコミュニティになってきていると思うので、楽しんでいる人の邪魔はしないように運営やサポートをしていきたいなと思っています。

――パフォーマンスチューニングにおいて、インフラだけを改善すれば良いわけではなくなってきたとのことですが、ISUCONを10年運営してきて変化は感じますか?

古川 : 私は優勝者が固定されなくて、パフォーマンスの捉え方が変化して問題が高度化しているように感じます。

櫛井 : エントリや過去問が増えて、昔は現場でないと手に入れられなかった「負荷がある状態」を学生でも手に入れられるようになっています。また、新しく参加する人や学生が増えているので、IT業界に興味を持っている人にリーチ出来て来ているのかなと思います。

ISUCON10本選に向けて

―― 今年は本選もオンラインですが、何かポイントはありますか?

櫛井 : 100万円がかかっている緊張感があったり、隣で別チームが本気で喧嘩しているのが見えたり、8時間同じ問題に向き合っているので懇親会で仲間意識が生まれたり…これまでのオフラインで集まることが出来ていた本選の空気はとても独特です。そういった場で挑めないということが例年とは違ってくると思います。

代わりになるかは分かりませんが、運営としては本選ライブで緊張感の醸成や、これまでは無かった周囲の盛り上がりを見せるといった新しい面のチャレンジをしていきたいと考えています。

―― おふたりから、本選へのメッセージや告知をお願いいたします。

古川 : 出題者の意図を汲み取ったり、時には出題者の意図を超えている人もいて、予選を通過した面々は出題者からもレベルが高いと感じています。そんな実力者揃いの中で優勝者が決まるので例年に劣らず激しい戦いになるのではと期待しています。

櫛井 : かなり練り上げた問題を本選に向けて作っていて、面白いものであることは間違いないと思います。ぜひ、本選ライブを観てください。

―― 古川さんは出題経験を経て、今後優勝できそうでしょうか?

古川 : ISUCON11で狙います!

ISUCON10 本選ライブを視聴する

  1. 本選に出場するのはどのチーム?『ISUCON10オンライン予選』レポート
  2. UCのプロフェッショナルが解説! ビデオ会議/Web会議システムの選び方