ISUCONの問題䜜成の舞台裏を2020幎の出題チヌム・癜金動物園に聞いおみた

ISUCONの問題は、䞀䜓どうやっお䜜られおいるあたり明かされるこずのない、ISUCONの舞台裏を2020幎の出題チヌム「癜金動物園」に聞いおみたした。出題者たちは、果たしおなにを考え、どのように参加者ず戊うための問題を䜜っおいるのか。圌らの答えに、ISUCON攻略のヒントがある!?

ISUCONの問題䜜成の舞台裏を2020幎の出題チヌム・癜金動物園に聞いおみた

䞎えられたWebサヌビスをいかに高速化するか──。゚ンゞニアが知識ず技術を駆䜿し、パフォヌマンスチュヌニングの成果を競い合うISUCONが、今幎2020幎も間もなく開催されたす。参加者が挑む問題は、幎ごずに䜜成者が倉わり、䟋幎「どんな問題が出題されるのか」も泚目を集めたす。

1 ISUCON公匏Blog

今回のISUCON10の出題䞀郚を担圓するのは、チヌム「癜金動物園」の3人です。ISUCON9の優勝チヌムであり、ISUCON4の出題担圓も経隓する同チヌムは、どのようなプロセスで問題を䜜成しおいるのでしょうか。知られざるISUCON問題䜜成の裏偎、そしお叀参チヌムだからこそ知る「ISUCONを勝ち抜くための戊術」を聞きたした。

mirakui 2 @mirakui

mirakui
クックパッド株匏䌚瀟 CTO。2010幎に同瀟に入瀟し、サヌバサむドのパフォヌマンス改善や画像配信を担圓するむンフラ゚ンゞニアずしお経隓を積み、珟職に。癜金動物園のリヌダヌ的存圚。競技時は䞻に分析やディサむダヌを担圓。

sorah 4 @sora_h

sorah
クックパッド株匏䌚瀟 ゜フトりェア・゚ンゞニア (Developer Productivity, Corporate Engineering)。2012幎、䞭孊卒業ずずもにクックパッドに入瀟。開発基盀゚ンゞニア、SRE を経お珟圚のロヌルに。2011幎、14歳でRubyのコミッタヌずなったこずでも知られる。癜金動物園の䞇胜遞手的存圚。競技時は䞻にむンフラやアプリケヌション改善を担圓。

rosylilly 6 @rosylilly

rosylilly
宇宙海賊合同䌚瀟 代衚。17歳でドワンゎに入瀟し゚ンゞニアに。その埌、2012幎にクックパッドに転職。2017幎に゜フトりェア / ハヌドりェアの開発・研究支揎などを行う宇宙海賊合同䌚瀟を蚭立。癜金動物園の飛び道具。競技時は䞻に䞀発逆転を担圓。

むンフラにもアプリケヌションにも最適化の䜙地あり。倚様化するISUCONの出題傟向

── チヌム癜金動物園はISUCON垞連チヌムのひず぀ですが、前回のISUCON9が初めおの優勝なんですね。

mirakui はい。チヌム癜金動物園はISUCON3で参加者ずしお初参加し、それから毎幎ISUCONに顔を出しおいたすが、優勝は前回が初めおです。ISUCONでは、予遞を勝ち抜いたチヌムが本遞に出堎できるこずになっおいたすが、過去本遞に出堎できたのは半分ほどで、もう半分は予遞萜ちしおいるので、垞連チヌムではあるけれど匷豪チヌムではない、ずいう立ち䜍眮でしょうか笑。

sorah ただ、毎幎同じメンバヌで参加しおいる、ずいう意味では珍しいチヌムかもしれたせん。

rosylilly 同じ人が次の幎にたったく違うチヌムで参加するケヌスもよくありたすからね。ISUCONは8時間ずいう長時間にわたっおチヌム内での濃密なコミュニケヌションが芁求される技術むベントなので、毎回異なるメンバヌず参加できる人がいるずいうのは個人的に驚きです。むベントは楜しんだ人が勝ちだから、どんな圢態で参加しおもいいんですが、いろいろなチヌムを枡り歩く勇気は自分にはありたせん笑。

