社内ISUCON実施!運営チームに感想を聞いてみた
「ISUCON」とは、LINE株式会社が運営している“お題となるWebサービスを、決められたレギュレーションの中で限界まで高速化を図るチューニングバトル”を行う大会。
そんなISUCONをサイゲームスでも……!ということで、第1回社内ISUCON「CY-ISUCON1(読み方:サイ イスコン)」が開催されました
今回は運営を務めた社内の若手エンジニアの2人に、CY-ISUCON1の運営について聞きました。
※「ISUCON」は、LINE株式会社の商標または登録商標です
- サーバーサイドコウヘイ
- ゲーム会社で新規アプリのサーバー担当後、2019年4月に第二新卒してサイゲームスに入社。サーバーサイドセクションに所属し、各タイトルの負荷試験、内製フレームワークやサーバレスなフォーム開発等に携わる。
- インフラシュンヤ
- 2019年に新卒としてサイゲームスに入社。インフラセクションに配属後、共通基盤チームのメンバーとして部署内外のさまざまなツール開発に携わる。得意分野はサーバーレスアプリケーション。
「ISUCONを広めよう!」
開催の経緯と目的
最初に、CY-ISUCON1の開催経緯と目的について教えてください。
コウヘイ 実は「社内ISUCONをしよう!」という話は、2020年10月頃にサーバーサイドですでに出ていたんです。私は数年前から本家ISUCONに出場しているのですが、チームで行っているライトニングトークで「ISUCONで爆死してきました」「今年の問題は……」という話をしていたら、マネージャーから「社内でやってみたら面白そうだね」となったのが最初ですね。
そこから開催できそうな時期を考え、2021年7月から準備をし10月下旬の丸1日をかけて社内エンジニアを対象に実施することにしました。大会には2人1組で臨んでいただきますが、応募は1人でも可能で、1名で応募した方については運営の方で他の参加者とチームを作る形で対応しました。
シュンヤ 僕も元々ISUCONには興味があり、運営の話をいただいたときは喜んで受けました。また、今年の本家ISUCONには同期の3人で初出場させていただきました。予選落ちしてしまいましたが、とても勉強になるところが多く、「これは絶対に社内で成功させたい!」と思いましたね。大変ではありますがとても面白かったので!
コウヘイ ISUCON、楽しいですよね!今回、運営を引き受けるにあたり「ISUCONを布教しよう!」という目的を勝手に作っていたので、裏テーマとして「いかに参加者がISUCONに興味を持つようになるか」を考えていました(笑)。
シュンヤ そんな目的があったんですね(笑)。
社内的な開催目的としては、エンジニア間の交流と技術力向上の2点です。コロナ禍の影響で、エンジニア同士の交流がリアルの場でできなくなり、なかなかイベントの実施等もなかなか難しいという状況がありました。そこで、新たな交流の場を設けるために、今回2人1組で挑戦できるようにし、終了後は参加者全員で話ができる「感想戦」を用意しました。
「出場したい」と思えるように
社内アナウンスを徹底
あらためて、それぞれの運営での役割を教えてください。
シュンヤ 私は大会中に使うポータルサイトやベンチマーカー(参加者による高速化の結果を測る道具。チューニングされたWebサービスの速さを数値化し、点数に変換するためのシステム)のインフラ構築など、全体を裏側で支えるような仕事を担当しました。
コウヘイ 社内周知や実際の参加者が使うサーバーの用意などのセットアップを行いました。ただ、どちらがどうという役割はないので、お互いがメインで業務を行っていましたね。
シュンヤ そうですね。問題点があればその都度あげて、できる方が担当して報告して……というのを上手く回せた感じでしたね。それぞれが自主的に動く部分が多く、はじめてのことだらけでしたが、上手くいって良かったです。
コウヘイ シュンヤさんがものすごく「デキる人」だったので本当に助かりました!(笑)
シュンヤ それはこっちの台詞です(笑)!
社内大会は社内に認知してもらったり、情報をきちんと提示して「出場しよう!」と思ってもらったりすることが大事だと思います。その部分はすべてコウヘイさんにお任せしていましたが、Slackや社内報を使ってのアナウンスのタイミングや社内向けwikiを使っての情報開示などが的確でとても勉強になりました……!
コウヘイ そこは意識したところだったのでうれしいですね。ありがとうございます。
若手からベテランまでが熱戦!
スタッフの層の厚さを再確認
大会の本番についてお聞きしていきます。まず参加者はどれくらいだったのでしょうか?
コウヘイ 28組、計56人が参加と想定よりも集まってくださってうれしかったです!予想では10〜15組ぐらいだと思っていたので、こんなに集まってくださって。
シュンヤ 募集開始から3日くらいは応募がなく「これは大丈夫なんだろうか?」と思ったのですが、その後一気に集まって安心しました。ただ本当にいきなりだったので「夢かな?」と(笑)。
参加者はサーバーサイドが41人と多かったです。他にもクライアントや社内システム開発の部署、インフラ、学生アルバイトなどさまざまな部署のスタッフが参加してくれました。オンラインでの開催ということもあり、大阪サイゲームスから参加してくれた人もいました!
想定の約2倍の参加者だったのですね。ちなみに問題の難易度はどうでしたか?
コウヘイ 予想よりも解かれたなと感じています。運営として1人で試しに解いたときには「6時間使ってボトルネックを潰しきる」くらいが限界だと思っていました。ただ、運営の予想を超えてボトルネックを潰しきった上で新規実装をしてくるチームもあったんです。
解説すると、本家ISUCON・CY-ISUCON1の「決められたレギュレーションの中で限界まで高速化を図るチューニングバトル」に対しての“定石”は「“ボトルネック”と呼ばれる遅い部分を見つけては改良する」を繰り返していって高速化するというものです。今回、僕らが課題として仕込んでいた遅い部分=ボトルネックをすべて見つけて改良した上で、さらに高速化するための手を打ってきた強者たちがいたんですね。さすがの一言です……!
シュンヤ あと、大会中はそれぞれのスコア(※)の変動をリアルタイムで見ていたのですが、あれをずっと見ていられるのは運営側の特権でしたね。参加者はスコアが動いたら「他のチームが点数を伸ばしている!自分たちも早くしないと!」と焦ってしまうので……。
※各チームの対応の結果を数値化し、最終的に数値(点数)が高いチームが勝利となる。上手くボトルネックを潰したり、高速化を進めていくとスコアが上がる(スコアが高いほど「高速化=チューニング≒ボトルネックをつぶす」のが上手くいっているということ)
コウヘイ そうですね。多くの参加者側はスコアを見る余裕もないので……。運営だと「お!何をやっているんだろう」と裏側の様子も見ることができます。各チームがどんなアプローチを考えているのかがわかるのは運営ならではでしたね。ラスト20分まで順位の変動が大きくて、最後の最後まで結果がわからなかったのも面白かったです。
その他、大会中の面白かったポイントはありますか?
コウヘイ 1位のチームの立ち回りですね。このチームはISUCON本選に出場しているメンバーや、通常業務でも核を担うようなベテランのメンバーがいるチームで、運営内でも「ここが一番になるだろう」と話していました。大会はラスト1時間で参加者にはスコアが見えないようになる仕様にしてたのですが、ラスト1時間になった瞬間に一気に4~5万ほどポイントが跳ね上がったんです(笑)。運営チームで「これは絶対狙ってるな!」「さすがエンターテイナー……!」と大盛り上がりでした。見えないところで点を大きく伸ばしてみんなをあっと驚かせようと狙ったんだなと。
完全に狙っていますね!
コウヘイ ……と思ったら、大会後の感想戦で聞いたら狙ってなかったそうです(笑)。このチームからは、事前に「このツール使ってみても良いですか?」という質問がかなりきていて、様々なパターンを想定してスコアを伸ばせるようにしていたところもさすがだなと思いましたね。
シュンヤ あと、若手で活躍するチームも多かったですよね。2020年の新卒と学生アルバイトのチームが3位をとっていてすごかったです!
コウヘイ 参加者に「参加への意気込み」のコメントをもらっていたのですが、そのチームはそれぞれ「ISUCON初心者ですが頑張ります」「PHP初心者ですが頑張ります」というコメントだったのも面白かったですね(笑)。
シュンヤ 3位を獲ったのを見て、運営チームでは「PHPは初心者だろうけど、ISUCON初心者ではないでしょ!」とツッコミを入れていました。また、今回の若手エンジニアたちの活躍から「サイゲームスのエンジニアチームの未来は明るい!」と言っていたのも印象に残っています。
コウヘイ あらためて、ベテランから若手まで、サイゲームスの層の厚さを感じた大会でした。それを知れたのも開催して良かったですね。
大会を通して「サイゲームスらしさ」を感じたところはありましたか?
コウヘイ 終わった後に結果や手法を話し合う「感想戦」があり、その話を聞いていると「運用的に正しいコードに直したくてコメントをつけていた」というように、運用のことを考える動きが多かったことです。ISUCON慣れしていると、運用よりもとにかくボトルネック探して直すという方向にいきがちなのですが、「運用的にここは難しい」「こういうログは出しておいた方が後から触りやすい」と、サービスとして考えているのはタイトルを運用しているからこその考え方だなと思いました。
「交流」と「技術力向上」に繋がった
次回開催に意欲
ちなみに大会で予想外だったことはありますか?
シュンヤ 運営としての反省点になりますが、競技終了後、最終スコアを決めるために、全チームに対してベンチマーカーを再実行しました。想定では全チーム同時に実行できるはずだったのですが、実際にはいくつかのチームでエラーが出てしまい……。急遽1チームずつ計測し直すようにして問題なく終えることができましたが、翌営業日には結果を発表したかったので、あのときは焦りましたね。
また、競技中にはそのエラーが起こらなかったことは不幸中の幸いでした。
コウヘイ むしろあのエラーをよく見つけましたよ!
シュンヤ いえ。むしろ次はこうならないように対策したいなと思います。ただ次は参加者側としても出たいです!
コウヘイ 確かに(笑)。あと開催後にアンケートを実施したのですが、予想以上に好評の声が多くて、うれしい予想外でした。
シュンヤ 回答率が8割強とかなり高かったです。「普段触らない部分を触ることができました」「次を楽しみにしています」といった声が多くてほっとしました。中には「楽しかったので、月1回でやりたいです!」という声もあって。すごくうれしかったのですが、参加者にも運営側にもそれなりに負荷がかかるので、半年~1年に1回程度の頻度で実施できればと思っています。
コウヘイ サーバーサイドのメンバーからは「なかなかインフラを触る機会がないので勉強になりました!」という内容の回答が多かったです。
シュンヤ インフラ技術に興味を持ってくれた人も結構いたので、それはすごくうれしかったですね。あと「コードを少し変更するだけでパフォーマンスが上がる」というのを実感したという声も多く、開催して良かったと思うところでした。
コウヘイ 大会後の感想戦でも、各チームがそのときどう思ってやっていたのか、何をしたかったのか……というので盛り上がっていて運営冥利につきました。若手もベテランも関係なく、競技として楽しめる大会ははじめてでしたが、参加者同士が大会前に一緒に勉強をしたり、感想戦で盛り上がったりと、新しいコミュニケーションの機会になったなと思いました。目的である「エンジニア間の交流」と「技術力向上」に繋がった感じがしましたね。
最後にCY-ISUCON1の感想をお願いします。
シュンヤ 初ということもあり手探り状態でしたが、今回でノウハウも溜まったと思うので、これを活かして次回も開催できればと思います。
ただ、もし次回、参加者として出場できるのなら優勝したいです!
コウヘイ 来年は今年以上にトラブルなく色々明確にして、より良い大会を開催していきたいですね。せっかくゲーム会社なので、ゲームに関するような問題を作れたらと思っています。
今回はISHOCONという「ISUCONを個人で楽しむこと」を目的として作成されたシリーズをお借りしました。次は、実際の運用で培ったノウハウの詰まったゲームプログラムを題材にもってくるなど、「サイゲームスらしい問題」を作成してみたいです。 そして、参加者として出られるならばシュンヤさんと組んで、元・運営チームで優勝をかっさらっていきましょう!
以上、第1回社内ISUCON「CY-ISUCON1」の運営メンバーによるお話をお届けしました。サイゲームスのエンジニアチームは今後もこういった「エンジニア間の交流」の増加と「技術力向上」に向けて、さまざまな施策を行ってまいります。
現在サイゲームスでは、一緒に働く仲間を募集しています。この記事で興味を持った方は、ぜひ一度こちらをチェックしてみてください。
ゲーム開発エンジニア/サーバーサイド/東京 基幹業務システム Webアプリケーション開発/サーバーサイド/東京 インフラエンジニア/東京