お題となるWebサービスを限界まで高速化を図るチューニングバトル「ISUCON」。11回目となる「ISUCON11」の本選は9月18日に開催され、598チームのなかからオンライン予選を勝ち抜いた30チームが熱い戦いを繰り広げる予定です。今年は新しい取り組みとして、運営に学生が参加。昨年のISUCON10では2位、3位を受賞、あまりに強すぎて「一体何者?」と話題になり、そしてISUCON11では出題者として参加している学生サークル「traP」のメンバーに、traPがなぜ強いのか、運営になって分かった「ISUCON必勝法」について聞きました。
ISUCONで上位入賞した学生サークル「traP」の強さの秘訣とは?
――まず、traPの皆さんの自己紹介をお願いします。
temma:temma(てんま)です。東京工業大学 生命理工学系の3年生です。大学ではあまり情報系に関することをしていませんが、「デジタル創作同好会traP(トラップ)」というサークルに所属し、SysAd(シスアド)班という部内サービスの開発・運用をするチームでリーダーをしています。
翠:翠(みどり)です。僕は東工大 情報通信系の3年生で、traPでは、temmaくんと一緒にSysAd班のリーダーをしています。
りょは:りょはです。東工大 電気電子系の3年生です。僕もtraPのSysAd班で開発をしています。
――皆さんが所属している「デジタル創作同好会traP」はどのような団体なのでしょうか?
temma:デジタル創作同好会traPは東工大のサークルです。ゲーム制作やアプリ開発、音楽制作やグラフィックスなどのクリエイティブ系のほか、競技プログラミングやCTF(Capture The Flag)、SysAd班などのプログラミング系まで、デジタルなものづくりに関して幅広く活動しています。現在のサークルのメンバー数は約400人です。
――幅広く活動されてるサークルなんですね。traPは、ISUCONにもこれまで参加されていたそうですが、いつから、そしてなぜ参加するようになったのでしょうか?
翠:ISUCON7から参加していたようです。それからは毎年参加し、そのすべてで本選に出場できました。
temma:当時はメンバーが少なく、実績もない状態だったので、大学の公認サークルになるために、いろいろな大会に参加していたという背景があったそうです。
例えば、ICPC(国際大学対抗プログラミングコンテスト)のような競技プログラミング大会や、情報セキュリティコンテストの「SECCON」、国内のCTFの大会など、いろいろなコンテストに出ていくうちに「ISUCONっていうのがあるらしいぞ」ということで出場するようになったみたいですね。
翠:結果として、かなり短い期間で公認化されましたね。
――昨年のISUCON10では、temmaさん、翠さん、りょはさんは「がんもどき」というチームで出場し、本選3位を受賞しました。さらに本選2位もtraPからのチームでしたが、traPはなぜこんなに強かったのでしょうか?
temma:traPが上位入賞できた理由には、部内に知見が溜まっていたこと、部内ISUCONをやったこと、日頃の活動が役に立ったことの3つの軸があると思っています。
部内の知見については、過去出場した人が外部には公開していないようなISUCON対策情報や、サーバーチューニングの方法を部内Wikiに書いて共有してくれています。過去問について、出題の典型例やこんなボトルネックにはこうすると良い、といった情報がまとまっているので、時間的に全部の過去問を解くのが厳しくてもWikiを読めば勘所をつかめるようになっています。
また、部内ISUCONについては過去にブログでも紹介しているように、ISUCONの過去問を使ったPISCONと言う部内向けの大会を開催しています。制限時間をISUCON本番の8時間より長い1週間程度に設定し、各自が参加できるタイミングで問題に挑戦してもらいました。
翠:日頃の知見については、ISUCONで使う環境に近いような環境で、部内のサービスが動いてることがあると思います。
企業でサービスを作ったりする場合は、リソースが強かったり、Kubernetesなどのモダンな環境を使ったりしていると思うのですが、traPだと1GBや2GBしかないVPSの上で、いろいろなサービスを動かしているんですよね。
temma:普段から、ISUCONによく似た素朴な構成・要素技術でサービスを運用しているので、そういったところの基礎的な知識があるというのは強みかなと考えています。
――traPは大学のサークルということで、そこまで強いインフラが使えない中で工夫してきたことや、自分で1からインフラやシステムを構築してきたことがISUCONで生きているんですね。traPではISUCONに出場するにあたってどのような準備をしてきたのでしょうか?
temma:まずは、ISUCONの開催について部内SNSでお知らせしますね。自発的にチームを組んで出場する人もいますが、興味はあるけどどうやってチームを組もうかという人は多いので、とりあえず参加者を募って僕の独断と偏見でチームを組みます。その後、部内で講習会を開いて、サーバーチューニングのやり方やボトルネックとなる場所、パフォーマンスの計測方法などを知ってもらいます。パフォーマンスチューニングのやり方が分かったら、部内ISUCONでみんなと競い合いながら、チームとしての連携も含めた実戦をこなしてもらいます。あとは各自、ISUCONに向けて準備していくという感じですね。
――学生だからこその強みはありますか?
temma:やっぱり体力はあると思います。深夜3時までISUCONの過去問を解くみたいな無茶ができますからね。他には、社会人で普段からパフォーマンスチューニングの経験のある方だと、勘で改善を入れたりできるのですが、学生は勘が働かないからこそ逆に計測結果に忠実に改善を入れていくので、そこは有利に働く部分かなと思います。勘が刺さるところもあるので、一概には言えないのですが。
あとは仲の良さもあると思います。コミュニケーションの長さや密度、フランクさは仕事に比べると高いはずで、それ故に共有されている技術的なコンテキストが多かったり、意思の伝達コストが小さかったりするのは有利に働く部分だと思いました。
- 関連リンク
この記事は参考になりましたか?
- この記事の著者
-
近藤 佑子(編集部)(コンドウ ユウコ)
株式会社翔泳社 CodeZine編集部 編集長、Developers Summit オーガナイザー。1986年岡山県生まれ。京都大学工学部建築学科、東京大学工学系研究科建築学専攻修士課程修了。フリーランスを経て2014年株式会社翔泳社に入社。ソフトウェア開発者向けWebメディア「CodeZine」の編集・企画・運営に携わる。2018年、副編集長に就任。2017年より、ソフトウェア開発者向けカンファレンス「Developers...
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア
