メルカリもイベント協賛するISUCONの魅力は?毎年参加しているメンバーに聞いてみた #isucon

フリマアプリ「メルカリ」は、さまざまな技術で成り立っています。それらの技術を支える技術コミュニティへの支援は、重要な技術投資。そのため、さまざまな技術系イベントに協賛してきました。ISUCONも、その1つです。

ISUCONとは、お題となるWEBサービスを決められたレギュレーション内で高速化を図るチューニングバトル。メルカリは協賛だけでなく、積極的に参加するメンバーも多いです。

ISUCON公式Blog

そんなISUCONも、今年で10回目。そこで今回のメルカンでは、ISUCON開始当時から参加し、出題者でもある長野雅広(@kazeburo)と、前回の出題者を務めた金子達哉(@catatsuy)が登場(ともにメルカリSRE)。彼らがISUCONに感じる魅力、ときに出題者として参加する理由をインタビューしました。聞き手は、メルペイEngineering Officeの七島偉之(@jollyjoester)です。

この記事に登場する人


  • 長野雅広(Masahiro Nagano)

    メルカリReliability Engineer。大手SNS運営会社、ポータル運営会社に勤務したのち、2015年2月よりメルカリへ入社。Site Reliability Engineerとしてサービスのパフォーマンスと信頼性の向上に携わり、急激なサービスの成長をインフラ面から支える。Twitter名は@kazeburo

  • 金子達哉(Tatsuya Kaneko)

    メルカリSRE。現在Developer Productivity EngineeringのNetworkチーム所属。ピクシブで開発・インフラに関わったのち、2018年6月より、メルカリへ入社。Goを中心に開発や、CDNの管理やログデータ基盤などを担当。Twitter名は@catatsuy

「幅広いレイヤーで何でもできたほうがおもしろいよね?」から始まった

―今日は、メルカリが協賛する技術イベントの1つであるISUCONについて聞きたいと思っています。@kazeburoさんは、初回から参加しているんですよね?

@kazeburo:はい、ISUCONを始めた一人です。

@kazeburo(メルカリSRE)

―きっかけは何だったんですか?

@kazeburo:当時から、僕はサービス運用に関わる業務を担当していました。サービス運用を改善するために、インフラからアプリケーションまで手を入れていたんです。そこで「幅広いレイヤーで何でもできるチューニングのコンテストがあれば面白いよね」と同僚と話し、スタートしたのがISUCONでした。

ISUCONは、限られた時間内でより高いスコアを出すため、チームメイトとアプリケーションからインフラまで「どう改善するか」を考え、手分けして対策にあたります。参加者のなかには、普段から一緒に仕事をする者同士でチームを組む人もいれば、知り合いだけど同じ会社ではない者同士でチームを組む人もいます。そういったチームが全員で同じ方向へ進んでいくようなイベントは、なかなかありません。

@catatsuy:僕はISUCON4から参加していて、ISUCON6本選・ISUCON9予選の出題にも関わっています。ISUCONがなければ今の自分はないと断言できるほど、いろいろなことを学びました。

@catatsuy(メルカリSRE)

@catatsuy:そもそもWEB開発において、1つ覚えればすべてできるようになるわけではありません。プロラミング言語の理解はもちろん、データベースのスキーマをどうするか、データベースに負荷がかかったらどうするのかなど、網羅的な理解が求められます。しかし、IT企業に勤めていればすべて経験できるかと言うと、そうじゃない。

ISUCONは、基礎的なインフラの知識がなければ開発を進められません。アプリケーションのボトルネックがどこにあるのかを見つける能力も必要です。そのボトルネックがわかったとしても、その解消法を見つけて実装しなければ高いスコアを出せません。ボトルネックを見極め、突き詰める力が求められるんです。濃厚かつ、必ず実業務に直結する部分があるんですよね。

ISUCONの醍醐味は、出題者の追体験ができるところ

―ISUCONと言えば、毎年話題になるのが「出題内容」です。どれも難易度が高く、さらに言うと、運営メンバーの本業に関連することだったりします。そうすると、参加者は「心当たりがあるぞ?」となったりして(笑)。

@kazeburo:大前提ですが、問題作成する人は、開発工程のすべてにくわしくないといけない。なので、問題作成は毎年大変です。参加者のやることが尽きてしまわないか、何をやってもスコアが上がらない状況ができてしまわないか…胃を悪くするくらいには考えています。

