社内ISUCONを開催しました (4年ぶり2回目)
この度4年ぶりに社内ISUCONを開催しましたので様子をご報告します。
ISUCONとは
お題となるWebサービスを決められたレギュレーションの中で限界まで高速化を図るチューニングバトル、それがISUCONです。
※公式サイト: http://isucon.net/ より引用。
2011年から年一回のペースで開催されており、今年で10回目となります。
弊社からは2015年、2016年に参加していますが、惜しくも?予選敗退でした。
社内ISUCONとは?
弊社に以前所属していたIさんが、あまりにもISUCONが好きすぎて自分でISUCON的なものを作りはじめたのが始まりです。某Iさんが作ったISUCON的なものはISHOCONと呼ばれており、弊社でもこれまでISHOCONを利用し、実際のISUCONの練習の位置づけで社内ISUCONを実施していたことがあります。
この度、社内ISUCONを実施した目的
最近、弊社におけるWebアプリケーション基盤はコンテナやサーバーレスが多いです。しかし、時代がコンテナやサーバーレスになったとしても、OSやミドルウェアの知識が不要になることはまだまだないと考えています。とは言っても、生のサーバー (とはいっても実際にはベアサーバーではないですが) やアプリケーションレベルのデバッグをする機会が少なくなってきており、慣れていないメンバーも増えてきたことから何らかの対策をしようと考えました。
アプローチとして以下の2つを考えました。
- ISUCON
- 障害対処トレーニング
障害対処トレーニングについてはおいておいて、まずはISUCONを通じてトレーニングすることにしてみた次第です。ただ、今回はあくまでパフォーマンスチューニングを体験してもらうという基礎的なところも目的としています。
社内ISUCONの概要
- 日程: 2020年8月某日 13時〜17時
- 参加者: エンジニア6人
- 問題: ISHOCON1
- 参加形式: 個人戦
なお、弊社はフルリモートワークですので、当然すべてオンラインで実施しました。
当日の流れ
13時開始。10分ほど主旨や概要について説明。
15時: どうにもならない人向けヒント部屋開設。
17時: クロージング
振り返りおよびメンバーの感想
実施から数日後にメンバーで振り返りを1時間ほど行いました。
振り返りの場では、各自どのような高速化をしたかや、感想など持ち寄って話をしました。以下、メンバーの感想です。
- 最初はどう手を付けていいのかわからなかった。途中のヒントがないときつかった。
- 点数が出るとゲームみたいで面白かった。
- インフラ周りは大変興味ありだったが体系的に効率よく学ぶ方法を知らなかったので、ISUCONというキーワードを知れたのは良かった。時間ができたらISUCONの過去問とかを個人的にじっくりことこと解いていきたい。
- 競技性のある取り組みで新鮮で面白かった。
運営者としての振り返り
- 多少のヒントは出したものの、メンバー皆がインデックスの追加などである程度の高速化は達成できており、パフォーマンスチューニングを体験してもらうという目的は達成できたと思います。
- ISHOCONというネタがあったので準備は大変ではなかったですが、自分でISUCON的なものをゼロから作ると考えると非常に大変なことが想像できました。ただ、出題側に回るのは非常に勉強になると思いました。
今後について
リアルISUCON参戦!
8/26 (水) にISUCON10の追加募集があったのですが、幸運にも滑り込み参加ができることになりました!久々のリアルISUCONですので、楽しみたいと思います。
社内ISUCONの継続
今回、パフォーマンスチューニングに慣れておらず手が止まってしまっていた人もいたため、次回は2人チームでのチーム戦を考えています。
また、運営についても今回は私一人で準備しましたが、二人で準備できればと思っています。