#FlattSecurityMagazine

セキュリティとプロダクト開発の今を伝えるメディア

本選のみ開催のISUCON13、問題はどう変わる? 作問チームが語る”問題に込めた思い”

Webアプリケーションのチューニングコンテスト「ISUCON13」が、いよいよ2023年11月25日(土)に開催されます。

サイバーセキュリティスタートアップのFlatt Securityは、今回ISUCON13にメディアスポンサーとして初協賛。プロダクト開発コミュニティにおける国内最大級のイベントであるISUCON13を盛り上げるべく、#FlattSecurityMagazineにて、ISUCON13の見どころやISUCONの魅力を発信していきます。

予選はなく、本選のみの一本勝負となるISUCON13。問題構成や内容に変化はあるのか、注目が集まっています。問題作成に携わる、さくらインターネット株式会社の長野雅広さん、穎川和弘さん、菅原大和さんの3人に、ISUCONに関わり始めたきっかけや作問の裏側、ISUCON13の”傾向と対策”についてお話を伺いました。

プロフィール

長野雅広さん
さくらインターネット株式会社 クラウド事業本部 SRE室 室長。大学在学中から京都でスタートアップに参加。2006年に株式会社ミクシィに入社し、2010年に株式会社ライブドアに転職。Webサービスのチューニングコンテスト「ISUCON」の創設に関わる。2015年に株式会社メルカリに入社し、SRE組織の立ち上げに携わり、2021年1月より現職。著書に『達人が教えるWebパフォーマンスチューニング 〜ISUCONから学ぶ高速化の実践』(共著、技術評論社)

穎川和弘さん
さくらのクラウドIaaSバックエンドの開発に従事し、主に物理機器を制御するソフトウェアおよび基盤開発を行う。これまでのISUCON競技参加者としては予選止まり。ISUCON9の本選が初作問。今回で作問は2回目。

菅原大和さん
2022年4月にさくらインターネット株式会社に新卒入社。学生時代のインフラやKubernetesエコシステム開発経験をもとに、SRE室創設時からサービスの信頼性向上に貢献。

「さくらのクラウド」のパフォーマンス向上に関わるメンバーが作問を担当

ーーISUCON13作問チームの皆様は、普段どのようなお仕事をされていますか?

長野:さくらインターネット株式会社のクラウド事業本部にあるSRE室で室長を務めています。

クラウド事業本部は、IaaSを中心としたクラウドサービス「さくらのクラウド」の開発・運用を行っている部門で、今回この取材に出席したメンバー全員がこの部門に所属しています。私はSRE室の責任者として、SREのプラクティスを自らも実践しながら各チームへ導入していく活動を進めています。

菅原:長野さんと同じく、SRE室に所属しています。社内の開発者体験を向上することで、最終的にはサービスに対するユーザーからの信頼性を向上させたいという思いから、SREの文化を社内に浸透させるための仕組み作りを進めています。

現在は、長期間に渡って運用されているサービスを対象として、信頼性向上につながるようなサービスの刷新や仕組み作りができないか、調査をしながら検討を進めているところです。

穎川:私はさくらのクラウドのバックエンド開発を行っています。バックエンド開発の中でも、特に物理機器の操作を中心に担当する場合が多いです。

お二人とは異なるチームに所属していますが、定例の場で日常的に意見交換をしていますし、サービスの設計検討や開発を進める際にはかなり密に連携しています。

ーー日常的な業務の場でもよくやり取りされているのですね。ISUCON13の運営にはどのようなメンバーがいらっしゃいますか?

長野:ISUCON13の運営は、22人のメンバーで進めています。LINEヤフーさんから3人、さくらインターネットから12人が運営に参加しており、その他各言語への移植を担当するメンバーが5人、アドバイザーの方が2人いらっしゃいます。

アドバイザーは、面白法人カヤック SREの藤原俊一郎(@fujiwara)さんと株式会社PRTIMES CTOの金子達哉(@catatsuy)さんにお願いしています。お二人は「ISUCON本」の共著者でもあります。

gihyo.jp

穎川:運営メンバーのうち、8人が作問チームで活動しています。作問チームでは、問題を作るだけではなく、ポータルサイトやベンチマーカーなど、問題を解くのに必要なコンテンツの準備も進めています。

ISUCON13のポータルサイト

ーーISUCON13の運営にどのような形で関わっていますか?

長野:ISUCON13では作問をメインで担当しています。コードを書いて、実際に問題を作る作業については穎川さんと菅原さんのお二人にご担当いただいています。

今回はさくらインターネットが問題作成という形でスポンサーを務めているので、スポンサー企業側の立場としても参加しています。