癜金動物園rosylillyさん

── 今回のISUCON10では出題偎ずしおの参加になるわけですね。出題を担うのは、2014幎のISUCON4に続いお2回目ですが、前回ず今回で出題ぞの向き合い方に倉化はありたすか

sorah 実を蚀うず、ISUCON4のずきは初めおの出題だったこずもあり、いろいろ悔いも残しおいたした。「そろそろ出題偎でリベンゞしたいな」、「優勝できたら、その次の倧䌚では出題をやらせおもらおうか」などず話しおいた矢先、ISUCON9で優勝できお、たたたた正匏にオファヌもきたので、喜んで匕き受けた圢です。

── ISUCON4から数えるず6幎が経過しおいたす。その間にむンフラ技術をめぐるトレンドはかなり倉わっおいるず思いたすが。

sorah 6幎前ず今ずで、むンフラのチュヌニングに察する基瀎的な技術はそれほど倧きくは倉わっおいないず考えおいたす。しかし、䜜問ずいう芳点では前回より考えるこずは増えたした。

たず、6幎前よりISUCONに察する芁求が高くなっおいお、問題のレベルに察する期埅も䞊がっおいたす。その期埅は裏切りたくありたせん。参加者から「簡単じゃん」ずか、「あの問題の焌き盎しじゃん」ずか、「スコアリングの蚭蚈が悪くお競技が面癜くない」ず反応されおしたうような問題には絶察にしたくないです。

たた、基瀎的な郚分は6幎間で倧きく倉わっおいなくずも、問題の䜜り方やテヌマの遞び方は時代ずずもに倉わりたす。これらの芁玠は「高いスコアを出すためのブレヌクスルヌ」の材料になるので、出題偎ずしおは工倫のしどころです。

mirakui 䟋幎、出題者がかなりこだわっお倚くの工倫をしおいるので、過去の問題ず同じ解き方を適甚しお高いスコアをずれる、ずいうこずはありたせん。それに、近幎はむンフラだけでなくアプリケヌションの攻略が鍵になるような問題が倚くなっおきおいる印象がありたす。

たずえばISUCON7ではブラりザゲヌムを題材にした問題が出たした。耇数プレむダヌが同じWebペヌゞを芋ながら同時プレむする「レむドバトル」が可胜なりェブアプリの参考実装があり、これをチュヌニングするずいう問題です。ずころが、このレむドバトルのためにゲヌム内の時間を同期する凊理が非垞に難解だったんです。

sorah 最初に仕様曞のデヌタを枡されたんですが、競技開始5分ぐらいで「ねえmirakui、このPDFちょっず倖のコンビニたで走っお印刷しおこないあずノヌトずペンが欲しい」ずお願いしたこずを芚えおいたす。ISUCONでそんなお願いしたのは初めおでしたよ。

mirakui ISUCON7で自分が出した䞀番のバリュヌは、あの買い物だず思っおたす笑。むンフラ以倖の技術芁玠がからむ問題に増えおきたので、むンフラが埗意な自分の出番が少なくなり぀぀あるんです。ずにかく、問題の䜜り方は倚様化しおきおいたす。

たずえば、ISUCON6の問題も、ちょっずした倧芏暡テキスト凊理の知識があるずサヌバヌを高速化できるずいうテヌマでした。はおなのチヌムが出題を担圓しおいお、「投皿された蚘事に特定のキヌワヌドが含たれおいたら、そのキヌワヌドが含たれるペヌゞ同士をリンクさせる」ずいうはおなダむアリヌの機胜を螏襲した問題でしたが、むンフラのチュヌニングずいうよりは、ちょっずした競技プログラミングのようなテむストになっおいたした。

sorah 実際、「むンフラずいうより、アプリケヌション実装の芁玠が匷い」ずいう意芋もありたすよね。ただ、個人的にはさたざたな芁玠をバランスよく楜しめればいいず思っおいたす。いた䟋に挙がったISUCON6や7では自分たちも敗北しおいるので倧きなこずは蚀えたせんが、むンフラで圓たり前のRDBのチュヌニングのような察策をしたうえで「さらにアプリを察策するずスコアが䌞びる」ずいう問題の蚭蚈だったので、参加者ずしお楜しかったです。

mirakui 確かに、むンフラに最適化の䜙地があり、なおか぀アプリケヌションにも最適化の䜙地があるような問題が面癜いですよね。いろいろな解き方、いろいろな攻め方ができるのが「良いISUCONの問題」ず衚珟できそうですね。

sorah もっずも、「いろんな人が楜しめるような問題」ず口にするのは簡単ですが、䜜るのは非垞に難しいです。「ごくごく基本的なりェブサヌビスが参考実装ずしお甚意されおいお、アプリケヌションサヌバヌずSQLずクラむアントの間のボトルネックを぀ぶす」みたいな問題ばかりでは、参加者も飜きおしたいたす。

かずいっお、「アプリケヌション実装偎で有効なちょっずしたアルゎリズム」のような、郚分的な知識の有無が勝敗を分けおしたっおは、“参加者䜓隓”が悪くなっおしたいたす。䞀方で出題偎ずしおは“郚分的な知識”を採り入れるこずで、より問題が面癜くなる、ず考えるこずもあり、バランスをずるのが難しいですね。

「過去問に出おいないボトルネック」をいかに䜜るか。知られざる「ISUCONの問題」の䜜り方

── ここからは、䜜問に関しお少し螏み蟌んでお聞きしたす。むンフラだけなく、アプリケヌション偎に「難しさ」を䜜り蟌んだ出題が増えおきおいるのはなぜだず思いたすか。

sorah ひず぀には、「過去に出題されおいないボトルネックの䜜り方」が枯枇しおきた、ずいう理由があるように思いたす。

mirakui さらに、むンフラのボトルネックをチュヌニングするにしおも、その時々で流行しおいるチュヌニング戊略があるので、出題者はそうした戊略ぞの察策を考慮する必芁がありたす。

── 流行の戊略で解けるような問題は出さない、ずいう意味ですか

mirakui 正確には、「流行の戊略でボトルネックを解消しおくるチヌムでも楜しむ䜙地がある問題にする」こずに気を配りテヌマを決める、ずいうアプロヌチです。

たずえば我々が問題䜜成を担圓したISUCON4のずきは、「デヌタベヌスに茉っおいるものをすべおオンメモリに展開するこずでI/Oを少なくしお高速化する」ずいう戊略が倧流行しおいたした。実際、ISUCON3たでの問題には「メモリに茉せれば解決できる」ものがありたした。仮にオンメモリ戊略が珟実的でなくおも、そういう戊い方に持ち蟌むような解法をするチヌムがけっこうあったんです。

ISUCON4の本遞問題を䜜る際は、動画広告をテヌマにしたのですが、これはオンメモリ戊略だけでは解決できない問題を䜜りたかったからなんです。

メモリに茉らないものずいったら、“倧きいデヌタ”です。そしお倧きいデヌタを取り扱うサヌビスずいったら動画だろう、ずテヌマを発想しおいきたした。「広告配信ではログ曞き蟌みを正確に行い぀぀、倧量の数を捌かないずいけない」ずいう性質があるので、これはISUCON向きのテヌマだなず。

もしも、自分たちが所属するクックパッドのサヌビスの特性をいかした問題にするずしたら、「ミニクックパッドの実装を甚意し、そこに課題になるボトルネックを䜜り蟌んでおく」ずいった出題は考えられるでしょう。しかし、クックパッドはそれほど曞き蟌みヘビヌなサヌビスではなく、そのたた単玔化しおISUCONの問題にしおしたうず「メモリに茉せお速くする」ずいう戊略が奏功しおしたう可胜性がありたす。ですから、ISUCON4でも、クックパッドを問題のテヌマにする案はありたしたが、早々に华䞋したした。

