- ISUCON2023夏祭りのハンズオン行ってきたので感想・備忘録!
ISUCON、どこで知ったの?
2022年に自社のOKRで「チームの性能改善力を上げる」な目標を立てた時、「実務以外に何か練習の手段ないか?」と探していた時に、先輩エンジニアに教えてもらって知りました。
理想的には社内ISUCONだったり、勉強会枠を使って過去問解いてみるなどしたかったのですが、環境準備等に手間取り実施ならず。
なんで夏祭りハンズオン行ったの?
山根が夏祭りハンズオン(ひいてはISUCON)に期待することは以下の様な感じ。
- 性能改善を実務でやったけど、もっと経験積みたい
- アプリエンジニアとしての目線(ロジックの改善/SQLチューニング)では性能改善経験アリだが、インフラ目線では経験がないのでいろいろ触って遊びたい。サーバ構成いじるとか楽しそう。
- シンプルに「競技」な感じで楽しそう
最近実務でやった性能改善振り返りはこちら。開発の傍で社内ブログ運営もやっているので自分でゴリっと書きました。
夏祭りハンズオン、どうだった?
ハンズオンは終始Sho KUSANO / rosylilly (@rosylilly) / Xさんの語りで進んでいきました。
ハンズオン自体は以下の二部構成な感じで進みました。
- 環境構築の後、「rosylillyさんが参加者になったつもりで2,3つ改善を入れてベンチマーク回してみる」
- 「ISUCONという競技として準備しておいた方がいいこと」的な座学
ハンズオン自体はGitHubのリポジトリだったりで公開されてることをやるのみなので、座学部分からの学びをいくつか紹介します。
勝つにはデプロイ頻度がクソ重要
rosylillyさん的には、優勝チームの時間感覚では「1時間あったら10回ぐらいベンチマーク回したい」とのことでした。
ベンチマークを回すということは、暗黙的に「何か改善を入れてデプロイする」必要があります。(6分に1回デプロイするってことやん!!)
改善内容は思いついたんだけど、それをデプロイするためにコマンドぽちぽちするのに数十分かかってたらそれだけ改善案を試す回数も減っちゃう、勝ちから遠ざかっちゃう、ってことですね。
なので、「手段は問わないが、とにかく初手の1時間で修正、反映、計測を5分で回す準備」が重要みたいです。(git経由だったりrsyncだったりftpサーバおいたり...)
山根この辺結構弱いので、練習必要そうです。。
「何がわからんのかわからん」を脱することが大事
ISUCONの対象とする領域はアプリ/DB/サーバ/モニタリングと多岐に渡るので、初っ端飛び込むと「何がわからんのかわからん」な状態に陥りがち、とのことでした。
(山根が今まさに陥っています。モニタリングどうしようかなー。。)
こんな「何がわからんのかわからん」状態から、「A/B/Cという概念(とかツールとか技術)があるのは知ってるけど、何もわからん」に進化することがまずは重要みたいです。
まずは「わからん!」を受け入れつつ、一つずつできることが増えていく過程を楽し見続けるマインドが大事やな〜と思いました。
【結論】参加賞が可愛い
こんな柄のうちわとてぬぐいを参加賞として頂きました。
(可愛いのでこれだけでも来年行く価値ある)
個人的には「やれることがない君」と「ISU投げ君」(勝手に命名)が好きです!!
(椅子投げ君、投げやりで好き)
最後に
以上、ISUCON夏祭り2023(ハンズオン)参加してきた感想でした!
今回のハンズオンで何からやれば良いのか/何を練習すれば良いのかのとっかかりができた気がします。
(何もなければ)選手としても出てみようかなと思っているので、引き続き頑張ります!
追記↓ 参考問題「private-isu」の初期構築でハマったことを記事にしてみました。山根がハマったことのうちどれかが、あなたの助けになれば幸いです。