―そうそう。毎回、出題内容の趣向が凝らされているのも、ISUCONの大きな特徴ですよね!実際にそのサービスを運用しないと体験できないような障害対応や困っていることなどを追体験できるので貴重な学びの機会です。ISUCONでひと回りもふた回りも成長できたというエンジニアは多いのではないでしょうか。

―また、ISUCONは業界全体の技術レベルの底上げや知見共有に多大な貢献をされていると思っていて、そこがまさにメルカリがISUCONに協賛したい部分だったりします。…たしか、2019年はメルカリメンバーが運営を担当し、フリマアプリ「メルカリ」で実際に起こった課題が盛り込まれていましたよね?

@jollyjoester(メルペイEngineering Office)

@catatsuy:そうですね。僕は問題作成にも参加していますが、ISUCON9予選の出題テーマはメルカリで実際に起こった障害が元ネタでした。メルカリ社内でも、実際に障害対応でボトルネックを探して、実際に解決方法を考えていた人は数名。これをアレンジして出題することで、「どうすればいいのか」をみんなで考える機会になる。そして、これが業界内の技術向上につながると考えているんです。

ー毎年メルカリからも何名か参加しているようなので、昨年に関しては肩に力が入った人も多そうです。

@catatsuy:そうだとうれしいですね。実際にありそうなWebサービス開発を追体験できるのは、ISUCONのいいところ。ISUCON9予選の問題作成についてはいかに障害状況をリアルに再現できるか、どうすればフリマアプリ「メルカリ」を開発しているときと似たリアルな感じを出せるか、ということを考えて、けっこう頑張って実装しました。

@kazeburo:問題作成する者としてうれしいのは、終了後に参加者からさまざまな感想をもらえることですね。それを次のISUCONの勉強材料にしたり、社内で再利用されたり。IT業界の技術向上に少しでも役立ててもらえているのは、光栄です。

ポイントは「信じ切ること」

@kazeburo:問題と言えば、ISUCON4予選で、クックパッドさんが銀行ログインをテーマに出題していました。あれはおもしろかったですね。銀行と言いながら「ログインしか手段がない」ところもよかったし、おかげで「今後、同様の攻撃がきたらどうブロックするか」を考えることができました。

@catatsuy:ISUCON5予選では、SNSがモデルになっていましたよね。“らしい”機能が満載で、SNSではあるあるのスロークエリになるタイムラインのSQLが出題されていたり、かなり現実味がありました。当時、僕は一緒にSNSの開発をしていた同僚と一緒に参加していたので「我々が本戦に参加できないとマズいのでは」とチームメンバーで話していました(笑)。

@kazeburo:それ、僕も参加していました。以前、僕はミクシィに勤めていたので、同僚と「落ちたらやばい」と話していましたね。

―ISUCON愛がすごい。けっこう参加されていると思うのですが、戦い抜くコツなどあったりしますか?

@kazeburo:一緒に働いたことがない人とチームを組むこともあるので、だからこそ「信じ切る」が大事だと思っています。また、本番では役割分担を決める時間もないので、チームで何をするかは決めておいたほうがいいですね。

@catatsuy:練習はできるものの、大会中はレビューする時間もないです。そのため、@kazeburoさんの言うように、チームのみんなを信じ切ることは重要です。何が出題されるかわからないので、過去問を見て「こういうときはこうしよう」とチーム内で話し合っておくと安心できるのでおすすめです。

―そしてお2人とも、今年も参加するんですよね?

@catatsuy:はい、参加します。なので、戦いましょう!

@kazeburo:参加しますので、一緒に頑張りましょう。あと、参加後は、ブログやTwitterで感想をもらえると、問題をつくった人たちがとても喜びます。こちらもぜひ。

@catatsuy:ですね。練習した感想なども書いてもらえると嬉しいです。

―今日はありがとうございました!

関連記事 サクッと読める!✨

【来週開催!】#DroidKaigi 2021の要チェックポイントを登壇メンバーに直撃! #メルカリな日々

メルペイ初!QAエンジニア育成&インターンシッププログラム「Merpay QA Summer Training Camp 2022」の募集を開始します! #メルカリな日々

「働く女性エンジニアを増やそう!」有志メンバー3名が発足〜現在を振り返ってみた #メルカリな日々

関連記事 読み応えアリ✨