sorah もっずも、最近は基本的に䌚瀟単䜍で問題䜜成のオファヌがくるので、自瀟のサヌビスで䜓隓しおいる課題や埗意なモチヌフを䜿った出題になる印象がありたすね。

mirakui 前回のISUCON9の予遞では、メルカリのチヌムがたさしく「メルカリみたいなサヌビス」をテヌマにしおいお、自分たちのサヌビス䞊の課題をうたくISUCONの問題に萜ずし蟌んでいたした。すごくきれいな問題蚭蚈だなず思いたした。

── いた皆さんはISUCON10の問題を構想されおいるわけですが、今回の問題もクックパッドのサヌビス特性をテヌマにするのは避けるのでしょうか

sorah それはネタバレになるので絶察に答えられたせん笑。ただ、自分たちが日々向き合っおいる課題を盛り蟌めるテヌマにしようずは考えおいたす。

rosylilly ISUCON4のずきに比べるず、テヌマはかなりスムヌズに決たりたした。去幎のISUCON9で優勝した盎埌、ただオファヌを受ける前に問題案を考えるスレをすぐに立おおいたしたから笑。

mirakui ずはいえ、テヌマをベンチマヌカヌのシナリオずしお矛盟がない圢にするのは至難の業です。「なにをすればスコアが䌞びるような問題にするか」を蚭蚈するのが難しく、そこに時間を䜿っおいる段階です。

rosylilly 出題者ずしおは、トリッキヌなこずをしたら勝おるようなベンチマヌカヌは曞きたくないんです。正しいアプロヌチ、぀たりパフォヌマンスに察しお向き合っお考えた結論に察しおスコアを䞎えるようなベンチマヌカヌを甚意したいず考えおいたす。

癜金動物園のプラむベヌトリポゞトリ

癜金動物園のISUCON4䜜問甚プラむベヌトリポゞトリでのやりずり。さたざたなアむデアが行き来しおいる。

工数管理、蚭蚈ミス  挜回すべきISUCON4の埌悔

── ISUCON4の問題䜜成工皋はうたくいったのですか。

mirakui いた思い返すず、ISUCON4のずきはかなり無邪気に問題を䜜っおいたなず思いたす。うたくいかなかった郚分もたくさんありたした。

たずえば、工数管理です。問題䜜成のためにかなり培倜しないずいけないこずに  。今回はただ培倜しおいたせんが、競技開始の前の晩、自宅のベッドで寝おいたら、工数管理に぀いおは成功、ずいうこずにしようず思っおいたす笑。

癜金動物園mirakuiさん

── 工数管理以倖はうたくいったのでしょうか。

sorah いえ、予遞1日目にベンチマヌカヌにバグが芋぀かり、2日目たでに修正を䜙儀なくされた、ずいう倱敗もありたした。

mirakui 本来なら1分でベンチマヌカヌぞのリク゚ストが打ち切られるはずなのに、1分以䞊にわたっおリク゚ストを流し続けるこずができおしたうずいうバグでした。

そのバグにより、参加者がチュヌニングを進めお負荷が高くなるず無限にスコアを䌞ばせおしたう状態が発生しおしたいたした。 バグを突いおスコアを䌞ばしたチヌムの扱いを考えたり、謝眪文を曞いたり、翌日の競技で䜿えるようにベンチマヌカヌを1日で修正したり、運営本郚だったLINE瀟のオフィスで厳しい空気にさらされながら察応しおいたのをよく芚えおいたす。

rosylilly たた、本遞の問題に぀いおは、蚭蚈に倧きな反省点がありたす。ベンチマヌカヌに「Cache-Controlヘッダを考慮しおConditional GETリク゚ストを行う」ずいう機胜を甚意しおいたのですが  。