穎川:私は作問の中でも、Webアプリケーションやベンチマーカーの実装を中心に担当しています。

作問チームのタスクは多岐に渡るので、チームの作業進捗に応じて、作問チームのメンバーを集め、作問の方向性や各メンバーの分担を話し合う場を作るようにしています。全員で議論する場合もあれば、特定の分野のメンバーだけに絞って、より特定の事項のみ議論することもあります。かなり臨機応変に場を設定しています。

菅原:私は、そのようなコンセプトや方向性の議論の結果を踏まえて、問題をコードに落とし込んでいく作業を担当しています。

ISUCONを創設し、草創期を支える

さくらインターネット株式会社クラウド事業本部SRE室室長 長野雅広さん

ーー長野さんはISUCONの創設に関わられていますが、どのような経緯で始めたのでしょうか?

長野:13年ほど前に、当時livedoorの同僚だった田籠聡(@tagomoris)さんから、現在のISUCONの元となるアイデアをいただいたことが発端でした。私もそのアイデアに乗り、田籠さんと二人で当時同僚だった櫛井優介(@941)さんに相談したことで、実現に結びつきました。

▼櫛井さんがISUCONの歴史や魅力について語っている記事 gihyo.jp

初回と2回目、9回目の予選で作問を担当しました。ゼロから問題や環境を作っていかなければならない状況だったので、初回は田籠さんと2人で全て対応したのですが、本当に大変でした。

2回目になると運営メンバーも増え、4人になりました。インフラ構築や作問の対応ができるメンバーが加わったので、私はベンチマーカーやアプリケーションの実装をメインで担当していました。

ーーISUCON3以降は出場もされています。

長野:ぜひ他の人にも作問を経験してほしいと思い、ISUCON3からは、初回と2回目で連続優勝した藤原さんが所属する面白法人カヤックさんに作問をお願いしました。

3回目以降は、予選で作問を務めた9回目を除きすべて出場してきました。

ーー出場を経験されて、作問への向き合い方は変わりましたか?

長野:ISUCON3と4では優勝しましたが、その後は予選落ちも経験しました。その時は自分で予想していた以上にかなり凹みましたね。

そういった経験を乗り越えて、ISUCON9の予選で作問を務める中で、「周りの人をより巻き込んでISUCONを盛り上げること」が自分にとっての目標になりました。今年の作問チームには、去年一緒に出場したメンバーもいます。そういった小さなところからISUCONの輪を広げていけたらな、と思っています。

CTFプレイヤーがISUCONに注目した理由

さくらインターネット株式会社クラウド事業本部シニア・ソフトウェアエンジニア 穎川和弘さん

ーー穎川さんは、どのようなきっかけで運営に関わるようになったのでしょうか?

穎川:大学生の時、「ISUCONという面白いコンテストがあるらしい」という話を友人から聞いて、興味を持ったのがきっかけでした。

当時はたまにCTFに参加していたので技術系のコンテストへの興味がありましたし、小規模な技術系のオフラインイベントの運営をしたり、サーバーを見る機会が多かったりしたこともあり、ちょうど関心が高まっていたタイミングでもありました。「一回出場してみよう」という話になり、友人たちとチームを作ってISUCONに出場したのが最初でした。残念ながら本選への出場経験はないのですが、その後も2、3回ほど出場しています。

その後、縁がありISUCON9でベンチマーカーの実装や作問に携わらせていただきました。今回のISUCON13で、作問を務めるのは2回目です。

ーー穎川さんはCTFプレイヤーだったのですね!CTFとISUCONは性質の異なるコンテストだと思いますが、CTFプレイヤーとして、ISUCONのどのようなところに魅力を感じましたか?

穎川:CTFには色々なジャンルの問題がありますが、昔はネットワークに関する問題もありました。サーバーレイヤーのネットワークに関する知識がないと解けないような問題ですね。今思うと、私自身もそのような問題が好きだったので、当時からインフラ領域への関心が強かったのかもしれないですね。

ISUCONの問題を解く中では、パフォーマンスを向上させるために、思い切った戦略を取る必要が出てくる場面もあります。そのような場面では、普段は書かないようなコードを書くことも多いですね。日常的な開発では得られない経験ができるので、かなり刺激を受けた覚えがあります。

自分で実装しているアプリケーションに対する新たなアイデアも湧いてきたので、本当に自分にとって良い経験になったと思います。

ーー出場チームから作問チームに回ったことで、ISUCONへの向き合い方は変わりましたか?

穎川:競技者として出場していた時には、見えないところが結構多かったので、気になっていました。

