😇

ISUCON14に軽い気持ちで挑んでボコボコにされ気持ちよくなった話

2024/12/08に公開

こんにちは!!株式会社Inner Resourceの檜野です。
今回は2024/12/08に開催されたISUCON14にて、ISUCONに初挑戦した私の記録・感想になります!!

詳細な記録

当日のgithubや、記録用のcosenseを下記に記載します。
黒歴史の全貌を覗きたい方はどうぞご覧ください。
1人で参加しているので、アドバイスなり質問なりあれば僕にコメントしてください!

事前準備

  • ISUCON本を買った
    • ちゃんと全部は読めていない。これから読む
  • ISUNARABEで感覚を掴む
    • かなり本番に近い形で勉強出来てあまりにも神サイト。圧倒的感謝
    • 前日に勢いでやったがもっと早くやっていれば…後悔…

おおまかな戦略(時系列)

  • アプリの実行言語をRubyに変更する
    • Goを全く勉強していなかった為。Rubyならいけるだろうというお気持ち
    • 前日までRubyに変えたらRails環境だろうと思っていた馬鹿だ
  • 初めにサーバーを分割して3台構成にする
    • 準備不足でデプロイ環境とかGitHub環境を整えられる気がせず、直接サーバーの中をvimでいじるつもりだったので後からだと面倒になる事が気がしたから
  • 分割したらログ取得のツールなりをいれてボトルネックを探す
    • 二日前までNewRelicを使う気まんまんでいたが今年は提供されていなかった…
  • 特定したボトルネックからインデックスを貼ったりN+1を解消したり
  • ネットで秘伝のタレを時間が許すまで調べて注入する
  • 再起動試験に備え、EC2インスタンスを再起動して、ベンチマークが通るか、フロントエンドが崩れていないか確認する

当日のおおまかな変遷

  • 戦略通りに行くはずが、サーバー分割で大ハマリしてしまった。原因を特定するに至らず結局1台構成で行くことにした
    • つらみ度30%
  • ボトルネックを特定した
    • ChatGPTに頼りインデックスを貼ったり、コードを改善したり
    • AI完璧なコード出すやん。エラー吐くまで任せっきりで時間稼ごうと思った
    • appサーバーの再起動を完全に忘れていてただコードが反映されていないだけだった
      • ほとんどベンチマークの数値も変わらなかったから気づけやという気持ち
    • 一旦初期状態のコードに戻して1からやる事になった
    • つらみ度70%
  • 一旦秘伝のタレを流す事にする
    • あまり変わらない
    • つらみ度90%
  • ここまで試行錯誤しただけで素晴らしいやんと自分を褒めこの記事を書くことにした
    • つらみ度-100%

結果

チーム KNPT
1人参加
最終スコア: 714点
最高スコア: 1081点
629/831 位

総評

圧倒的準備不足

  • デプロイ環境を整えたり、GitHubを活用したり、サーバーを分割する練習していたらもっと時間を上手く使えただろうと思う
  • 事前練習はもっとやってログを見慣れたり手札を増やしておくべきだった

気持ちよくなった

  • エンジニアになった2年前はもちろんの事、1年前の自分であればこんな適当に挑んだら、マニュアル読む所からAIに投げて何も出来ず1時間ぐらいで諦めていたと思う。
  • それが諦める事もなく、ひたすら楽しく調べたり、コード書いたり、キーボードを打ち続けていた
  • プロダクト全体を見れるようになりたいという当面の目標には着実に近づいている。成長していると思うと気持ちよくなってしまった。

めちゃ悔しかった

  • ほとんど点数が伸びなかった事が最も悔しかった
  • 準備・勉強していれば、点数を伸ばせただろうし、もっと改善案を思いつけたはず
    • 知識と思考と慣れが足りなさ過ぎた
  • 当日解説を聞くとボトルネックだと思っていた場所はちゃんとあっていたし、そもそもアプリのアルゴリズムを変えないといけないのではという筋のいい考えを持っていた
    • 結局そこまで頭を使えないーと思ってアルゴリズム変えたりまで考えるのをやめてしまった
  • これからの伸び代がえぐいと思うと最高に楽しくなってくる。悔しい機会を用意してくれたISUCON運営に感謝。

感想

WEBアプリの知識の総合格闘技感があって最高に楽しかったです!!
やるだけで勉強になるし、その上で復習したら更に勉強になる。最終的には自分の好きな分野も見つかる気がしていい事尽くしな気がします。
今の所来年も出ようと思っているので、来年は1年を通して定期的にISUCONの過去問をやったり準備をして臨もうと思います。
最後にこんな適当な人間ですが、色々とやる気だけあります。もし面白い奴やと思われた方は是非チームになりましょう!!コメントお待ちしております!!

We're hiring!!

私達株式会社Inner Resource は一緒にプロダクトの成長を支えて下さる、ミドル・シニア層の Rails エンジニアを絶賛大募集中です!!
社内にはISUCONに出てみたり、個人開発をしていたり、勉強会に積極的に顔を出していたり、成長意欲が高いメンバーが集まっています。
少しでも興味がある方は気軽に下記からカジュアル面談のお問い合わせお待ちしております!!
https://irsc.jp/recruit/dev

GitHubで編集を提案
株式会社Inner Resource

Discussion