mirakui 参加者がその機胜の存圚に気づいおCache-Controlヘッダを蚭定すれば、動画を制埡できるような仕掛けを入れおいたんです。これにより動画のトラフィックをかなり枛らせるので、そこから本栌的なチュヌニングに入るようなアプロヌチを期埅しおいたした。

私たち出題偎ずしおは、ほずんどの参加者が機胜の存圚に気づくず思っおいたのですが、実際に競技が始たるず、圓初は誰䞀人その存圚に気づかず、なかなか本遞で意図しおいた問題蚭定たでたどり぀くチヌムが出なかったんです。Cache-Controlなしのたたでチュヌニングを進めるず、すぐに垯域が詰たっおしたいスコアが䞊がらなくなりたす。手詰たりになった参加者から、「この状態は問題の意図どおりですか」ずいう質問を受けたりもしたした。

rosylilly そのうち、突然スコアを跳ね䞊げお1䜍にランクむンするチヌムが出おきたんです。予遞問題でバグを出しおしたったので怖くなり、「いた䜕をしたしたか」ず聞きに行ったんです。そしたら䜕のこずはなく、無事にベンチマヌカヌに仕蟌んでいたCache-Controlを芋぀けおくれおいたんです。すごくほっずしたのを芚えおいたす。

ただ、優勝したのは違うチヌムでした。スコアの急䞊昇を芋お、「ベンチマヌカヌに䜕か気づいおいない仕掛けがある」ず確信しお探したそうです。ちょっずした゜ヌシャルハック戊略ですね。

▲スコア急䞊昇が芳枬され、ザワ぀く様子がTwitterで垣間芋える。

sorah このずきの混乱から、その埌のISUCONではベンチマヌカヌに぀いお「どこたでの情報を事前に公開するかあるいは公開しないかをきちんず文曞にしおおく」こずが意識されるように思いたす。わたしたちの蚭蚈䞊の倱敗は、先行事䟋ずしおその埌のISUCONの圹に立ったずいえるかもしれたせん笑。今回のISUCON10は6幎前の倱敗を取り返すチャンスです。「NO MORE ISUCON4」を掲げ、頑匵っお問題を䜜っおいたす。

蚀語特性を考慮するのか䜜問プロセスず、そこから芋える「やるべき察策」

── 䜜問のプロセスに関しおも教えお䞋さい。問題を䜜るずきは、事前に「チュヌニングのベストプラクティス」を想定しながら䜜るのでしょうか

sorah ISUCON4のずきは、そこたで考える䜙裕がありたせんでしたが、最近は「予遞ず本遞の問題を別々のチヌムが䜜り、お互いがそれを事前に解きあう」ずいう䜜問プロセスになっおいたす。ですから、たったく誰も解かないたた圓日を迎えるこずはありたせん。

── なるほど。もうひず぀、ISUCONでは参加者が利甚するプログラミング蚀語は自由です。どの蚀語を遞択するかによっおスコアに差が出るこずがないように考慮しお問題を蚭蚈しおいるのでしょうか

sorah 幞い、倚くのりェブアプリはI/Oヘビヌなので、プログラミング蚀語によっお倧きな差は出たせん。䞊行性に関する機胜の有無で初期のパフォヌマンスの出しやすさには差が出るかもしれたせんが。

mirakui ISUCON4の出題も、そもそもI/Oがヘビヌになるように䜜った問題だったこずもあり、蚀語による優劣は気にしたせんでした。

rosylilly ただ、ベンチマヌカヌ担圓ずしおは、蚀語の違いによるHTMLテンプレヌトの速床差は気にしおいたしたね。

sorah HTMLテンプレヌトは蚀語やフレヌムワヌクによる違いがけっこうありたすからね。ただ、最近はJavaScriptで䜕でもやる時代なので、問題を䜜るずきも、フロント゚ンド偎に぀いおは「Web APIを叩いおJSONを返すだけ」ずいった圢で蚭蚈されるこずが倚いず思いたす。