コンテストでは、各チームに割り当てられた問題サーバーを調整していくことで、パフォーマンスを向上していきます。問題の仕様が決まっている一方、ベンチマーカーがブラックボックスとして用意されているので、自チームのアプリケーションに対してポータルからベンチマークを仕掛けるという流れになります。

もちろん問題を解くのも楽しんでいましたが、「問題やそれに付随する環境をどのように作っているのか」ということがとても気になってしまい、次第にそちらの方に気が向くようになってしまいました(笑)。そのため、ISUCON9で作問に関わる機会をいただけた時には、ずっと知りたかった問題の裏側を知ることができ、感慨深かったです。

ボトルネックがどのように作られているかといった情報や、ベンチマークのふるまいなどについてはレギュレーションの中にも明記されてはいるのですが、出場者として参加していた際は、正しい意図を読み取れていませんでした。やはり出場チームと作問チームとでは、情報量が圧倒的に異なりますし、ISUCONというイベントや問題に対する見方はかなり変わりました。自分の中で解像度が高まりましたし、出場チームとして参加していた頃よりは着実にレベルアップしているように感じます。

出場未経験から作問に初挑戦

さくらインターネット株式会社クラウド事業本部 菅原大和さん

ーー菅原さんはどのようなきっかけで運営に関わるようになりましたか?

菅原:学生時代からISUCONの存在自体を知ってはいたものの、私の場合はISUCONへの出場経験も作問経験もありませんでした。今回、長野さんから作問チームのメンバーとしてお声がけいただいたことがきっかけで、初めてISUCONに関わることになりました。

長野:菅原さんは2022年卒として、弊社に新卒入社されました。コードライティングや仕様理解のレベルが高く、SRE室で進めているいくつかのプロダクトにコミットし、開発を牽引しています。

ISUCONの作問をするには、大量のコードを書かなければなりませんので、ぜひ作問チームのメンバーに加わってサポートしてほしいと思い、お声がけしました。また、これまでISUCONへの出場経験がないということもあり、作問に新たな観点をもたらしてくれるのではないかという期待感もあります。

ーー菅原さんはこれまで出場経験がなく、作問担当も今回が初めてとのことですが、ISUCONに関する知識や作問に必要な知識をどのようにインプットされていますか?

菅原:これまでの優勝チームによる解説記事や過去問などを参照しています。今回アドバイザーとして関わってくださっている金子さんのprivate-isuは特に活用させていただいています。過去問を解いたり、問題を作ってみたりすればするほど、ISUCONへの関心や理解が強まり、活動のモチベーションになっているように感じています。

競技性の高さを維持するのはもちろんのこと、参加者が楽しく解けるような問題を作ることが今の目標です。

初回からずっと受け継がれているISUCONの作問の特徴

ISUCON13作問チームの打ち合わせ風景

ーーISUCON13の作問はどのように進めていますか?

穎川:基本的な問題構成は例年と同じなので、Webアプリケーションと、それに計測を仕掛けるベンチマーカーに加え、出場チームの方々が操作するポータルやフロントエンド、そしてそれらを支えるインフラなどの環境が必要になります。そういったさまざまなコンポーネントごとに担当を割り振って、準備を進めています。

私はISUCON9でベンチマーカーの実装を担当していましたが、今回はベンチマーカーを中心に、Webアプリケーションの実装を菅原さんと分担しながら担当しています。

ーー作問チームのメンバーはどのような方が多いですか?

穎川:バックエンドエンジニアが多いですね。

一方、フロントエンドに特化して担当しているメンバーもいます。フロントエンドの画面は、アプリケーションの仕様を理解するには必要不可欠になっていますので、欠かせない要素の1つです。

また、菅原さんのように「今回が初めての作問」というメンバーも3人います。新しいメンバーも加わり、長野さんがお話していたように「ISUCONの輪を広げる」ことができているように感じます。

ーー初回から技術トレンドが大きく変わり続けている中で、ISUCONの作問はどのように変化したと感じますか?

長野:全体としてボリュームが増加傾向にありますよね。そのため、作問に対する負荷も年々増しているのではないかと思います。

一方、ISUCON13ではベンチマーカーの実装に関するノウハウの引き継ぎや、アドバイザーのお二人のご協力もあり、全てをゼロベースから作る必要はありませんでした。ノウハウの蓄積や共有をする仕組みができつつあり、良い変化が起きているように感じます。

穎川:私がISUCON9でベンチマーカーの実装を担当した時は、ベンチマーカーに対する私自身の理解不足もあり、既存のものを参考にしながら、試行錯誤してなんとか形にしていきました。今回は「ドタバタ感」がかなり緩和されたように思います(笑)。

ーー逆に、初回から受け継がれていることもありますか?