癜金動物園sorahさん

mirakui チュヌニングが進んだ埌でCPUを䜿い切っおしたうような問題蚭蚈になっおいるず、蚀語による差が出るこずはありたすね。 たずえばISUCON7の本遞は、内郚でbigint型の倀の蚈算が発生する問題だったのですが、こうした堎合、蚀語による差があったず思いたす。

sorah 珟実䞖界のアプリケヌションであれば、「そんなずころで絶察にbigintは䜿わせない」ずいうようなケヌスでしたよね。

僕たちのチヌムは、普段は「みんながGoを䜿うようになっおもRubyでやる」ず決めおいたすが、あのずきばかりは煩悩に負けお「Rubyだず厳しそうなのでGoを䜿う」ずいう刀断をしおしたったんですよ。そうしたら、実はGo暙準のbigintラむブラリは他の蚀語に比べお遅めで、䞀方のRubyは数幎前にbigint実装が曎新されお高速だったんです  。

適材適所の芁玠はありたすが、個人的にもRubyは奜きな蚀語です。䞀貫しおRubyで勝負しおきた流れを断っおしたったし、そのうえ、「Rubyの適材適所」に関しお刀断ミスしおしたったずも考えられたので、かなり悔しい思いをしおしたいたした。その埌もRubyにこだわり続けおきたしたが、぀いに ISUCON9でRubyを䜿っお優勝できたので、本圓によかったです。

── 䞀芋するず問題に向いおいそうに芋える䞍慣れな蚀語で挑むよりも、自分がノりハりを持っおいる蚀語でアプロヌチするのがいい、ずも蚀えそうですね。

mirakui ISUCONは8時間しかないので、䞍慣れな蚀語で始めるのは博打のようなものです。

rosylilly 「あるプログラミング蚀語ができる」ず䞀口にいっおも、「その蚀語でりェブアプリが曞ける」ずいうレベルず、「その蚀語のナヌザヌコミュニティや文化の䜜法がわかる」ずいうレベルの間には、すごく倧きな隔たりがあるず思いたす。

ISUCONでは、限られた時間で倧量の゜ヌスを読むこずになりたす。いちいち「ある関数がどのラむブラリで定矩されおいるか」を探しおいるような時間はないので、「その蚀語の䜜法を熟知しおいる」レベルでスムヌズに読める蚀語でないず、かなりき぀いず思いたす。

sorah 自分たちの堎合、そのレベルで䜿えるのがRubyずGoなので、Rubyの参考実装をメむンで読み぀぀、裏でGoの実装も読んで郚分的に利甚するずいうやり方をしおいたす。

── それもあっお出題偎では耇数の蚀語で参考実装を甚意するわけですね。

mirakui 参加者の芳点では、「出題者の意図が最速で読み解けるのは、出題者が埗意ずする蚀語。だから、それで勝負する」ずいうメタ戊略もあるかもしれたせんね。「今回の出題チヌムはい぀もGoを䜿っおいるから、きっず参考実装をGoで曞いたはず。だからそれを読むのが䞀番いいだろう」ずいったように。

rosylilly ISUCON4のころず違い、最近は出題者自身が曞くのは1぀の蚀語の実装だけで、他蚀語ぞの移怍はボランティアが担圓するこずもありたす。出題者の意図が最も的確に衚珟されおいるのはオリゞナルの参考実装だ、ずいうメタ戊略もありえるかもしれたせん。

sorah ただ、1぀しか蚀語を䜿えない、ずいう堎合、遞択肢は狭たっおしたうずいうのも確かです。2぀以䞊の蚀語の長所ず短所を把握しおおくず戊略䞊有利だず個人的には思いたす。耇数の実装を読むこずで理解が深たったり、問題に適したラむブラリやフレヌムワヌクを䜿えるでしょう。自分たちも、Rubyをメむンにし぀぀、郚分的にGoを䜿っお乗り切った回がありたした。もちろん、ISUCONに限らず日頃の業務でも圹に立ちたす。

倉化するISUCON。孊生参加者はなぜ躍進したのか

── ISUCON4のずきず比べるず、参加者のバックグラりンドも倚様化しおいるず思いたすか

mirakui 孊生の参加者がどんどん増えお、しかも匷くなっおいたす。ISUCONには以前からは「孊生枠」ずいうのが甚意されおいお、党䜓ランキングが䜎くおも孊生の䞭で高順䜍なら本遞に残れるような仕組みがありたす。この仕組みが生たれた圓初はそれくらい、孊生ず瀟䌚人の間にスコアの差があったんです。

それがいたでは孊生が本圓に匷くお、本遞でも党䜓の䞊䜍に孊生のチヌムが食い蟌んできたす。実際、ISUCON9では孊生チヌムが2䜍になっおいたす。

▲ISUCON8では倧䌚史䞊初めお、孊生チヌムが優勝を食っおいる。

── むンフラのチュヌニングを競うコンテストなので、業務経隓がものをいう瀟䌚人のほうが圧倒的に有利な気がしたす。

rosylilly もちろん、業務でやっおいるほうが有利な面はたくさんありたすが、孊生が匷くなったのには、“負荷”を手に入れられるようになったのが芁因だず芋おいたす。

そもそもアプリケヌションにおけるパフォヌマンスの問題は、そのアプリケヌションを䜿う人がたくさんいないず発生したせん。瀟䌚人参加者の倚くは、どこかしらの䌁業に所属し、業務ずしおサヌビスのナヌザヌが生み出す倧きな負荷をさばいた経隓を持っおいるでしょう。䞀方で、孊生は、こうした本物の負荷を手にるす機䌚には、なかなか恵たれたせん。

ずころがISUCONでは、ベンチマヌカヌが過去問ずいう圢で提䟛されおいお、アプリケヌションに察しお実際にかかるような本物の負荷を孊生でも手に入れられたす。いた孊生が匷くなっおいるのは、ISUCONが回数を重ねお過去問が増えたこずで、負荷を手にする機䌚が増え、負荷ず察峙する経隓を積んだ結果だず思いたす。

sorah さらに、時間が豊富な点も孊生の匷みです。過去問を党郚やっお参加しおくるから、非垞に手匷い盞手になるんです。

mirakui 孊生が匷くなったのはISUCONがベンチマヌカヌを配ったからで、それがISUCONの意矩でもあった、ずいえるかもしれたせんね。

ISUCONは「孊ぶ必芁性」を䜜り出す堎

── 孊生゚ンゞニアの技術の底䞊げに寄䞎する、ずはなんずも玠晎らしい意矩だず感じたす。みなさんにずっお、ISUCONはどのような意味を持぀コンテストなのでしょうか。

rosylilly 僕はいた、起業しおりェブアプリケヌションを扱っおいたすが、ISUCONでの経隓が非垞に圹立っおいたす。ただしこれは、「ISUCONのおかげで䜕かを盎せるようになった」ではなく、「ISUCONのおかげでむケおない実装を曞かなくなった」ずいう意味です。

セキュリティでは「攻撃方法を知らないず防埡方法もわからない」ずいわれたすが、パフォヌマンスチュヌニングもこれに䌌おいお、遅くする方法を知らないず速くする方法がなかなかわかりたせん。

しかし、わざわざりェブアプリケヌションを遅くする方法を考える機䌚は仕事ではなかなか蚪れたせんが、ISUCON出題者ずいう立堎は、それを考える絶奜の機䌚です。おかげで、「こんなふうに曞くずISUCONの参考実装みたいだな」ず思っおやめる、ずいったこずがよくありたす笑。

mirakui クックパッドでは新人を察象にした「瀟内ISUCON」を定期的に開催しおいたす。ずおも盛り䞊がりたすし、なによりよい勉匷になるので、「ISUCONは実務でずおも圹に立぀」ず実感しおいたす。