長野:作問チームの会社が普段抱えている悩みや課題が問題に盛り込まれるという点ですね。初回から今まで変わらず受け継がれていて、ISUCONが面白くなる要素の1つだと思っています。

ISUCON13の問題の特徴は?

ーーいよいよISUCON13が迫ってきました。ネタバレにならない範囲で、今回の作問内容やその意図について教えていただいてもよろしいでしょうか。

穎川:今回は予選と本選が一体化され、1回勝負になっているので、レベリングに一工夫入れています。

また、問題も例年以上に幅広くなっているのが特徴だと思います。今回も、短時間のうちに多くの方に応募いただきました。出場チームは3回に分けて募集しましたが、中には200枠が45秒で埋まってしまう回もありました。参加者数も多く、幅広い層の方に参加いただけると思うので、より多くの方に楽しんでもらえるような問題を目指して問題の内容の幅を広げました。

とはいえ、奇抜な問題が出るわけではありません。ISUCONの核となる競技性は維持しつつ、出場者の方に楽しんでもらえるような新要素を追加している形です。出場チームが解いて楽しいと思えるレベルの内容にまで昇華させられるよう、意識して取り組んでいます。

長野:穎川さんが先ほどお話していたとおり、「多くの方にとって取りかかりやすい内容で、かつ差がつきやすくなる問題を作る」ということには特に力を入れています。それを目指して準備を進めてはいますが、まだまだ細部については詰める必要があるなと感じています。

ーー作問する中で苦労したことはありますか?

菅原:個人的な話になりますが、実はISUCONの作問だけでなく、バックエンド開発も未経験だったので、独学で知識を身につけながら問題の実装を行っていきました。「ISUCON本」や過去問、過去の出場チームのレポートなどを参考にしましたが、形になるまで苦労しましたね。

また、「安定して遅く動く」コンポーネントを作るのも大変でした。問題のコンセプトをしっかり固めて作ることを前提に、遅くなることを保証するためには、参加者が行うプロセスと同様に、私たちも計測と原因の特定をする必要があります。また、参加者の多様な解法を歓迎しつつも、作問側としてしっかり問題を解消できる解法パターンを用意しなければなりません。

これはWebアプリケーション側だけでなく、ベンチマーカー側でも同様です。Webアプリケーションに計測を仕掛ける度に挙動が変わるのではなく、毎回同じようにスコアが出るような仕組みを作らなければなりませんでした。実装には苦労しましたが、難しかったからこそ、面白さも感じました。

ISUCON13出場チームへのメッセージ

ーー最後に、ISUCON13に出場するチームの皆さんに向けて、メッセージをお願いします。

長野:先程もお話したように、ISUCONの問題には出題企業が直面した壁や課題が色濃く反映されています。

今回作問を担当するさくらインターネットには、わかりやすい形で提供しているWebサービスはありません。そのため、問題のネタ出しを始めた当初は、何を題材とするか非常に悩みました。しかし、検討を重ねる中で、自分たちが悩んできた課題をエッセンスとして取り込めたように感じています。出場チームの皆さんには、そういった部分をぜひ楽しんで、そして苦しんでいただけたらなと思います(笑)。

ISUCONのように8時間集中して1つの課題に取り組むことは、なかなかできない経験です。1人で出場されている方もいらっしゃいますが、多くの方はチームで出場されていますので、チームでのコミュニケーションや情報共有を通じて、様々な学びができる機会にもなると思います。普段できない経験ができる機会として捉えて、ぜひ前向きにチャレンジしていただけたら嬉しいです。

穎川:Webアプリケーションには、業務で経験したことや実際の業務の中で起こりそうな要素を盛り込んでみました。また、問題の幅を広げる中で、新しい要素の問題も追加しています。そのあたりを出場チームの皆さんに楽しんでいただけたら嬉しいです。

菅原:具体的な内容は伏せますが、今回題材になっているサービスには昨今流行っているものを取り入れているため、参加者の方も親しみを持って問題に取り組めるのではないかと思います。

また、今回は本選のみの開催になることもあり、問題はボリューム感のある内容に仕上がりました。問題の幅も広いので、初心者の方から上級者の方まで幅広い方に楽しんでいただける内容になったのではないかと感じます。間口の広い問題ですので、ぜひ楽しんでください。

(取材・文/寺山ひかり)

ISUCON13は11/25(土)開催!!

ISUCON13は以下のスケジュールで開催予定です!

  • 11月25日(土)10:00-18:00 ISUCON13本選
  • 同日19:30から結果発表予定

※最新のスケジュールは公式サイトをご確認ください。

isucon.net

初となる本選のみの開催。優勝賞金100万円を受け取るのはどのチームなのか、熱い戦いの行方を見届けましょう!