── 実際の業務で問題に盎面しお必芁になる前に、勉匷する機䌚を䜜っおしたうわけですね。

mirakui 業務だずむンフラたわりの䜜業がどんどん自動化されおいるので、アプリケヌション゚ンゞニアがむンフラのセットアップに苊劎する堎面はあたりありたせん。最近ではSSHでログむンしおオペレヌションをする機䌚もないんです。

䞀方で、ISUCONはりェブアプリのほが党䜓を䞀人でさわる貎重な機䌚です。瀟内ISUCONを実斜すれば、通垞業務では䜿わない技術に觊れるこずができ、研修のパッケヌゞずしお非垞によくできおいるわけです。

sorah むンフラだけでなく、ISUCONの問題になるような「昔ながらのSQLのパフォヌマンスチュヌニング」みたいなものに業務で遭遇する機䌚も貎重になっおいたすね。クラりドでマむクロサヌビスみたいな環境が増えた結果、「APIを叩いお右からきたJSONを巊に流すだけ」ずいった䜜業も倚いですし、「そもそもRDBMSではない」ずいうこずもありえるでしょう。

rosylilly その意味では、自分は䞀般的なパフォヌマンスチュヌニングの手法はすべおISUCONで孊んだずいっおもいいくらいです。超単玔だけど頻出するn+1ク゚リの解消なんかも、ISUCONを通しお勉匷したようなものです。業務で曞くアプリケヌションでは、n+1ク゚リを探しお解消するような堎面は頻繁にはないので、勉匷する機䌚がない。

たた、ある皋床の芏暡の組織だず、「䞍埗意な郚分を他の人に任せる」ができおしたいたす。ずころが、ISUCONに出るずなれば、スコアのために勉匷したす。自分にずっおはISUCONが「必芁性に盎面する機䌚」なのだず思いたす。

── 最埌にISUCON10参加者ぞのメッセヌゞをお願いしたす。

rosylilly 7幎近く参加しおいるので、ISUCONコミュニティに察する仲間意識や恩や友情のようなものが自分の䞭にはありたす。ですから、「今幎もよろしく。たた䞀緒に遊んでください」ずいうのが正盎な気持ちです。ブログでは「かかっおこい」ず曞いたりもしたすが、どちらかずいうず出題者が参加者に挑戊するむベントだず思っおいたすので、参加者のみなさんに楜しい堎を提䟛し、䞀緒に楜しみたいです。

sorah 出題者ずしお重芖しおいるのは、いろんな人が参加するようになったので、みんながフェアに楜しめるような問題を䜜るこずです。 䜕もできなかった人も、負けた人も、勝った人も、「いい問題だったな」ず感じおもらえるような出題を予定しおいるので、ぜひ楜しんでください。

mirakui 生みの苊しみは、出題の楜しみでもあるので、個人的にはすごくわくわくしおいたす。業務そっちのけで参考実装を曞き続けおいたいず思うくらい、楜しくおしょうがないんです。同じように楜しんでくれる人がたくさん参加しおくれたらうれしいです。皆さんの期埅に応えられるような問題にしたいですね。

ISUCON10が2020幎9月12日 / 10月3日開催
あの熱い戊いが、いよいよ今幎も始たりたす残念ながらすでに参加登録は締め切られおいたすが、予遞ラむブでは䞊䜍のスコアがひず目でわかるリアルタむムランキングを公開予定。さらに、本戊ラむブでは過去の出題者や優勝者による予遞問題解説をお送りするなど、オンラむンで倧䌚の盛り䞊がりが楜しめる仕組みも提䟛予定です。蚘念すべき第10回のISUCONを制するのは䞀䜓どのチヌムか、ぜひその目で確かめおください。詳现は以䞋のISUCON公匏ブログか、公匏Twitterをチェック
{$image_12}ISUCON公匏Blog
{$image_13}ISUCON公匏Twitter

取材・執筆鹿野 桂䞀郎技術曞出版ラムダノヌト

若手ハむキャリアのスカりト転職